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

Вызвать процедуру при создании документа программно

Вызвать процедуру при создании документа программно
Я
   JuixyJes
 
11.02.20 - 12:07
Добрый день. Создаю программно документ поступления товаров обработкой (бух 3.0). Заполняю программно склад. При обычном создании документа при выборе (изменении) склада заполняются счета расчетов в табличной части документа, подскажите, как вызвать программно такое заполнение?
 
 
   vicof
 
1 - 11.02.20 - 12:11
Посмотреть поглубже и вызвать в своем коде те же серверные процедуры.
   JuixyJes
 
2 - 11.02.20 - 12:15
Проблема в том, что при вызове серверных процедур не хватает реквизитов у документа.
   JuixyJes
 
3 - 11.02.20 - 12:16
Допустим я имею ссылку на документ. Процедура требует форму документа. Какую и как передать?
   vicof
 
4 - 11.02.20 - 12:17
Скопирй себе процедуру, и не используй там форму
   CaIIIka
 
5 - 11.02.20 - 12:17
В событиях посмотрите, какая процедура вызывается (свойства элемента формы, в самом низу). Останется сделать такую же по образу и подобию. Будет проблема если у вас УФ, и если значимый код на стороне клиента работает. Обработка при создании документа на сервере живет.

(3) Зачем форма, если вы программно работаете?
   JuixyJes
 
6 - 11.02.20 - 12:18
(4) Копировала. Там везде нужна форма:D Одна процедура ссылается на другую и так по цепочке, везде используется форма.
   vicof
 
7 - 11.02.20 - 12:21
(6) Копай глубже, сама напиши свой код, который форму не использует
   CaIIIka
 
8 - 11.02.20 - 12:21
(6) Типовые все этим грешат. Они результат от 2+2 через 18 модулей получают с вызовом 250 процедур. Приходится мириться с этим и пытаться понять что они этим хотели сделать, разложить все по полкам, оптимизировать и в итоге сделать по-своему :)
   JuixyJes
 
9 - 11.02.20 - 12:33
(8) Вот вот, я почему вопрос и задаю, может есть вариант попроще.
   Rema Dan
 
10 - 11.02.20 - 12:39
(0) Заполнение счетов можно вызвать из общего модуля "СчетаУчетаВДокументах". См. функции ЗаполнитьСтроки() и Заполнить().
   malem13
 
11 - 11.02.20 - 12:40
можно посмотреть обработки создания на основании в других документах, возможно нужный код есть там
   JuixyJes
 
12 - 11.02.20 - 14:33
(10) попыталась использовать
СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаВТабличнойЧасти(Док.Ссылка.ПолучитьОбъект(),"Товары");
   JuixyJes
 
13 - 11.02.20 - 14:33
Но почему то не выходит.
   ДенисЧ
 
14 - 11.02.20 - 14:38
(12) (13) "Док.Ссылка.ПолучитьОбъект()" - поэтому.
   JuixyJes
 
15 - 11.02.20 - 14:40
(14) А как нужно тогда? Как по другому получить объект?
   ДенисЧ
 
16 - 11.02.20 - 14:41
(15) А зачем тебе его получать, если ты его только что создала?
   hhhh
 
17 - 11.02.20 - 14:42
(15) ну, ты получила объект и потом его выбросила. Зачем получала тогда?
   CaIIIka
 
18 - 11.02.20 - 15:00
Док.Ссылка.ПолучитьОбъект().Ссылка.ПолучитьОбъект().Ссылка.ПолучитьОбъект() :)))

Вообще получить объект действует после записи объекта в БД. Так еще на битые ссылки проверяют. Попробуй отправить "Док". Ведь это наверняка и есть новый ДокументОбъект, с которым ты работаешь.

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