Документ получает из регистра сведений последний Статус документа в реквизит формы документа
Если у данного документа последний статус не соответствует записи регистра(например пользователь изменил статус), то при проведении документа должна появиться запись в регистре
Статус в документе- это реквизит формы, не знаю как правильно проверить его и записать
Этот код работал в модуле объекта, если статус сделать реквизитом документа, но статус должен быть реквизитом формы
Если у данного документа последний статус не соответствует записи регистра(например пользователь изменил статус), то при проведении документа должна появиться запись в регистре
Статус в документе- это реквизит формы, не знаю как правильно проверить его и записать
Этот код работал в модуле объекта, если статус сделать реквизитом документа, но статус должен быть реквизитом формы
&НаСервере
Процедура ПриЗаписи(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если Статус <> ОбщийМодуль1.ПолучитьСтатусДокумента1(Объект.Ссылка) Тогда
ОбщийМодуль1.ЗаписатьСтатусДокумента(Объект.Ссылка);
КонецЕсли;
КонецПроцедуры
По теме из базы знаний
Найденные решения
(1)А Зачем Вы убрали Второй параметр Статус из процедуры ЗаписатьСтатусДокумента ?
Верните его немедленно:) И все будет работать
Но можно статус из модуля формы передать в модуль объекта через Дополнительные свойства в ПередЗаписью
А в модуле объекта
Верните его немедленно:) И все будет работать
Но можно статус из модуля формы передать в модуль объекта через Дополнительные свойства в ПередЗаписью
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ТекущийОбъект.ДополнительныеСвойства.Вставить("Статус",Статус);
КонецПроцедуры
А в модуле объекта
Процедура ПриЗаписи(Отказ)
Перем Статус;
Если ДополнительныеСвойства.Свойство("Статус",Статус)
И не Статус = Неопределено
и не Статус = ОбщийМодуль1.ПолучитьСтатусДокумента1(Ссылка) Тогда
//Пишем в регистр
ОбщийМодуль1.ЗаписатьСтатусДокумента(Ссылка, Статус);
КонецЕсли;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)А Зачем Вы убрали Второй параметр Статус из процедуры ЗаписатьСтатусДокумента ?
Верните его немедленно:) И все будет работать
Но можно статус из модуля формы передать в модуль объекта через Дополнительные свойства в ПередЗаписью
А в модуле объекта
Верните его немедленно:) И все будет работать
Но можно статус из модуля формы передать в модуль объекта через Дополнительные свойства в ПередЗаписью
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ТекущийОбъект.ДополнительныеСвойства.Вставить("Статус",Статус);
КонецПроцедуры
А в модуле объекта
Процедура ПриЗаписи(Отказ)
Перем Статус;
Если ДополнительныеСвойства.Свойство("Статус",Статус)
И не Статус = Неопределено
и не Статус = ОбщийМодуль1.ПолучитьСтатусДокумента1(Ссылка) Тогда
//Пишем в регистр
ОбщийМодуль1.ЗаписатьСтатусДокумента(Ссылка, Статус);
КонецЕсли;
КонецПроцедуры
Показать
И чтобы записать документ в регистр я написала такой код
Документ передается в параметрах, я так понимаю Документ.Статус не запишется, это же реквизит формы, как можно передать в общий модуль реквизит формы?
Менеджер = РегистрыСведений.СтатусыДокументов.СоздатьМенеджерЗаписи();
Менеджер.Период = ТекущаяДата();
Менеджер.Документ = Документ.Ссылка;
Менеджер.Статус = Документ.Статус;
Менеджер.Записать();
Документ передается в параметрах, я так понимаю Документ.Статус не запишется, это же реквизит формы, как можно передать в общий модуль реквизит формы?
Если речь в самом деле о хранении истории изменений реквизита (а иначе непонятно, почему регистр независимый и периодом выступает текущая дата), то достаточно в "перед записью" в модуле объекта сравнить старое значение реквизита документа (из СУБД) с записываемым. Если отличаются - делать там же (в "перед записью") запись в регистр. Это будет работать даже при программном изменении реквизита.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот