Имя: Пароль:
1C
1С v8
Отладка внешней печатной формы для нескольких документов
,
0 Pofy
 
27.01.23
15:16
Здравствуйте уважаемые форумчане! Я начинающий программист 1С. Сейчас работаю в УТ 11.4.

Появилась следующая проблема: разрабатываю внешнюю печатную форму для документа "ЗаказКлиента". Все прекрасно выводит для одного документа, но для множественной печати - беда.
Я пытаюсь подавать в запрос не ссылку на один документ, а сразу массив ссылок. И вот проблема: например, я печатаю сразу 2 документа "ЗаказКлиента": ТД-1 и ТД-2. Все прекрасно до табличной части. Почему-то в печатной форме для первого документа в табличной части записываются строки для обоих документов (т.е. табличная часть и с первого документа, и со второго), а в ПФ второго документа строки в таблице просто не выводятся.

Я так думаю, что проблема в том, что сразу обрабатываются табличные части всех документов, т.к. в запрос я подаю именно массив ссылок, но как это исправить - я не знаю...

Может быть, тут найду какой-нибудь совет или решение.
Заранее спасибо за помощь!
1 lubitelxml
 
27.01.23
15:18
(0) код покажи. Скорее нужно сделать группировки по документам в запросе и обработать с учетом массива ссылок
2 Ryzeman
 
27.01.23
15:19
Совет - изучать БСПшный механизм печати и использовать его от и до. По частностям - вообще не понятно как ты это делаешь, каким кодом, каким запросом и т.п.
3 Мимохожий Однако
 
27.01.23
15:20
Найди годный образец. Найди различия. Поменяй код. После формирования шапки надо обратиться к результату запроса по табличным частям и отобрать те, которые соответствуют текущей ссылке на документ
4 Pofy
 
27.01.23
15:20
(1) Текст запроса, если Вы об этом:

    МВТ = Новый МенеджерВременныхТаблиц;
    ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МВТ);
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МВТ;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.НаименованиеБанка
        |        ИНАЧЕ КлассификаторБанков.Наименование
        |    КОНЕЦ КАК БанкНаименование,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.ГородБанка
        |        ИНАЧЕ КлассификаторБанков.Город
        |    КОНЕЦ КАК ГородБанка,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.КоррСчетБанка
        |        ИНАЧЕ КлассификаторБанков.КоррСчет
        |    КОНЕЦ КАК СчБанка,
        |    ЗаказКлиента.БанковскийСчет.НомерСчета КАК СчПолучателя,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.БИКБанка
        |        ИНАЧЕ КлассификаторБанков.Код
        |    КОНЕЦ КАК БИК,
        |    ЗаказКлиента.Организация.КПП КАК КПП,
        |    ЗаказКлиента.Организация.ИНН КАК ИНН,
        |    ЗаказКлиента.Дата КАК Дата,
        |    ЗаказКлиента.Номер КАК Номер,
        |    ЗаказКлиента.Ссылка КАК Ссылка,
        |    ЗаказКлиента.НазначениеПлатежа КАК НазначениеПлатежа,
        |    ЗаказКлиента.Организация КАК Организация,
        |    ТаблицаОтветственныеЛица.Ссылка КАК Ссылка1,
        |    ТаблицаОтветственныеЛица.РуководительНаименование КАК Руководитель,
        |    ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
        |    ЗаказКлиента.Контрагент КАК Контрагент
        |ИЗ
        |    Документ.ЗаказКлиента КАК ЗаказКлиента
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанков
        |        ПО ЗаказКлиента.БанковскийСчет.Банк = КлассификаторБанков.Ссылка
        |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
        |        ПО ЗаказКлиента.Ссылка = ТаблицаОтветственныеЛица.Ссылка
        |ГДЕ
        |    ЗаказКлиента.Ссылка В(&МассивОбъектов)
        |
        |УПОРЯДОЧИТЬ ПО
        |    ЗаказКлиента.МоментВремени,
        |    Ссылка
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ЗаказКлиентаТовары.Номенклатура.Артикул КАК Артикул,
        |    ЗаказКлиентаТовары.Номенклатура.ЕдиницаИзмерения КАК ЕдИзмерения,
        |    ЗаказКлиентаТовары.Номенклатура.ОбъемМожноУказыватьВДокументах КАК Объем,
        |    ЗаказКлиентаТовары.Количество КАК Количество,
        |    ЗаказКлиентаТовары.Сумма КАК Сумма,
        |    ЗаказКлиентаТовары.СтавкаНДС КАК СтавкаНДС,
        |    ЗаказКлиентаТовары.СуммаНДС КАК СуммаНДС,
        |    ЗаказКлиентаТовары.Цена КАК Цена,
        |    ЗаказКлиентаТовары.Номенклатура.ВесМожноУказыватьВДокументах КАК Вес,
        |    ЗаказКлиентаТовары.Номенклатура.Наименование КАК Товар,
        |    ЗаказКлиентаТовары.Ссылка.Валюта КАК Валюта,
        |    ЗаказКлиентаТовары.СуммаСНДС КАК СуммаСНДС
        |ПОМЕСТИТЬ Товары
        |ИЗ
        |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        |ГДЕ
        |    ЗаказКлиентаТовары.Ссылка В(&МассивОбъектов)";
    
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    МассивРезультатовЗапроса = Запрос.ВыполнитьПакет();
5 Pofy
 
