Имя: Пароль:
1C
1С v8
v8: нужно из одного документа вызвать печатную форму другого.
,
0 Nekr0n
 
16.11.21
10:22
Здравствуйте. Может посоветуете чего. У нас в одном отделе конторы люди ленивые - нужно печатать счета-фактуры клиентам, а им лень создать на основании расходной счет-фактуру и распечатать, так что приходится мне за них потом это всё печатать.

Придумал я в общем попытаться сделать так, что бы при вызове на печать нужных расходных автоматически выскакивала на печать и счет-фактура. Создать саму счет-фактуру проблем не возникло, но вот открыть печатную форму возникли проблемы.

Сделал процедуру печати счет-фактуры экспортной и получился на данный момент примерно такой дополнительный код

НовДокумент = Документы.СчетФактура.СоздатьДокумент();
НовДокумент.Заполнить(ЭтотОбъект.Ссылка);
НовДокумент.Записать(РежимЗаписиДокумента.Запись,РежимПроведенияДокумента.Неоперативный);          
    
//НовДокумент.ПолучитьФорму("ФормаДокумента").Открыть();
НовДокумент.Печать_УПД("УПД");

Вот только какие-то проблемы при формировании шапки, а там думаю и дальше будут

{Документ.СчетФактура.МодульОбъекта(563)}: Значение не является значением объектного типа (ПолучитьОбласть)
        ОбластьМакета = Макет.ПолучитьОбласть("Шапка625");

Возможно есть другие способы? Может как-то можно открыть форму, вызвать нажатие кнопки печати и закрыть её? В этом случае что-то пока не найду как вызвать её нажатие, кроме того там что-то вроде динамического формирования этих кнопок.

https://i.imgur.com/NziGf5p.jpg
1 dubolom
 
16.11.21
10:23
Смотри отладчиком, откуда берётся значение переменной Макет. (Скорее всего, ниоткуда и там Неопределено).
2 dubolom
 
16.11.21
10:25
>открыть форму, вызвать нажатие кнопки печати и закрыть её
Так делать совсем ай-яй-яй.
3 Михаил Козлов
 
16.11.21
10:27
В КА 2 можно распечатать УПД из реализации товаров/услуг.
4 Nekr0n
 
16.11.21
10:31
(3) У нас Далион
(1) Ох, спасибо за совет, сейчас буду искать как в отладчике следить за переменными. ) А если и так, то потом думать как ему подсунуть нужное значение.
5 Nekr0n
 
16.11.21
10:32
Ещё как вариант думал перенести всю форму для печати в расходную, вот да, что бы прямо оттуда распечатать можно было, но на мой взгляд пока это какое-то уж слишком громоздкое решение.
6 dubolom
 
16.11.21
10:32
(4) Тут потоньше работа, скорее всего. Надо будет весь код аккуратно проглядеть на предмет, что нужно поменять для вызова из реализации.
7 dubolom
 
16.11.21
10:33
(5) Счет-фактура у тебя, кстати, в какой момент создаётся?
8 Nekr0n
 
16.11.21
10:35
(7) Я сделал в момент формирования формы печати расходной накладной.
9 dubolom
 
16.11.21
10:37
(8) Ну, в принципе, вариант, хотя лучше бы тогда уж при проведении реализации.
Главное, чтобы при повторной печати у тебя новые СФ не создавались:)
Вообще для печати СФ из реализации правильнее перенести в реализацию.
10 dubolom
 
16.11.21
10:40
(9) >перенести процедуру печати в реализацию (исправив её соответственно).
11 Nekr0n
 
16.11.21
10:40
(9) Ну так то да, там все данные для этого есть. Может так и сделать, а не искать что ему нужно для запуска на печать.
12 Nekr0n
 
16.11.21
10:41
Правда номер то формироваться не будет :/. Ну да кому он нужен, взять номер расходной самой.
13 dubolom
 
16.11.21
10:42
(11) Тут архитектурное решение отчасти.
Если документ СФ никому не нужен (а нужна только печатная форма), то и не надо его создавать, печатать напрямую из реализации.
Но вообще лучше, чтобы он в базе был, если печатная форма куда-то идёт.
14 Nekr0n
 
16.11.21
10:43
Да никому не нужен. Но мне, конечно, удобно когда есть т.к. если жалуются, что что-то не дошло - я могу проверить сейчас, где не сформировали счета-фактуры.
15 Nekr0n
 
16.11.21
10:44
В принципе тогда можно при вызове печати сделать формирование - что будет несколько при повторной - думаю не страшно, тут они всё-равно не используются.
16 dubolom
 
16.11.21
10:45
(15) Несколько документов СФ точно не надо.
Делай поиск имеющейся СФ, это несложно.
Ну и подумай, что делать, если реализацию редактируют и перепроводят. (Я бы перезаполнял СФ каждый раз).
17 Nekr0n
 
16.11.21
10:47
(16) А у нас в СФ только дата и время ну и номер.)  Данные для печати, как я понимаю, оно из связанной расходной берёт.