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

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

СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаВТабличнойЧасти(Док.Ссылка.ПолучитьОбъект(),"Товары");
13 JuixyJes
 
11.02.20
14:33
Но почему то не выходит.
14 ДенисЧ
 
11.02.20
14:38
(12) (13) "Док.Ссылка.ПолучитьОбъект()" - поэтому.
15 JuixyJes
 
11.02.20
14:40
(14) А как нужно тогда? Как по другому получить объект?
16 ДенисЧ
 
11.02.20
14:41
(15) А зачем тебе его получать, если ты его только что создала?
17 hhhh
 
11.02.20
14:42
(15) ну, ты получила объект и потом его выбросила. Зачем получала тогда?
18 CaIIIka
 
11.02.20
15:00
Док.Ссылка.ПолучитьОбъект().Ссылка.ПолучитьОбъект().Ссылка.ПолучитьОбъект() :)))

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