27.01.23
15:21
(3) Да, я понимаю это...Но не совсем понимаю как это правильно сделать (я пыталась, но не получилось)
6 Мимохожий Однако
 
27.01.23
15:22
////формирование табличного документа ТабДок
    //ТабДок = Новый ТабличныйДокумент;
    //ТабДок.КлючПараметровПечати = "ПараметрыПечати_<УникальныйКлюч1>";    

      ////ВЫЗОВ КОНСТРУКТОРА ЗАПРОСА С ОБРАБОТКОЙ РЕЗУЛЬТАТА


    //ВставлятьРазделительСтраниц = Ложь;
    //Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //перебора массива объектов
    //    Если ВставлятьРазделительСтраниц Тогда
    //        ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    //    КонецЕсли;    
    //    НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;
    
    
    
    //    //заполнение областей шапки документа
    //    
    //    //заполнение областей ТЧ документа



    //ВставлятьРазделительСтраниц = Истина;
    //    //подключимся к общ механизму обл печати
    //    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДетальныеЗаписи.Ссылка);
    //КонецЦикла; //перебора массива объектов



    //Возврат ТабДок;
7 Мимохожий Однако
 
27.01.23
15:23
Внутри конфигурации наверняка есть стандартная процедура печати счёта. Там можно подсмотреть переход от шапки к табличной части
8 Pofy
 
27.01.23
15:23
Спасибо большое! Я попробую)
9 Pofy
 
27.01.23
15:25
(7) Видела, но там все немного непонятно, потому что делают через структуры и для огромной типовой ПФ, в которой много разных табличных частей.

Собственно, сам запрос и пыталась писать по типовому, вычленяя из него нужное мне.
10 Ryzeman
 
27.01.23
15:30
(9) есть простая статья на пальцах, тебя интересует пункт 5.
11 Ryzeman
 
27.01.23
15:30
12 Pofy
 
27.01.23
15:33
(11) Спасибо!
13 lubitelxml
 
27.01.23
15:33
(4) как я понял вам нужно в запрос добавить ИТОГИ ПО и обходить результат с учетом группировок
14 lubitelxml
 
27.01.23
15:34
+(13) ну или как в 7.7 по старинки - Если Выборка.ЗаказКлиента <> ПредыдущийЗаказ ТОГДА и т.д.
15 Pofy
 
27.01.23
15:35
(13) Вы имеете ввиду ИТОГИ ПО Ссылка ?
16 Мультук
 
гуру
27.01.23
15:58
(15)

Вы хотите, чтобы вам написали код, а мы хотим увидеть ваш.
Пока что вы показали свой запрос. А дальше что? Как вы достаете товары из ВТ_ТОВАРЫ и почему когда вы это достаете не фильтруете по текущем заказуКлиента ?
17 Pofy
 
27.01.23
16:15
(15) Вопрос в том как именно фильтровать по текущему Заказу Клиента...Я вот здесь не понимаю...
18 Pofy
 
