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

Получить доп реквизит в подписке ПриЗаписи

Получить доп реквизит в подписке ПриЗаписи
Я
   Vurglak
 
02.12.19 - 12:20
Здравствуйте.

УПП 1.3.127.1.
Для справочника добавил дополнительный реквизит. Теперь при записи его хочу получить, но проблема в том, что при записи в регистре сведений, в котором в УПП хранятся доп реквизиты, данные ещё старые.
Собственно как его вытянуть-то с изменениями, внесенными пользователем?
 
 
   dka80
 
1 - 02.12.19 - 12:24
значение допреквизитов хранится в регистре сведений и изменяется сразу, как пользователь внес данные. с формой объекта справочника данные не связаны. Если я не ошибаюсь
   Vurglak
 
2 - 02.12.19 - 12:34
(1) В УПП значение доп реквизитов хранится в регистре, но изменяется при записи элемента справочника. На форме табличка доп реквизитов имеет тип "ОбработкаТабличнаяЧастьСтрока.ЗначенияСвойствОбъекта.СвойстваИЗначения".
Специально для теста открыл элемент с заполненным свойством, поменял на другое, однако при записи выдало старое значение.
   hhhh
 
3 - 02.12.19 - 12:38
(2) сделать подписку ПриЗаписи. Эта новая подписка будет выполняться после всех остальных ПриЗаписи и поэтому в ней уже будет новое значение.
   SergTheGreat
 
4 - 02.12.19 - 12:39
(0) Давайте с терминологией разберемся. "дополнительный реквизит" - это элемент реквизита справочника "ДополнительныеСвойства" или это элемент плана видов характеристик "СвойстваОбъектов"?
   Vurglak
 
5 - 02.12.19 - 12:46
(3)Таки нет, значение все ещё старое

(4)"дополнительный реквизит" - это элемент плана видов характеристик "СвойстваОбъектов", соответственно его значение берётся из регистра сведений "ЗначенияСвойствОбъектов".
   SergTheGreat
 
6 - 02.12.19 - 12:53
(5) Тогда странно. Обработка ЗначенияСвойствОбъекта меняет их сразу, она никак не привязана к записи справочника. Например, свойства можно изменить из списка, вообще не открывая форму элемента.
Покажите пож-та код, которым получаете значение свойства в обработчике подписки.
   Vurglak
 
7 - 02.12.19 - 12:56
(60
Запрос.Текст = "ВЫБРАТЬ
|    ЗначенияСвойствОбъектов.Значение
|ИЗ
|    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
|    ЗначенияСвойствОбъектов.Объект = &Объект
|    И ЗначенияСвойствОбъектов.Свойство = &Свойство";
Запрос.УстановитьПараметр("Объект", Источник.Ссылка);
Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00000000140");
Если Свойство <> Неопределено И Свойство <> ПланыВидовХарактеристик.СвойстваОбъектов.ПустаяСсылка() Тогда
Запрос.УстановитьПараметр("Свойство", Свойство);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Если Не ЗначениеЗаполнено(Выборка.Значение) Тогда
...
Иначе
...
КонецЕсли;
   SergTheGreat
 
8 - 02.12.19 - 13:06
(6) Упс... был не прав! В форме элемента справочника обработка ЗначенияСвойствОбъекта вызывается в обработчике ПриЗаписи. А он выполняется уже после обработчика одноименного обработчика объекта справочника. Поэтому в подписке измененные свойства еще не видны.
   SergTheGreat
 
9 - 02.12.19 - 13:08
(8) "обработчика одноименного обработчика" :-)))
"обработчика одноименного СОБЫТИЯ"
   Vurglak
 
10 - 03.12.19 - 06:48
Может кому пригодится.
В результате сделал так:
Если Не Источник.ЭтоНовый() Тогда
Форма = Источник.Ссылка.ПолучитьФорму("ФормаЭлемента");
Если Не Форма.Открыта() Тогда
Форма = Источник.Ссылка.ПолучитьФорму("ФормаЭлементаУправляемая").Открыта();
КонецЕсли;
Если форма.Открыта() Тогда
Для Каждого Свойство из Форма.ЭлементыФормы.Свойства.Значение Цикл
Если Свойство.Свойство = СвойствоМенеджер Тогда
...
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;

При создании нового договора без проверки на ЭтоНовый() начинает ругаться на ПолучитьФорму(), но в УПП при создании нового договора вкладка доп свойств все равно не активна, так что...
   catena
 
11 - 03.12.19 - 06:59
Без формы можно в модуле набора записей регистра
   Vurglak
 
12 - 03.12.19 - 07:02
(11)а в набор записей регистра попадут данные из регистра, которые старые, или из формы, которые записываются новые?
   catena
 
13 - 03.12.19 - 07:04
(12)Там есть и те и те. Старые из регистра и новые из объекта

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