Версия для печати темы (https://pro1c.org.ua/index.php?s=2d99335b3e077a00c3965aca5dcd6c23&showtopic=66691)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Как вывести строки таблицы документа в 4-х экзеплярах

Автор: lolmatrix 12.08.21, 15:42

Здравствуйте, управляемые формы 1с 8.3.18.1289, подскажите пожалуйста новичку как реализовать вывод 4- х строк из табличной части документа в четырех углах листа четыре этикетки, каждая строка одна этикетка, ничего придумать не получается, посоветуйте как возможно это сделать если возможно,заранее спасибо

Автор: Vofka 12.08.21, 18:37

Если не морочиться с универсальностью, если у вас стабильно 4 этикетки на листе, то рисуете макет с 4 этикетками и заполняете его. Непонятно в чем именно сложность. Обычная печатная форма.

Автор: lolmatrix 13.08.21, 8:03

Vofka @ Вчера, 19:37 * ,
Здравствуйте, сложность как вывести именно 2-ю строку на 2-ю этикетку а 3-ю на 3-ю этикетку в цикле они будут идти прост по порядку, не могу придумать как реализовать
и если строк 8 то лист другой

lolmatrix @ Сегодня, 8:42 * ,
Спасибо моя основная пробема ис ищу сложные решения там где есть простые решения, так работает, теперь вопрос как реальзовать печать 5-й, 6-й этикетки на другом листе

Автор: alexandr_f 13.08.21, 8:13

lolmatrix @ Сегодня, 9:03 * ,
Там есть метод выделения области. Можно напечатать этикетку как выделенную область там где надо

Автор: 29a 13.08.21, 9:22

lolmatrix @ Сегодня, 9:03 * ,
Что то вроде этого

Инд = 0;
Этикетка1 = "";
Этикетка2 = "";
Этикетка3 = "";
Этикетка4 = "";
Для Каждого Строка Из Таблица Цикл
    Инд = Инд + 1;
    Если Инд = 1 Тогда
        Этикетка1 = Строка.ШК;
    ИначеЕсли Инд = 2 Тогда
        Этикетка2 = Строка.ШК;
    ИначеЕсли Инд = 3 Тогда
        Этикетка3 = Строка.ШК;
    ИначеЕсли Инд = 4 Тогда
        Этикетка4 = Строка.ШК;
        Инд = 0;
        ОбластьМакета.Параметры.Этикетка1 = Этикетка1;
        ОбластьМакета.Параметры.Этикетка2 = Этикетка2;
        ОбластьМакета.Параметры.Этикетка3 = Этикетка3;
        ОбластьМакета.Параметры.Этикетка4 = Этикетка4;
        ТабДокумент.Вывести(ОбластьМакета);
        Этикетка1 = "";
        Этикетка2 = "";
        Этикетка3 = "";
        Этикетка4 = "";
    КонецЕсли;
КонецЦикла;    

Если Инд > 0 Тогда
    ОбластьМакета.Параметры.Этикетка1 = Этикетка1;
    ОбластьМакета.Параметры.Этикетка2 = Этикетка2;
    ОбластьМакета.Параметры.Этикетка3 = Этикетка3;
    ОбластьМакета.Параметры.Этикетка4 = Этикетка4;
    ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;

Автор: lolmatrix 13.08.21, 12:02

29a @ Сегодня, 10:22 * ,
спасибо именно так я и сделал, но вопрос как дальше продолжать если строк больше

Автор: 29a 13.08.21, 12:31

lolmatrix @ Сегодня, 13:02 * ,
Не совсем понял в чем проблема?
не важно сколько строк в ТЧ, за 4 итерации (строки) производится один вывод в макет, в например при 12 строках в макет выведется 2 раза по 4 значения (строки) и 1 раз после основного цикла 2 значения (строки)

Автор: lolmatrix 13.08.21, 13:43

29a @ Сегодня, 13:31 * ,
спасибо, работает, подскажите в какое место в кода вставить ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); чтобы страницы разбивались

Автор: 29a 13.08.21, 14:37

lolmatrix @ Сегодня, 14:43 * ,
после Инд = 4 после вывода в таб документ

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua