0
kobzon2
19.11.20
✎
16:13
|
Всем доброго вечера. Нужна помощь коллективного разума)
В ЕРП 2.4 есть справочник ДоговорыКонтрагентов. Когда-то нужно было сделать возможность отслеживать дату его создания.
Сделали через дополнительные реквизиты.
Процедура Расш1_ПередЗаписьюНаСервереПосле(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ТекущийОбъект.Ссылка.Пустая() Тогда
НовыйРеквизит = ТекущийОбъект.ДополнительныеРеквизиты.Добавить();
НовыйРеквизит.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ДатаСоздания");
НовыйРеквизит.Значение = ТекущаяДата();
КонецЕсли;
КонецПроцедуры
Вроде всё логично, если новый договор то проставляем в доп. реквизит текущую дату. Процедура ПередЗаписьюНаСервере, следовательно далее будет запись.
Потом было замечено, что на один такой договор создается по несколько одинаковых записей в доп. реквизиты. Хотя по идее после первой записи, второй раз условие бы уже не отработало.
Добавил условие на проверку имеющихся записей
Процедура Расш1_ПередЗаписьюНаСервереПосле(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если ТекущийОбъект.Ссылка.Пустая() Тогда
СвойствоДопРеквизита=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ДатаСоздания");
ДопРеквизит=ТекущийОбъект.ДополнительныеРеквизиты.Найти(СвойствоДопРеквизита, "Свойство");
Если ДопРеквизит=Неопределено Тогда
НовыйРеквизит = ТекущийОбъект.ДополнительныеРеквизиты.Добавить();
НовыйРеквизит.Свойство = СвойствоДопРеквизита;
НовыйРеквизит.Значение = ТекущаяДата();
Иначе
ДопРеквизит.Значение = ТекущаяДата();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
После на всякий случай даже записывал объект.
В итоге появляется другая проблема...
Создаю договор, записываю. Если закрыть форму договора и открыть снова, то дата будет на форме в доп. реквизите.
Если записать, не закрывая форму, снова нажать записать, потом закрыть и открыть форму, то на форме в доп. реквизите пусто.
Где я туплю, может кто сказать?))
|
|
1
DmitriyDI
19.11.20
✎
16:28
|
(0) я думаю тут бы подошло больше доп. свойство, чем доп. реквизит, а так надо смотреть функции БСП, которые сохраняют доп. реквизиты с формы при сохранении элемента из формы.
А так можно вынести функцию вторую перед записью в модуль объекта, из модуля формы.
|
|