Доброго времени суток, 1С Бух 3.0.115.19
Ситуация такая: ОС приняли в аренду в начале года, срок аренды по документу завершился 02.12.2022, создали новый док Поступления в аренду - но он не проводится
документ Поступление в аренду, датированный 31.12.2022 не проводится, ошибка "Для основного средства уже зафиксировано состояние <Принято к учету>
документом <Поступление в аренду (лизинг) номер пусть будет 001 от 03.01.2022 7:00:00>. Дата состояния: 03.01.2022"
Ок, заходим в 001, видим, что срок аренды истекает 02.12.2022, дак что ему не хватает? Идем в модуль объекта, далее выходим на процедуру в общем модуле ПроверитьВозможностьИзмененияСостоянияОС(ТаблицаОС, ТаблицаРеквизиты, Отказ) , она возвращает отказ
приведу код:
Так же создан документ Списание ОС, в котором указано, что списать ОС по истечению аренды, но документ Поступления все равно не проводится. В модуле указано, что если в регистре СостояниеОС есть запись по данной ОС со статусом ПринятоКУчету то документ не проводить. А как же проверка на то чтобы уточнить текущий статус ОС? Просьба подсказать варианты решения
Ситуация такая: ОС приняли в аренду в начале года, срок аренды по документу завершился 02.12.2022, создали новый док Поступления в аренду - но он не проводится
документ Поступление в аренду, датированный 31.12.2022 не проводится, ошибка "Для основного средства уже зафиксировано состояние <Принято к учету>
документом <Поступление в аренду (лизинг) номер пусть будет 001 от 03.01.2022 7:00:00>. Дата состояния: 03.01.2022"
Ок, заходим в 001, видим, что срок аренды истекает 02.12.2022, дак что ему не хватает? Идем в модуль объекта, далее выходим на процедуру в общем модуле ПроверитьВозможностьИзмененияСостоянияОС(ТаблицаОС, ТаблицаРеквизиты, Отказ) , она возвращает отказ
приведу код:
Если Не ЗначениеЗаполнено(ТаблицаОС) Тогда
Возврат;
КонецЕсли;
Параметры = ПодготовитьПараметрыВозможностьИзмененияСостоянияОС(ТаблицаОС, ТаблицаРеквизиты);
Реквизиты = Параметры.Реквизиты[0];
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаОС.НомерСтроки КАК НомерСтроки,
| ТаблицаОС.ОсновноеСредство КАК ОсновноеСредство
|ПОМЕСТИТЬ ТаблицаОС
|ИЗ
| &ТаблицаОС КАК ТаблицаОС
|
|ИНДЕКСИРОВАТЬ ПО
| ОсновноеСредство
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияОСОрганизаций.ОсновноеСредство КАК ОсновноеСредство,
| СостоянияОСОрганизаций.ОсновноеСредство.Код КАК КодОС,
| СостоянияОСОрганизаций.ДатаСостояния КАК ДатаСостояния,
| СостоянияОСОрганизаций.Регистратор КАК Регистратор,
| ТаблицаОС.НомерСтроки КАК НомерСтроки
|ИЗ
| РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаОС КАК ТаблицаОС
| ПО СостоянияОСОрганизаций.ОсновноеСредство = ТаблицаОС.ОсновноеСредство
|ГДЕ
| СостоянияОСОрганизаций.Организация = &Организация
| И СостоянияОСОрганизаций.Регистратор <> &Документ
| И СостоянияОСОрганизаций.Состояние = &Состояние
| И СостоянияОСОрганизаций.Активность = ИСТИНА
| И СостоянияОСОрганизаций.Период <= &Период
|
|УПОРЯДОЧИТЬ ПО
| ТаблицаОС.НомерСтроки";
Запрос.УстановитьПараметр("Организация", Реквизиты.Организация );
Запрос.УстановитьПараметр("Состояние", Реквизиты.СостояниеОС);
Запрос.УстановитьПараметр("Документ", Реквизиты.Регистратор);
Запрос.УстановитьПараметр("ТаблицаОС", Параметры.ТаблицаОС);
Запрос.УстановитьПараметр("Период", Реквизиты.Период);
Если ТранзакцияАктивна() Тогда
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СостоянияОСОрганизаций");
ЭлементБлокировки.УстановитьЗначение("Организация", Реквизиты.Организация);
ЭлементБлокировки.ИсточникДанных = Параметры.ТаблицаОС;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("ОсновноеСредство", "ОсновноеСредство");
Блокировка.Заблокировать();
КонецЕсли;
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
ШаблонСообщения = НСтр("ru = 'Для основного средства <%1 (%2)> в организации <%3> уже зафиксировано состояние <%4>
|документом <%5>. Дата состояния: %6'");
Пока Выборка.Следующий() Цикл
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Выборка.ОсновноеСредство,
Выборка.КодОС, Реквизиты.Организация, Реквизиты.СостояниеОС, Выборка.Регистратор, Формат(Выборка.ДатаСостояния, "ДФ=dd.MM.yyyy"));
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, Реквизиты.Регистратор, Реквизиты.ИмяСписка + "["
+ Формат(Выборка.НомерСтроки - 1, "ЧН=0; ЧГ=") + "].ОсновноеСредство", "Объект", Отказ);
КонецЦикла;
Возврат;
КонецЕсли;
Если Реквизиты.СостояниеОС = Перечисления.СостоянияОС.ПринятоКУчету Тогда
Запрос.УстановитьПараметр("Дата", Реквизиты.Период);
Запрос.Текст =
"ВЫБРАТЬ
| СостоянияОСОрганизаций.ОсновноеСредство КАК ОсновноеСредство,
| СостоянияОСОрганизаций.ДатаСостояния КАК ДатаСостояния,
| ТаблицаОС.НомерСтроки КАК НомерСтроки,
| СостоянияОСОрганизаций.Регистратор КАК Регистратор,
| СостоянияОСОрганизаций.Состояние КАК Состояние,
| СостоянияОСОрганизаций.Организация КАК Организация
|ПОМЕСТИТЬ СостоянияОС
|ИЗ
| РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаОС КАК ТаблицаОС
| ПО СостоянияОСОрганизаций.ОсновноеСредство = ТаблицаОС.ОсновноеСредство
| И (СостоянияОСОрганизаций.Период < &Дата)
| И (СостоянияОСОрганизаций.Активность = ИСТИНА)
|
|ИНДЕКСИРОВАТЬ ПО
| ОсновноеСредство
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияОС.ОсновноеСредство КАК ОсновноеСредство,
| МАКСИМУМ(СостоянияОС.ДатаСостояния) КАК ДатаСостояния
|ПОМЕСТИТЬ ДатыПоследнихСостоянийОС
|ИЗ
| СостоянияОС КАК СостоянияОС
|
|СГРУППИРОВАТЬ ПО
| СостоянияОС.ОсновноеСредство
|
|ИНДЕКСИРОВАТЬ ПО
| ОсновноеСредство
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияОС.ОсновноеСредство КАК ОсновноеСредство,
| СостоянияОС.ОсновноеСредство.Код КАК КодОС,
| СостоянияОС.ДатаСостояния КАК ДатаСостояния,
| СостоянияОС.НомерСтроки КАК НомерСтроки,
| СостоянияОС.Регистратор КАК Регистратор,
| СостоянияОС.Организация КАК Организация
|ИЗ
| ДатыПоследнихСостоянийОС КАК ДатыПоследнихСостоянийОС
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СостоянияОС КАК СостоянияОС
| ПО ДатыПоследнихСостоянийОС.ОсновноеСредство = СостоянияОС.ОсновноеСредство
| И ДатыПоследнихСостоянийОС.ДатаСостояния = СостоянияОС.ДатаСостояния
|ГДЕ
| СостоянияОС.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.ПринятоКУчету)
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
ШаблонСообщения = НСтр("ru = 'Основное средство <%1 (%2)> принято к учету в организации <%3>
|документом <%4>. Дата состояния: %5'");
Пока Выборка.Следующий() Цикл
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Выборка.ОсновноеСредство,
Выборка.КодОС, Выборка.Организация, Выборка.Регистратор, Формат(Выборка.ДатаСостояния, "ДФ=dd.MM.yyyy"));
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, Реквизиты.Регистратор, Реквизиты.ИмяСписка + "["
+ Формат(Выборка.НомерСтроки - 1, "ЧН=0; ЧГ=") + "].ОсновноеСредство", "Объект", Отказ);
КонецЦикла;
Возврат;
КонецЕсли;
ИначеЕсли Реквизиты.СостояниеОС = Перечисления.СостоянияОС.СнятоСУчета Тогда
ПроверитьСостояниеОСПринятоКУчету(Параметры.ТаблицаОС, Параметры.Реквизиты, Отказ);
КонецЕсли;
ПоказатьТак же создан документ Списание ОС, в котором указано, что списать ОС по истечению аренды, но документ Поступления все равно не проводится. В модуле указано, что если в регистре СостояниеОС есть запись по данной ОС со статусом ПринятоКУчету то документ не проводить. А как же проверка на то чтобы уточнить текущий статус ОС? Просьба подсказать варианты решения
По теме из базы знаний
- Внедрение 1С: Комплексной автоматизации 2 на небольшом машиностроительном заводе – первая очередь
- Учет ОС и НМА - расширение для конфигурации "INFOSTART ERP community edition"
- Бухгалтерский учет аренды ФСБУ 25/2018 в 1С: УПП
- Функционал 1С:Аренда и управление недвижимостью
- 1С:Управление недвижимостью и арендой КОРП на базе 1С:Бухгалтерия 8 КОРП
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот