Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как понять в процедуре справочника послезаписинасервере() что элемент новый?

Как понять в процедуре справочника послезаписинасервере() что элемент новый?
Я
   KOlik
 
15.11.20 - 17:24
ЗначениеЗаполнено(Объект.Ссылка) - он показывает при создании что новый.
А вот после записи то он уже существует))

Добавлял в параметры формы элемент новыйобъект. Определял при открытии что новый. А в процедуре  послезаписинасервере()  никак не могу обратиться к этому параметру.

Посоветуйте пожалуйста))
   RomanYS
 
1 - 15.11.20 - 17:30
(0)
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ПараметрыЗаписи.Вставить("ЭтоНовый", ТекущийОбъект.ЭтоНовый());
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
    Сообщить("ПараметрыЗаписи.ЭтоНовый " + ПараметрыЗаписи.ЭтоНовый);
КонецПроцедуры
   KOlik
 
2 - 15.11.20 - 17:38
(1) Спасибо Роман) Заработало)
   RomanYS
 
3 - 15.11.20 - 17:43
(2) Если нужно в модуль объекта передать, то вместо ПараметрыЗаписи можно ТекущийОбъект.ДополнительныеСвойства использовать
   rozer76
 
4 - 15.11.20 - 17:44
Еще Призаписинасервере() тоже можно в параметры записи передать Объект.Ссылка- она будет пустая если новый.
   Ненавижу 1С
 
5 - 15.11.20 - 17:49
   rozer76
 
6 - 15.11.20 - 17:58
Модуль формы  ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Вызывается после записи объекта в базу данных, но до окончания транзакции записи.. Есть последний шанс отказаться от записи.

Назначение этого обработчика – записать в базу данных дополнительную информацию, связанную с данными записываемого объекта.

Если данные для записи дополнительной информации находятся в самом объекте, то мы использовали обработчик модуля объекта ПриЗаписи(). А вот если данные находятся в форме, то как раз для таких случаев и предназначено это событие, потому как есть доступ к данным формы.

Этот обработчик ещё используется, если нужны данные параметра обработчика ПараметрыЗаписи, которые «приехали» в этом параметре из других обработчиков.

Через параметр ТекущийОбъект доступны данные, которые уже были записаны в информационную базу и имеет тип класса Объект (ДокументОбъект). Можно обратиться к его свойствам и методам, а также использовать для вызова экспортных методов объекта.

Работать следует именно через этот параметр, то есть не путать с основным  реквизитом формы Объект, так как там данные, которые были до записи и его изменения бесполезны потому, что после этого обработчика данные из ТекущегоОбъекта запишутся в Объект.

Если это запись нового объекта, то ТекущийОбъект.Ссылка будет содержать уже конкретное значение ссылки на этот элемент в информационной базе. А вот Объект.Ссылка имеет пустое значение на этом этапе.

Итак, по поводу этого обработчика можно сделать следующие выводы:

    Если нужно выполнять какие-то действия, связанные с записанным объектом, и при этом, например, нужна ссылка на этот объект, необходимо использовать ТекущийОбъект.Ссылка.
    Основной реквизит формы Объект можно использовать только для сравнения того, что «было», с тем, что «записалось». Изменять его бессмысленно, т. к. он будет замещен данными из ТекущийОбъект.
    Если нужно изменить записанные данные перед отправкой их на клиент, необходимо использовать ТекущийОбъект
   Ненавижу 1С
 
7 - 15.11.20 - 18:06
(6) ясно-понятно, т.е. синхронизация объекта формы происходит ПОСЛЕ этого события

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.