|
На печать выходила пара чеков | ☑ | ||
---|---|---|---|---|
0
Rizhij_Nikitos
15.09.11
✎
11:04
|
Как сделать, чтобы на печать выходил не 1 товарный чек, а 2, то есть два табличных документа индентичных, а если не влазиют то второй идет на 2 старинцу. Как это все делается? Знаю, что делается через функции ПроверитьВывод(), а как и что не работает.
|
|||
1
Шапокляк
15.09.11
✎
11:05
|
"а как и что не работает"
исчерпывающе |
|||
2
Rizhij_Nikitos
15.09.11
✎
13:33
|
Извините, не так сказал. Как и что работает не понятно, может быть пример как допустим выводить два одинаковых таб документа, и если оба не помещаются на одной странице, то переносить на другую.
|
|||
3
Шапокляк
15.09.11
✎
13:38
|
ТабличныйДокумент=Новый ТабличныйДокумент;
ТД=Новый Табличныйдокумент; ...заполняем ТД по макету нужной печатной формы; ТабличныйДокумент.вывести(ТД); ... пытаемся еще раз вывести в Табличномдокументе ТД, при этом используем ПроверитьВывод. если не помещается, то в ТабличномДокументе выводим горизонтальный разделитель страниц и потом ТабличныйДокумент.вывести(ТД); |
|||
4
Rizhij_Nikitos
15.09.11
✎
13:59
|
Спасибо большое. Я вроде понял, но вот дело такое примерно такое делал с таким вот кодом. Не особо работает горизонтальный разделитель и проверить вывод и пришлось все делать так. И еще не подскажете почему, у меня макеты немного сужаются, то есть первый нормальные, остальные все меньше и меньше идут по размерам.
ДокументПечати = Новый ТабличныйДокумент; ПоискВыбранных = Новый Структура(); ПоискВыбранных.Вставить("Выбран",Истина); СтрокиДляПечати = Товары.НайтиСтроки(ПоискВыбранных); ЭтотОбъект = РеквизитФормыВЗначение("Объект"); ПустойТабДок = Новый ТабличныйДокумент; Для НомерСтроки = 0 По СтрокиДляПечати.Количество()-1 Цикл ДокументЦенник = Новый ТабличныйДокумент; СтрокаДанных = СтрокиДляПечати.Получить(НомерСтроки); Макет= ЭтотОбъект.ПолучитьМакет(СтрокаДанных.ШаблонЦенника+СтрокаДанных.РазмерЦенника); ОбластьМакета = Макет.ПолучитьОбласть("Организация|Столбец"); ОбластьМакета.Параметры.Организация = Объект.Организация; ДокументЦенник.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Наименование|Столбец"); ОбластьМакета.Параметры.Наименование = СтрокаДанных.Номенклатура; ДокументЦенник.Вывести(ОбластьМакета); Попытка Если СтрокаДанных.ШаблонЦенника = "ЦенникЛинолеум" Тогда ОбластьМакетаЦена = Макет.ПолучитьОбласть("Цена|Столбец"); ОбластьМакетаЦена.Параметры.Цена = ПредставлениеЦены(СтрокаДанных.Цена,Объект.Валюта); ОбластьМакетаДопЦена = Макет.ПолучитьОбласть("ДопЦена"); ОбластьМакетаДопЦена.Параметры.ДопЦена = ПредставлениеЦены(СтрокаДанных.ДопЦена,Объект.Валюта); ДокументЦенник.Вывести(ОбластьМакетаДопЦена); ДокументЦенник.Вывести(ОбластьМакетаЦена); ИначеЕсли СтрокаДанных.ШаблонЦенника = "ЦенникПлитка" ИЛИ СтрокаДанных.ШаблонЦенника="ЦенникЛаминат" Тогда ОбластьМакетаЦена = Макет.ПолучитьОбласть("Цена"); ОбластьМакетаЦена.Параметры.Цена = ПредставлениеЦены(СтрокаДанных.Цена,Объект.Валюта); ОбластьМакетаДопЦена = Макет.ПолучитьОбласть("ДопЦена|Столбец"); ОбластьМакетаДопЦена.Параметры.ДопЦена = ПредставлениеЦены(СтрокаДанных.ДопЦена,Объект.Валюта); ДокументЦенник.Вывести(ОбластьМакетаЦена); ДокументЦенник.Вывести(ОбластьМакетаДопЦена); ИначеЕсли СтрокаДанных.ШаблонЦенника = "ЦенникБольшинствоТоваров" Тогда ОбластьМакетаЦена = Макет.ПолучитьОбласть("Цена|Столбец"); ОбластьМакетаЦена.Параметры.Цена = ПредставлениеЦены(СтрокаДанных.Цена,Объект.Валюта); ДокументЦенник.Вывести(ОбластьМакетаЦена); ОбластьМакета = Макет.ПолучитьОбласть("ЕдиницаИзмерения|Столбец"); ОбластьМакета.Параметры.ЕдиницаИзмерения = СтрокаДанных.Упаковка; ДокументЦенник.Вывести(ОбластьМакета); КонецЕсли; Исключение КонецПопытки; ОбластьМакета = Макет.ПолучитьОбласть("КодТовара|Столбец"); ОбластьМакета.Параметры.КодТовара = СтрокаДанных.Код; ДокументЦенник.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Подпись|Столбец"); ДокументЦенник.Вывести(ОбластьМакета); //Заполняем выходной документ ценниками с их указанным количеством Если СтрокаДанных.РазмерЦенника = "Малыш" Тогда КоличествоВСтроке = 4; КоличествоСтрок = 8; ИначеЕсли СтрокаДанных.РазмерЦенника = "Малый" Тогда КоличествоВСтроке = 2; КоличествоСтрок = 6 ; ИначеЕсли СтрокаДанных.РазмерЦенника = "Средний" Тогда КоличествоВСтроке = 1; КоличествоСтрок = 5; ИначеЕсли СтрокаДанных.РазмерЦенника = "Большой" Тогда КоличествоВСтроке = 1; КоличествоСтрок =2; КонецЕсли; ТекСтолбец = 0; ТекСтрока = 0; Для КоличествоКопией = 0 По СтрокаДанных.КоличествоЦенников-1 Цикл Если ТекСтолбец <КоличествоВСтроке Тогда ДокументПечати.Присоединить(ДокументЦенник); ДокументПечати.ВывестиВертикальныйРазделительСтраниц(); ТекСтолбец = ТекСтолбец + 1; КонецЕсли; Если ТекСтолбец = КоличествоВСтроке Тогда ТекСтрока = ТекСтрока + 1; ТекСтолбец = 0; ДокументПечати.Вывести(ПустойТабДок); КонецЕсли; Если ТекСтрока = КоличествоСтрок И КоличествоКопией<СтрокаДанных.КоличествоЦенников-1 Тогда ТекСтрока = 0; ДокументПечати.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли КонецЦикла; //переход на новую страницу для ценников другого товара ДокументПечати.ВывестиГоризонтальныйРазделительСтраниц(); КонецЦикла; ДокументПечати.ОтображатьСетку = Ложь; Возврат ДокументПечати; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |