Имя: Пароль:
1C
1С v8
Как в УФ при программном заполнении документа из другого объекта заполняют реквизиты?
0 DomovoiVShoke
 
15.10.20
11:09
Попросили написать несколько строк на УФ БП. Нужно было создать документ из обработки. Мне понадобились процедуры ПриИзмененииВидаОперации(ЭтотОбъект), ПриИзмененииКонтрагента(ЭтотОбъект) и т.д. В обычных формах эти процедуры были в модуле объекта, я устанавливал значение реквизита, вызывал потом нужную такую процедуру и все необходимые реквизиты дозаполнялись. На УФ как я увидел все аналогичные процедуры хоть и пишется что на сервере, но в них передается форма а не объект. Тогда я полез в процедуру "Обработка заполнения" и удивился: прописано заполнение каждого реквизита. Я конечно в УФ ничего не понимаю. Где теперь модульные процедуры заполнения реквизитов документа? Или теперь их нет, или есть какая-то своя фишка тут? Как мне при программном указании реквизита, например, ДоговораКонтрагента из другого объекта сразу заполнить все необходимые реквизиты и сделать необходимые пересчеты невникая в них?
1 Жан Пердежон
 
15.10.20
14:59
Правильно будет (кстати, так же как и в ОФ):
НовыйОбъект.Заполнить(ДанныеЗаполнения);

А кто что в конкретной конфе накодил - тут уже вникать, скорее всего, придётся
2 hhhh
 
15.10.20
15:04
(0) не было в обычных формах такого. Это вы сами написали эти процедуры.
3 fisher
 
15.10.20
15:25
(0) Нет фишки. В ОФ модуль объекта просто тоже был на клиенте при работе формы, что давало дополнительное удобство программисту.
В УФ это, естественно, уже не канает. Нет теперь такого удобного места у объекта, где можно прописать общий для клиента и сервера код.
Только в общие модуля выносить. Но так как проблема стоит не слишком остро (малое количество программных заполнений), то проще дублировать логику.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший