|
Как понять в процедуре справочника послезаписинасервере() что элемент новый? | ☑ | ||
---|---|---|---|---|
0
KOlik
15.11.20
✎
17:24
|
ЗначениеЗаполнено(Объект.Ссылка) - он показывает при создании что новый.
А вот после записи то он уже существует)) Добавлял в параметры формы элемент новыйобъект. Определял при открытии что новый. А в процедуре послезаписинасервере() никак не могу обратиться к этому параметру. Посоветуйте пожалуйста)) |
|||
1
RomanYS
15.11.20
✎
17:30
|
(0)
&НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) ПараметрыЗаписи.Вставить("ЭтоНовый", ТекущийОбъект.ЭтоНовый()); КонецПроцедуры &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) Сообщить("ПараметрыЗаписи.ЭтоНовый " + ПараметрыЗаписи.ЭтоНовый); КонецПроцедуры |
|||
2
KOlik
15.11.20
✎
17:38
|
(1) Спасибо Роман) Заработало)
|
|||
3
RomanYS
15.11.20
✎
17:43
|
(2) Если нужно в модуль объекта передать, то вместо ПараметрыЗаписи можно ТекущийОбъект.ДополнительныеСвойства использовать
|
|||
4
rozer76
15.11.20
✎
17:44
|
Еще Призаписинасервере() тоже можно в параметры записи передать Объект.Ссылка- она будет пустая если новый.
|
|||
5
Ненавижу 1С
гуру
15.11.20
✎
17:49
|
||||
6
rozer76
15.11.20
✎
17:58
|
Модуль формы ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Вызывается после записи объекта в базу данных, но до окончания транзакции записи.. Есть последний шанс отказаться от записи. Назначение этого обработчика – записать в базу данных дополнительную информацию, связанную с данными записываемого объекта. Если данные для записи дополнительной информации находятся в самом объекте, то мы использовали обработчик модуля объекта ПриЗаписи(). А вот если данные находятся в форме, то как раз для таких случаев и предназначено это событие, потому как есть доступ к данным формы. Этот обработчик ещё используется, если нужны данные параметра обработчика ПараметрыЗаписи, которые «приехали» в этом параметре из других обработчиков. Через параметр ТекущийОбъект доступны данные, которые уже были записаны в информационную базу и имеет тип класса Объект (ДокументОбъект). Можно обратиться к его свойствам и методам, а также использовать для вызова экспортных методов объекта. Работать следует именно через этот параметр, то есть не путать с основным реквизитом формы Объект, так как там данные, которые были до записи и его изменения бесполезны потому, что после этого обработчика данные из ТекущегоОбъекта запишутся в Объект. Если это запись нового объекта, то ТекущийОбъект.Ссылка будет содержать уже конкретное значение ссылки на этот элемент в информационной базе. А вот Объект.Ссылка имеет пустое значение на этом этапе. Итак, по поводу этого обработчика можно сделать следующие выводы: Если нужно выполнять какие-то действия, связанные с записанным объектом, и при этом, например, нужна ссылка на этот объект, необходимо использовать ТекущийОбъект.Ссылка. Основной реквизит формы Объект можно использовать только для сравнения того, что «было», с тем, что «записалось». Изменять его бессмысленно, т. к. он будет замещен данными из ТекущийОбъект. Если нужно изменить записанные данные перед отправкой их на клиент, необходимо использовать ТекущийОбъект |
|||
7
Ненавижу 1С
гуру
15.11.20
✎
18:06
|
(6) ясно-понятно, т.е. синхронизация объекта формы происходит ПОСЛЕ этого события
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |