Здравствуйте, уважаемые форумчане! Розница, редакция 3.0.10.178 на 1С:Предприятие 8.3.26.1521 Файловый вариант.
Характеристики номенклатуры не используются. Используются только EAN-13 и EAN-8.
Используется старая «ПечатьЭтикетокИЦенников», НЕ «ПечатьЭтикетокИЦенниковБПО»!
Печать – на принтер Windows (Zebra TLP 2824 Plus (TLP)), не через Гексагон.
Пытаюсь реализовать печать ШК шрифтом EanGnivc, используя функцию отсюда: https://infostart.ru/1c/articles/189520/ .
Вкратце - функция преобразует цифровой ШК в набор символов, который шрифтом EanGnivc корректно отражается в виде правильного ШК EAN-13.
В обработку «ПечатьЭтикетокИЦенников» в «Форма» добавил:
1. Функцию по ссылке выше.
2. Отредактировал строку:
// Заполняет недостающие данные в ТЧ "Товары"
&НаСервере
Процедура ЗаполнитьПоляТаблицы(ЗаполняемыеПоля)
…
СтрокаТЧ.Штрихкод = РезультатПоиска[0].Штрихкод;
СтрокаТЧ.Штрихкод = СформироватьСтрокуEanGnivc(СтрокаТЧ.Штрихкод);
...
В итоге, в табличной части формы печати этикеток в столбце "Штрихкод" у номенклатуры теперь корректно отражается преобразованный ШК.
В шаблоне (Тип: «Этикетка (ценник) для товара») - «[Штрихкод]» добавлен не как картинка, а как текст (со шрифтом EanGnivc).
Но, в окне предварительного просмотра «Печать документов» - поле ШК – пусто.
Хотя если преобразованный ШК добавляю в номенклатуру 2-ым – то в форме печати он (преобразованный) начинает отражаться и печатается нормально. (Даже если обычный ШК отмечен как ШК "для отчётов и печатных форм".) Но добавлять в каждую номенклатуру по 2 ШК - не хотелось-бы. Такое ощущение, что где-то преобразованный ШК из формы печати этикеток сравнивается с ШК в номенклатуре, и если в номенклатуре такой отсутствует, то не выводится на печать.
Попробую переформулировать вопрос.
Интересует только текст ШК – без картинки. Речь будет идти только о тексте ШК.
Как передать преобразованный штрихкод из табличной части «Печать этикеток и ценников» в «Печать документа»? При печати, в «Печать документа», ШК берётся из справочника «Штрихкоды», сравнивается с табличной частью «Печать этикеток и ценников», и если такого нет – не выводится на печать; если есть - выводится.
Сильно упрощенный пример:
Кусок кода обработки «ПечатьЭтикетокИЦенников» (не БПО) в «Форма»:
Код
Процедура ЗаполнитьТаблицуТоваровНаСервере(Сохранять = Истина)
…
// Загрузка сформированного списка товаров.
СтруктураРезультата = Обработки.ПечатьЭтикетокИЦенников.ПодготовитьСтруктуруДанных(СтруктураНастроек);
ИспользоватьХарактеристикиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры");
ИспользоватьУпаковкиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры");
ДобавитьСкладИОрганизациюПродажи(
СтруктураРезультата.ТаблицаТоваров,
Объект.Магазин,
МенеджерОборудованияВызовСервера.ПолучитьРабочееМестоКлиента());
Для Каждого СтрокаТЧ Из СтруктураРезультата.ТаблицаТоваров Цикл
НоваяСтрока = Объект.Товары.Добавить();
НоваяСтрока.Номенклатура = СтрокаТЧ.Номенклатура;
Если Объект.ИспользоватьСправкиБ Тогда
НоваяСтрока.Справка2 = СтрокаТЧ.Справка2;
КонецЕсли;
Если ИспользоватьХарактеристикиНоменклатуры Тогда
НоваяСтрока.Характеристика = СтрокаТЧ.Характеристика;
КонецЕсли;
НоваяСтрока.НаименованиеПолное = СтрокаТЧ.НаименованиеПолное;
Если ИспользоватьУпаковкиНоменклатуры Тогда
НоваяСтрока.Упаковка = СтрокаТЧ.Упаковка;
КонецЕсли;
НоваяСтрока.Цена = СтрокаТЧ.Цена;
НоваяСтрока.Штрихкод = СтрокаТЧ.Штрихкод;
…
Показать полностью
Меняю «НоваяСтрока.Штрихкод = СтрокаТЧ.Штрихкод;» на «НоваяСтрока.Штрихкод = “1234567890128”;». Теперь в табличной части «ПечатьЭтикетокИЦенников» у номенклатуры, вместо штатного ШК - “1234567890128”. Но при печати, в окне предварительного просмотра – вместо ШК – пусто. Если в номенклатуру добавляю ещё “1234567890128” – то отражается и печатается нормально.
Или другой вопрос, вместо всего выше сказанного, как в форме печати подменить штатный ШК на преобразованный ШК?