метод ВЫВЕСТИ/ПРИСОЕДИНИТЬ табличный документ розница 8,3
ВЫВОД ЦЕННИКОВ НА ПЕЧАТЬ
ДВ,насколько я понимаю,сначала выводим область методом ,затем если хотим чтобы они выводились не вразброс а друг за другом,нужно воспользоваться методом ,причем у этой области начальными координатами выступают координаты,по которым была выведена в последний раз область через метод . короче если это так,а это так,значит не пойму почему у меня такая картина как на рисунке
код
это уже измененный код -РАБОЧИЙ...объясню суть для начинающих типа меня:обязательно задайте область для ценника в редакторе ценников конфигуратора,и каждый раз (если пользуетесь циклом) обновляйте ссылку на область
ДВ,насколько я понимаю,сначала выводим область методом
вывести("область")
присоединить("область")
вывести
код
пТаблицаПечати.Очистить();
пТаблицаПечати.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЦЕННИК";
пШаблонЦенника = Справочники.ХранилищеШаблонов.НайтиПоНаименованию("шаблонценника").Шаблон.Получить("имя_области");
пОбластьЗначение = пШаблонЦенника.РедакторТабличныйДокумент.ПолучитьОбласть(); ;
пКолВертикаль = пШаблонЦенника.КоличествоПоВертикали;//кол ценников по вертикали
пКолгоризонталь = пШаблонЦенника.КоличествоПоГоризонтали;//кол ценников по горизонтали
пИнкГор = 0;
Для Каждого пСтрокаИзСписка Из пТаблицаЗначений Цикл
Справочники.ХранилищеШаблонов.НайтиПоНаименованию("шаблонценника").Шаблон.Получить();
пОбластьЗначение = пШаблонЦенника.РедакторТабличныйДокумент.ПолучитьОбласть("имя_области");
пИнкГор = пИнкГор + 1;
пОбластьЗначение.Параметры.Номенклатура = "чтото";
//выводим первый ценник в новой строке
если пИнкГор = 1 или пИнкГор > пКолгоризонталь тогда
пТаблицаПечати.Вывести(пОбластьЗначение);
если пИнкГор > пКолгоризонталь тогда
пИнкГор = 0;
КонецЕсли;
//выводим все последующие ценники в строке
Иначе
пТаблицаПечати.Присоединить(пОбластьЗначение);
КонецЕсли;
КонецЦикла;
Показатьэто уже измененный код -РАБОЧИЙ...объясню суть для начинающих типа меня:обязательно задайте область для ценника в редакторе ценников конфигуратора,и каждый раз (если пользуетесь циклом) обновляйте ссылку на область
Прикрепленные файлы:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для начала давайте исправим ошибки в алгоритме.
По вашему получается что когда пИнкГор станет больше пКолгоризонталь
то вы в пИнкГор пишите 1
но при следующей итерации сразу происходит пИнкГор = пИнкГор + 1;
то есть станет пИнкГор = 2
и поэтому в ветку пИнкГор = 1 вы попадаете ровно 1 раз.
Попробуйте сперва исправить это
По вашему получается что когда пИнкГор станет больше пКолгоризонталь
то вы в пИнкГор пишите 1
но при следующей итерации сразу происходит пИнкГор = пИнкГор + 1;
то есть станет пИнкГор = 2
и поэтому в ветку пИнкГор = 1 вы попадаете ровно 1 раз.
Попробуйте сперва исправить это
(2)да я знаю,это на скорую руку писал,поэтому можно проигнорировать,здесь суть в чем...главное верно чередовать методы и ...они чередуются верно,но выводится не верно,почему при вызове метода сразу же после метода новая строка выводится ниже,а не стой же строки,куда вывел метод
вывести
присоединить
присоединить
вывести
вывести
(5)У меня вот так летает всё как надо
Процедура КнопкаВыполнитьНажатие(Кнопка)
Макет = ПолучитьМакет("Макет");
ОблЦ = Макет.ПолучитьОбласть("Ценник");
ТабДок = Новый ТабличныйДокумент;
С = 1;
Для к = 1 по КоличествоВсего цикл
Если с =1 тогда
ТабДок.Вывести(ОблЦ);
Иначе
ТабДок.Присоединить(ОблЦ);
КонецЕсли;
Если с>=КоличествоВСтроке тогда
с = 1;
Иначе
с = с + 1;
КонецЕсли;
КонецЦикла;
ТабДок.Показать();
КонецПроцедуры
ПоказатьПрикрепленные файлы:
ПечатьВСтроки.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот