Не получается вывести ШК в печать документов.

1. Alis95 31.01.25 01:38 Сейчас в теме
Здравствуйте, уважаемые форумчане!
Розница, редакция 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. Отредактировал строку:
&НаСервере
Процедура ЗаполнитьТаблицуТоваровНаСервере(Сохранять = Истина)// Загрузка сформированного списка товаров.
...
НоваяСтрока.Штрихкод = СформироватьСтрокуEanGnivc(СтрокаТЧ.Штрихкод);
...

3. Отредактировал строку:
&НаСервере
Процедура ДобавитьТовары(Таблица, ИдентификаторСтроки = Неопределено)НоваяСтрока.Штрихкод             = СформироватьСтрокуEanGnivc(СтрокаТЧ.Штрихкод);
...

4. Добавил строку:
// Заполняет недостающие данные в ТЧ "Товары" 
&НаСервере
Процедура ЗаполнитьПоляТаблицы(ЗаполняемыеПоля)СтрокаТЧ.Штрихкод = РезультатПоиска[0].Штрихкод;
                СтрокаТЧ.Штрихкод = СформироватьСтрокуEanGnivc(СтрокаТЧ.Штрихкод);
...


В итоге, в табличной части формы печати этикеток в столбце "Штрихкод" у номенклатуры теперь корректно отражается преобразованный ШК.
В шаблоне (Тип: «Этикетка (ценник) для товара») - «[Штрихкод]» добавлен не как картинка, а как текст (со шрифтом EanGnivc).
Но, в окне предварительного просмотра «Печать документов» - поле ШК – пусто.
Хотя если преобразованный ШК добавляю в номенклатуру 2-ым – то в форме печати он (преобразованный) начинает отражаться и печатается нормально. (Даже если обычный ШК отмечен как ШК "для отчётов и печатных форм".) Но добавлять в каждую номенклатуру по 2 ШК - не хотелось-бы. Такое ощущение, что где-то преобразованный ШК из формы печати этикеток сравнивается с ШК в номенклатуре, и если в номенклатуре такой отсутствует, то не выводится на печать.

Подскажите, пожалуйста, что я упустил?

Заранее крайне благодарен!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alis95 01.02.25 03:01 Сейчас в теме
Попробую переформулировать вопрос.
Интересует только текст ШК – без картинки. Речь будет идти только о тексте ШК.
Как передать преобразованный штрихкод из табличной части «Печать этикеток и ценников» в «Печать документа»?
При печати, в «Печать документа», ШК берётся из справочника «Штрихкоды», сравнивается с табличной частью «Печать этикеток и ценников», и если такого нет – не выводится на печать; если есть - выводится.

Сильно упрощенный пример:
Кусок кода обработки «ПечатьЭтикетокИЦенников» (не БПО) в «Форма»:
Код
Процедура ЗаполнитьТаблицуТоваровНаСервере(Сохранять = Истина)// Загрузка сформированного списка товаров.
   СтруктураРезультата = Обработки.ПечатьЭтикетокИЦенников.ПодготовитьСтруктуруДанных(СтруктураНастроек);
   
   ИспользоватьХарактеристикиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьХарактеристикиНоменклатуры");
   ИспользоватьУпаковкиНоменклатуры = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры");
   
   ДобавитьСкладИОрганизациюПродажи(
      СтруктураРезультата.ТаблицаТоваров,
      Объект.Магазин,
      МенеджерОборудованияВызовСервера.ПолучитьРабочееМестоКлиента());
   
   Для Каждого СтрокаТЧ Из СтруктураРезультата.ТаблицаТоваров Цикл
      
      НоваяСтрока = Объект.Товары.Добавить();
      НоваяСтрока.Номенклатура         = СтрокаТЧ.Номенклатура;
      
      Если Объект.ИспользоватьСправкиБ Тогда
         НоваяСтрока.Справка2         = СтрокаТЧ.Справка2;
      КонецЕсли;
      
      Если ИспользоватьХарактеристикиНоменклатуры Тогда
         НоваяСтрока.Характеристика       = СтрокаТЧ.Характеристика;
      КонецЕсли;
      
      НоваяСтрока.НаименованиеПолное = СтрокаТЧ.НаименованиеПолное;
      
      Если ИспользоватьУпаковкиНоменклатуры Тогда
         НоваяСтрока.Упаковка             = СтрокаТЧ.Упаковка;
      КонецЕсли;
      
      НоваяСтрока.Цена                 = СтрокаТЧ.Цена;
      НоваяСтрока.Штрихкод             = СтрокаТЧ.Штрихкод;
Показать полностью

Меняю «НоваяСтрока.Штрихкод = СтрокаТЧ.Штрихкод;» на «НоваяСтрока.Штрихкод = “1234567890128”;». Теперь в табличной части «ПечатьЭтикетокИЦенников» у номенклатуры, вместо штатного ШК - “1234567890128”. Но при печати, в окне предварительного просмотра – вместо ШК – пусто. Если в номенклатуру добавляю ещё “1234567890128” – то отражается и печатается нормально.

Или другой вопрос, вместо всего выше сказанного, как в форме печати подменить штатный ШК на преобразованный ШК?

Заранее благодарен за любые подсказки.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот