Доброго времени суток. У меня есть документ, который я вывожу на печать. В печатную форму выводится вся нужная мне информация и таблица товары. Возможно ли в 1с выводить на печать не одну печатную форму с таблицей товары, а несколько для каждой строки товара? и как это можно сделать?
---
Пока великие Знатоки 1с и программирования(кроме platonov.e) в комментах занимались самоудовлетворением и токсикозом я сам докопался. Изначально я хотел взять Функцию печать() в цикл и вывести много печатных документов, но потом передумал и вообще не совсем знал как это сделать ведь функция печать экспортная и где ее именно ставить в цикл я не знаю. Однако, оказывается Если один раз засунешь заполненый макет в таб док то при повторном засовывании он не заменяет данные, а добавляет. Так же помогла встроенная функция - "ВывестиГоризонтальныйРазделительСтраниц()" которая работает как разрыв страниц(в ворде). так вот с помощью нее я смог все вывести в один печ. документ. ну и в конце все засунул в цикл.
Мало ли кому поможет, вот код -

```1c
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КачественноеУдостоверение";
    Для Каждого Строка Из ЭтотОбъект.СсылкаНаОбъект.Товары Цикл
    Макет = ПолучитьМакет("Макет1");
    Запрос = Новый Запрос;
    Запрос.Текст = "... "
    Запрос.УстановитьПараметр("Номенклатура", Строка.Номенклатура);
    ...
    РезультатЗапроса = Запрос.Выполнить();
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;

    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    ТабДок.АвтоМасштаб=Истина;
    Табдок.ВывестиГоризонтальныйРазделительСтраниц();

    КонецЦикла;
    Возврат ТабДок;
```
---
Это нужно переделывать печатную форму, только зачем?
---
Понятия не имею. бухгалтеру виднее. А как переделать? Сейчас у меня стоит внешняя форма связанная с документом. Когда я нажимаю печать у меня открывается выбор форм. Выбирая эту форму мне открывается печатный документ, подскажите как сделать что бы выбрав форму у меня вышли документы по строкам? я всю голову сломал
---
Я не совсем понимаю - допустим у вас в документе 20 товаров, и нужно чтобы вышло 20 страниц печатных форм, с одним товаров в строке?
---
нет что бы на каждый товар из таблице создался печатный документ по макету
---
Ну, в общем вам нужен программист, без навыков программирования отчет не переделать.
---
Да я понимаю, что нужно в коде что то сделать вы напишите хотя бы куда копать и возможно ли это.
---
Ну, сохранить внешнюю печатную форму, открыть ее в конфигураторе, изучить как она работает, придумать алгоритм как она будет работать, реализовать) Профит)
---
Спасибо кэп))
---
ну, какой вопрос как говориться))
---
А как вы хотели. что значит "куда копать", ?! судя по вопросу у вас нулевые знания, хотя для любого программиста 1С задача пустяковая.
---
Вот раз задача пустяковая просветите.
---
ключевые слова здесь "программиста 1С".
---
Вы в штате как системный администратор, извините за вопрос, или это Ваш клиент!?
---
Бухгалтеру делать не фиг, лучше бы Бухгалтерией занималась, годичный отчет на носу, она фигней страдает...
---
Да на самом деле мне и самому интересно возможно это вообще или нет.
---
Плюс изменения в законодательстве, лучше думала бы, как в 2021 году работать на каком налогообложении!!!
---
Изучать язык программирования 1С, это за Вас нужно делать этот бред в печатной форме, а так что Вам еще подсказать!?
---
Сообщение было скрыто модератором.
---
Бесплатный совет, самоучкой Вы ничему не научитесь, устройтесь к Франчам по месту жительства, сейчас принимают без Сертификатов, хоть научитесь немного языку программирования 1С, поймете, как создаются ВПФ и расширения для 1С, заодно Сертификат получите!!!
---
Пока великие Знатоки 1с и программирования(кроме platonov.e) в комментах занимались самоудовлетворением и токсикозом я сам докопался. Изначально я хотел взять Функцию печать() в цикл и вывести много печатных документов, но потом передумал и вообще не совсем знал как это сделать ведь функция печать экспортная и где ее именно ставить в цикл я не знаю. Однако, оказывается Если один раз засунешь заполненый макет в таб док то при повторном засовывании он не заменяет данные, а добавляет. Так же помогла встроенная функция - "ВывестиГоризонтальныйРазделительСтраниц()" которая работает как разрыв страниц(в ворде). так вот с помощью нее я смог все вывести в один печ. документ. ну и в конце все засунул в цикл.
Мало ли кому поможет, вот код -

```1c
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КачественноеУдостоверение";
    Для Каждого Строка Из ЭтотОбъект.СсылкаНаОбъект.Товары Цикл
    Макет = ПолучитьМакет("Макет1");
    Запрос = Новый Запрос;
    Запрос.Текст = "... "
    Запрос.УстановитьПараметр("Номенклатура", Строка.Номенклатура);
    ...
    РезультатЗапроса = Запрос.Выполнить();
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;

    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    ТабДок.АвтоМасштаб=Истина;
    Табдок.ВывестиГоризонтальныйРазделительСтраниц();

    КонецЦикла;
    Возврат ТабДок;
```