27.01.23
16:17
+ (15) Полный код:

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.АвтоМасштаб = Истина;
        Макет = ПолучитьМакет("МакетСчетОферта");
    
    МВТ = Новый МенеджерВременныхТаблиц;
    ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(СсылкаНаОбъект, МВТ);
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МВТ;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.НаименованиеБанка
        |        ИНАЧЕ КлассификаторБанков.Наименование
        |    КОНЕЦ КАК БанкНаименование,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.ГородБанка
        |        ИНАЧЕ КлассификаторБанков.Город
        |    КОНЕЦ КАК ГородБанка,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.КоррСчетБанка
        |        ИНАЧЕ КлассификаторБанков.КоррСчет
        |    КОНЕЦ КАК СчБанка,
        |    ЗаказКлиента.БанковскийСчет.НомерСчета КАК СчПолучателя,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.БИКБанка
        |        ИНАЧЕ КлассификаторБанков.Код
        |    КОНЕЦ КАК БИК,
        |    ЗаказКлиента.Организация.КПП КАК КПП,
        |    ЗаказКлиента.Организация.ИНН КАК ИНН,
        |    ЗаказКлиента.Дата КАК Дата,
        |    ЗаказКлиента.Номер КАК Номер,
        |    ЗаказКлиента.Ссылка КАК Ссылка,
        |    ЗаказКлиента.НазначениеПлатежа КАК НазначениеПлатежа,
        |    ЗаказКлиента.Организация КАК Организация,
        |    ТаблицаОтветственныеЛица.Ссылка КАК Ссылка1,
        |    ТаблицаОтветственныеЛица.РуководительНаименование КАК Руководитель,
        |    ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
        |    ЗаказКлиента.Контрагент КАК Контрагент
        |ИЗ
        |    Документ.ЗаказКлиента КАК ЗаказКлиента
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанков
        |        ПО ЗаказКлиента.БанковскийСчет.Банк = КлассификаторБанков.Ссылка
        |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
        |        ПО ЗаказКлиента.Ссылка = ТаблицаОтветственныеЛица.Ссылка
        |ГДЕ
        |    ЗаказКлиента.Ссылка В (&МассивОбъектов)
        |
        |УПОРЯДОЧИТЬ ПО
        |    ЗаказКлиента.МоментВремени
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ЗаказКлиентаТовары.Номенклатура.Артикул КАК Артикул,
        |    ЗаказКлиентаТовары.Номенклатура.ЕдиницаИзмерения КАК ЕдИзмерения,
        |    ЗаказКлиентаТовары.Номенклатура.ОбъемМожноУказыватьВДокументах КАК Объем,
        |    ЗаказКлиентаТовары.Количество КАК Количество,
        |    ЗаказКлиентаТовары.Сумма КАК Сумма,
        |    ЗаказКлиентаТовары.СтавкаНДС КАК СтавкаНДС,
        |    ЗаказКлиентаТовары.СуммаНДС КАК СуммаНДС,
        |    ЗаказКлиентаТовары.Цена КАК Цена,
        |    ЗаказКлиентаТовары.Номенклатура.ВесМожноУказыватьВДокументах КАК Вес,
        |    ЗаказКлиентаТовары.Номенклатура.Наименование КАК Товар,
        |    ЗаказКлиентаТовары.Ссылка.Валюта КАК Валюта,
        |    ЗаказКлиентаТовары.СуммаСНДС КАК СуммаСНДС
        |ИЗ
        |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        |ГДЕ
        |    ЗаказКлиентаТовары.Ссылка В (&МассивОбъектов)";
    
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    МассивРезультатовЗапроса = Запрос.ВыполнитьПакет();
    
    ДанныеШапка = МассивРезультатовЗапроса[0].Выбрать();
    ДанныеСтрокаТЧ = МассивРезультатовЗапроса[1].Выбрать();
    
    Для Каждого СсылкаНаОбъект Из МассивОбъектов Цикл
        
        Пока ДанныеШапка.Следующий() Цикл
            ЗаголовокСчета = Макет.ПолучитьОбласть("ЗаголовокСчета");
            ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабДок, Макет, ЗаголовокСчета, ДанныеШапка.Ссылка);
            ТабДок.Вывести(ЗаголовокСчета);
            
            ОбластьШапка = Макет.ПолучитьОбласть("ОбластьШапка");
            ОбластьШапка.Параметры.Заполнить(ДанныеШапка);    
            ОбластьШапка.Параметры.БанкНаименование = СокрЛП(ДанныеШапка.БанкНаименование) + " " + ДанныеШапка.ГородБанка;
            ОбластьШапка.Параметры.Получатель       = ФормированиеПечатныхФорм.ОписаниеОрганизации(
                                                      ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеШапка.Организация,
                                                      ДанныеШапка.Дата), "ПолноеНаименование");  
                                                            
            ОбластьШапка.Параметры.Номер      = Документы.СчетНаОплатуКлиенту.СформироватьНазначениеПлатежа(ДанныеШапка.Номер, ДанныеШапка.Ссылка);
                ОбластьШапка.Параметры.НомерОф    = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеШапка.Номер);
            ОбластьШапка.Параметры.Дата       = Формат(ДанныеШапка.Дата, "ДЛФ=DD");        
            ОбластьШапка.Параметры.Поставщик  = ФормированиеПечатныхФорм.ОписаниеОрганизации(
                                                ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеШапка.Организация, ДанныеШапка.Дата),
                                                "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,");
                                                  
            ОбластьШапка.Параметры.Покупатель = ФормированиеПечатныхФорм.ОписаниеОрганизации(
                                                ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеШапка.Контрагент, ДанныеШапка.Дата),
                                                "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,");    
            ТабДок.Вывести(ОбластьШапка);
                        
            ОбластьСтрокаТЧ = Макет.ПолучитьОбласть("ОбластьСтрокаТЧ");
            ОбластьПодвал   = Макет.ПолучитьОбласть("ОбластьПодвал");

            Пока ДанныеСтрокаТЧ.Следующий() Цикл    
                ОбластьСтрокаТЧ.Параметры.Заполнить(ДанныеСтрокаТЧ);    
                НомерТЧ = НомерТЧ + 1;
                ОбластьСтрокаТЧ.Параметры.НомерТЧ = НомерТЧ;
                ТабДок.Вывести(ОбластьСтрокаТЧ);
            КонецЦикла;  
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

        КонецЦикла;    
        
    КонецЦикла;

   Возврат ТабДок;
