Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 17:41

Печать штрих кодов на форму печати выводятся 3 штрих кода на принтер выходит только 2.

Автор ZSS, 24 апр 2017, 07:50

0 Пользователей и 1 гость просматривают эту тему.

ZSS

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

Процедура ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка) Экспорт
   
   Элемент = ОбъектыПечати.НайтиПоЗначению(Ссылка);
   Если Элемент = Неопределено Тогда
      ИмяОбласти = "Документ_" + Формат(ОбъектыПечати.Количество() + 1, "ЧН=; ЧГ=");
      ОбъектыПечати.Добавить(Ссылка, ИмяОбласти);
   Иначе
      ИмяОбласти = Элемент.Представление;
   КонецЕсли;
   
   НомерСтрокиОкончание = ТабличныйДокумент.ВысотаТаблицы;
   ТабличныйДокумент.Область(НомерСтрокиНачало, , НомерСтрокиОкончание, ).Имя = ИмяОбласти;

КонецПроцедуры

В отладчике все области видит но почему то на принтер выходит только 1 область вторая не выходит на притер??что может быть подскажите?

TytovV

У вас в цикле речь идет только об одной ОбластьМакета.Рисунок.ШтрихКод где описание остальных картинок штрих кодов. Даже в присодинении области нет ни слова что вы еще присодиняете при следующем проходе такую же область картинка. Причем далее в условие Если вы сразу выводите вывести(областьмакета) так как ваше выражение в скобках 0-0 =0 это что за арифметика вы наверное хотели остаток от 0 таким образом вычесть. Пересмотрите это кусочек, у при следующем проходе цикла должна присоединится следующая область картинка.


Отправлено с моего iPhone используя Tapatalk

ZSS

Когда делаешь через предворительный просмотр,печатаются 3 штрих кода.Кто нибудь знает в чем может быть причина?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск