|   |   | 
| 
 | Заполнить областью макета весь лист а4 | ☑ | ||
|---|---|---|---|---|
| 0
    
        shock3r 29.10.12✎ 11:32 | 
        Добрый день.
  День область макета, в виде этикетки, небольшого размера, например 5х4 см. Сама область макета заполняется 4 параметрами из табличной части: "вес, размер, модель, серия" Вопрос: Подскажите как сделать так, чтобы заполнить весь лист этикетками. Сейчас на 1 лист выводится 1 этикетка. Можно ли это реализовать кодом автоматически? | |||
| 1
    
        shock3r 29.10.12✎ 11:33 | 
        День область макета = есть область макета     | |||
| 2
    
        Cube 29.10.12✎ 11:33 | 
        Можно     | |||
| 3
    
        Cube 29.10.12✎ 11:33 | 
        Разрешаем)     | |||
| 4
    
        Maxus43 29.10.12✎ 11:34 | 
        ТабличныйДокумент (SpreadsheetDocument)
  ЭкземпляровНаСтранице (PerPage) Использование: Чтение и запись. Описание: Тип: Число. Содержит количество страниц на листе при выводе табличного документа на печать. Допустимые значения: 1 - одна страница, 2 - две страницы, 0 - автоматическое определение. | |||
| 5
    
        Godofsin 29.10.12✎ 11:34 | 
        посмотри как в типовых ценники выводятся     | |||
| 6
    
        cw014 29.10.12✎ 11:34 | 
        День область макета = есть область макета
  Сильно сказано | |||
| 7
    
        shock3r 29.10.12✎ 11:39 | 
        (4) Подскажите что делаю не так. Я никаких изменений не заметил, область макета как выводилась на каждом новом листе, так и выводится
  Процедура ОсновныеДействияФормыМакет1(Кнопка) Для Каждого текСтрока из ТабличнаяЧасть1 Цикл ТабДокумент = Новый ТабличныйДокумент; //создаем новый табличный документ ТабДокумент.ЭкземпляровНаСтранице = 0; Макет = ПолучитьМакет("Макет1"); // получаем макет Макет.АвтоМасштаб = Истина; Макет.ПолеСверху = 0; Макет.ПолеСнизу =0; Макет.ПолеСлева = 0; Макет.ПолеСправа = 0; Макет.РазмерКолонтитулаСверху = 0; Макет.РазмерКолонтитулаСнизу = 0; Макет.РазмерСтраницы = "A4"; Макет.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; // ТабДокумент.АвтоМасштаб(); ОбластьМакета = Макет.ПолучитьОбласть("ОбластьМакета"); ОбластьМакета.Рисунки["НадписьСерия"].Текст = текСтрока.Серия; ОбластьМакета.Рисунки["НадписьМодель"].Текст = текСтрока.Модель; ОбластьМакета.Рисунки["НадписьДатаВыпуска"].Текст = текСтрока.ДатаВыспуска; ОбластьМакета.Рисунки["НадписьРазмер"].Текст = текСтрока.Размер; ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.Показать(); КонецЦикла; КонецПроцедуры | |||
| 8
    
        shock3r 29.10.12✎ 11:42 | 
        Вся проблема в том, что в табличной части может быть как 4 номенклатуры, тогда 4 этикетки легко влезут на 1 лист а4, а может быть 50, тогда нужно еще чтобы они печатались на новых листах (по 10 штук например), в зависимости от того, сколько их помещается на лист.     | |||
| 9
    
        shock3r 29.10.12✎ 11:43 | 
        Просто я не могу понять подход, как вообще это реализовать, может вы поможете, в какую сторону копать?     | |||
| 10
    
        Cube 29.10.12✎ 11:43 | 
        (7) Смотри:
  Для Каждого текСтрока из ТабличнаяЧасть1 Цикл ТабДокумент = Новый ТабличныйДокумент; //создаем новый табличный документ Продолжать не стоит... | |||