19 Мультук
 
гуру
27.01.23
16:45
(18) как вариант
Да, если печатать 1000 плюс документов по 1000 строк, то лучше по другому
Но люди, которые реально такое печатают не ходят задавать вопросы на мисту.


см комментарии mista

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.АвтоМасштаб = Истина;
        Макет = ПолучитьМакет("МакетСчетОферта");
    
    МВТ = Новый МенеджерВременныхТаблиц;
    ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(СсылкаНаОбъект, МВТ);
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МВТ;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.НаименованиеБанка
        |        ИНАЧЕ КлассификаторБанков.Наименование
        |    КОНЕЦ КАК БанкНаименование,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.ГородБанка
        |        ИНАЧЕ КлассификаторБанков.Город
        |    КОНЕЦ КАК ГородБанка,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.КоррСчетБанка
        |        ИНАЧЕ КлассификаторБанков.КоррСчет
        |    КОНЕЦ КАК СчБанка,
        |    ЗаказКлиента.БанковскийСчет.НомерСчета КАК СчПолучателя,
        |    ВЫБОР
        |        КОГДА ЗаказКлиента.БанковскийСчет.РучноеИзменениеРеквизитовБанка
        |            ТОГДА ЗаказКлиента.БанковскийСчет.БИКБанка
        |        ИНАЧЕ КлассификаторБанков.Код
        |    КОНЕЦ КАК БИК,
        |    ЗаказКлиента.Организация.КПП КАК КПП,
        |    ЗаказКлиента.Организация.ИНН КАК ИНН,
        |    ЗаказКлиента.Дата КАК Дата,
        |    ЗаказКлиента.Номер КАК Номер,
        |    ЗаказКлиента.Ссылка КАК Ссылка,
        |    ЗаказКлиента.НазначениеПлатежа КАК НазначениеПлатежа,
        |    ЗаказКлиента.Организация КАК Организация,
        |    ТаблицаОтветственныеЛица.Ссылка КАК Ссылка1,
        |    ТаблицаОтветственныеЛица.РуководительНаименование КАК Руководитель,
        |    ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
        |    ЗаказКлиента.Контрагент КАК Контрагент
        |ИЗ
        |    Документ.ЗаказКлиента КАК ЗаказКлиента
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторБанков КАК КлассификаторБанков
        |        ПО ЗаказКлиента.БанковскийСчет.Банк = КлассификаторБанков.Ссылка
        |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
        |        ПО ЗаказКлиента.Ссылка = ТаблицаОтветственныеЛица.Ссылка
        |ГДЕ
        |    ЗаказКлиента.Ссылка В (&МассивОбъектов)
        |
        |УПОРЯДОЧИТЬ ПО
        |    ЗаказКлиента.МоментВремени
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ЗаказКлиентаТовары.Ссылка КАК Ссылка,
        |    ЗаказКлиентаТовары.Номенклатура.Артикул КАК Артикул,
        |    ЗаказКлиентаТовары.Номенклатура.ЕдиницаИзмерения КАК ЕдИзмерения,
        |    ЗаказКлиентаТовары.Номенклатура.ОбъемМожноУказыватьВДокументах КАК Объем,
        |    ЗаказКлиентаТовары.Количество КАК Количество,
        |    ЗаказКлиентаТовары.Сумма КАК Сумма,
        |    ЗаказКлиентаТовары.СтавкаНДС КАК СтавкаНДС,
        |    ЗаказКлиентаТовары.СуммаНДС КАК СуммаНДС,
        |    ЗаказКлиентаТовары.Цена КАК Цена,
        |    ЗаказКлиентаТовары.Номенклатура.ВесМожноУказыватьВДокументах КАК Вес,
        |    ЗаказКлиентаТовары.Номенклатура.Наименование КАК Товар,
        |    ЗаказКлиентаТовары.Ссылка.Валюта КАК Валюта,
        |    ЗаказКлиентаТовары.СуммаСНДС КАК СуммаСНДС
        |ИЗ
        |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        |ГДЕ
        |    ЗаказКлиентаТовары.Ссылка В (&МассивОбъектов)";
    
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    МассивРезультатовЗапроса = Запрос.ВыполнитьПакет();
    
    ДанныеШапка = МассивРезультатовЗапроса[0].Выбрать();
    тзВсеТовары = МассивРезультатовЗапроса[1].Выгрузить(); //mista
    
    Для Каждого СсылкаНаОбъект Из МассивОбъектов Цикл
        
        Пока ДанныеШапка.Следующий() Цикл
            ЗаголовокСчета = Макет.ПолучитьОбласть("ЗаголовокСчета");
            ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабДок, Макет, ЗаголовокСчета, ДанныеШапка.Ссылка);
            ТабДок.Вывести(ЗаголовокСчета);
            
            ОбластьШапка = Макет.ПолучитьОбласть("ОбластьШапка");
            ОбластьШапка.Параметры.Заполнить(ДанныеШапка);    
            ОбластьШапка.Параметры.БанкНаименование = СокрЛП(ДанныеШапка.БанкНаименование) + " " + ДанныеШапка.ГородБанка;
            ОбластьШапка.Параметры.Получатель       = ФормированиеПечатныхФорм.ОписаниеОрганизации(
                                                      ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеШапка.Организация,
                                                      ДанныеШапка.Дата), "ПолноеНаименование");  
                                                            
            ОбластьШапка.Параметры.Номер      = Документы.СчетНаОплатуКлиенту.СформироватьНазначениеПлатежа(ДанныеШапка.Номер, ДанныеШапка.Ссылка);
                ОбластьШапка.Параметры.НомерОф    = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеШапка.Номер);
            ОбластьШапка.Параметры.Дата       = Формат(ДанныеШапка.Дата, "ДЛФ=DD");        
            ОбластьШапка.Параметры.Поставщик  = ФормированиеПечатныхФорм.ОписаниеОрганизации(
                                                ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеШапка.Организация, ДанныеШапка.Дата),
                                                "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,");
                                                  
            ОбластьШапка.Параметры.Покупатель = ФормированиеПечатныхФорм.ОписаниеОрганизации(
                                                ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеШапка.Контрагент, ДанныеШапка.Дата),
                                                "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,");    
            ТабДок.Вывести(ОбластьШапка);
                        
            ОбластьСтрокаТЧ = Макет.ПолучитьОбласть("ОбластьСтрокаТЧ");
            ОбластьПодвал   = Макет.ПолучитьОбласть("ОбластьПодвал");

            нс =  тзВсеТовары.НайтиСтроки(Новый Структура("Ссылка", ДанныеШапка.Ссылка));  //Mista
            для каждого ДанныеСтрокаТЧ из нс Цикл    //mista
                ОбластьСтрокаТЧ.Параметры.Заполнить(ДанныеСтрокаТЧ);    
                НомерТЧ = НомерТЧ + 1;
                ОбластьСтрокаТЧ.Параметры.НомерТЧ = НомерТЧ;
                ТабДок.Вывести(ОбластьСтрокаТЧ);
            КонецЦикла;  
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

        КонецЦикла;    
        
    КонецЦикла;

   Возврат ТабДок;
20 Pofy
 
27.01.23
16:53
(18) Спасибо огромное! Оно работает! Буду разбираться как Вы это сделали)
21 bolder
 
28.01.23
10:01
Вот что бывает,если не использовать БСП.
22 FirstLine Support
 
28.01.23
10:40
Макет = ПолучитьМакет("МакетСчетОферта");

Дальше этой строки читать портянку кода не стал. Не надо учить джунов плохому, пускай сразу втыкают в БСП. Если осилят - молодцы, не осилят, ну значит это не для них.