| 11
    
        Godofsin 29.10.12✎ 11:45 | 
        (9) Реализуй!
  Функция ПечатьЦенника() Экспорт Если НЕ ЗначениеЗаполнено(Организация) Тогда Предупреждение("Не выбрана организация!"); Возврат Неопределено; КонецЕсли; ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Ценник"; Макет = ПолучитьМакет("Ценник"); ОбластьЦенника = Макет.ПолучитьОбласть("Строка|Столбец"); ДатаПечати = РабочаяДата; ТекСтолбец = 0; ТекСтрока = 0; Для Каждого СтрокаТаблицы Из Товары Цикл Если СтрокаТаблицы.Печать Тогда Для Тмп = 1 По СтрокаТаблицы.Количество Цикл ОбластьЦенника.Параметры.Заполнить(СтрокаТаблицы); ОбластьЦенника.Параметры.НоменклатураНаименование = СтрокаТаблицы.Номенклатура.НаименованиеПолное; ОбластьЦенника.Параметры.ХарактеристикаНаименование = СтрокаТаблицы.ХарактеристикаНоменклатуры; ОбластьЦенника.Параметры.ЕдиницаНаименование = СтрокаТаблицы.ЕдиницаИзмерения; ОбластьЦенника.Параметры.Цена = ОбщегоНазначения.ФорматСумм(СтрокаТаблицы.Цена, Валюта, "00"); ОбластьЦенника.Параметры.ДатаПечати = ДатаПечати; ОбластьЦенника.Параметры.Организация = Организация; ОбластьЦенника.Параметры.ОрганизацияНаименование = Организация; ОбластьЦенника.Параметры.НоменклатураСтранаПроисхождения = СтрокаТаблицы.Номенклатура.СтранаПроисхождения; Если ТекСтолбец = 0 Тогда ТабДокумент.Вывести(ОбластьЦенника); Иначе ТабДокумент.Присоединить(ОбластьЦенника); КонецЕсли; ТекСтолбец = ТекСтолбец + 1; Если ТекСтолбец = 5 Тогда ТекСтрока = ТекСтрока + 1; ТекСтолбец = 0; КонецЕсли; Если ТекСтрока = 3 Тогда ТекСтрока = 0; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; ТабДокумент.ТолькоПросмотр = Истина; Возврат ТабДокумент; КонецФункции // ПечатьЦенника() | |||
| 12
    
        shock3r 29.10.12✎ 11:48 | 
        (10) Спасибо, я всё понял... Осталось только разобраться почему этикетки выводятся каждая на новом листе, наверно из-за линий разрыва на макете...
  Процедура ОсновныеДействияФормыМакет1(Кнопка) ТабДокумент = Новый ТабличныйДокумент; //создаем новый табличный документ ТабДокумент.ЭкземпляровНаСтранице = 0; Для Каждого текСтрока из ТабличнаяЧасть1 Цикл Макет = ПолучитьМакет("Макет1"); // получаем макет Макет.АвтоМасштаб = Истина; Макет.ПолеСверху = 0; Макет.ПолеСнизу =0; Макет.ПолеСлева = 0; Макет.ПолеСправа = 0; Макет.РазмерКолонтитулаСверху = 0; Макет.РазмерКолонтитулаСнизу = 0; Макет.РазмерСтраницы = "A4"; Макет.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; ОбластьМакета = Макет.ПолучитьОбласть("ОбластьМакета"); ОбластьМакета.Рисунки["НадписьСерия"].Текст = текСтрока.Серия; ОбластьМакета.Рисунки["НадписьМодель"].Текст = текСтрока.Модель; ОбластьМакета.Рисунки["НадписьДатаВыпуска"].Текст = текСтрока.ДатаВыспуска; ОбластьМакета.Рисунки["НадписьРазмер"].Текст = текСтрока.Размер; ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; ТабДокумент.Показать(); КонецПроцедуры | |||
| 13
    
        shock3r 29.10.12✎ 11:49 | 
        (11) спасибо, сейчас буду разбираться в вашем коде     | |||
| 14
    
        Godofsin 29.10.12✎ 11:53 | 
        (13) Это не мой, это типовой из УТ 10.3     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |