Как в 1С:Управление торговлей 10 изменить шрифт штрихкода и настроить его отображение?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе с конфигурацией 1С:Управление торговлей 10.3, которая базируется на обычных формах, пользователи и разработчики часто сталкиваются с необходимостью кастомизации печатных форм этикеток или ценников. Одной из самых распространенных задач является изменение внешнего вида штрихкода: управление шрифтом, скрытие цифр или полное исключение штрихкода из печати, если он не задан для конкретного товара. Разберем эти вопросы подробно, опираясь на технические особенности платформы и компоненты 1C:Печать штрихкодов.

Доступ к расширенным свойствам штрихкода

Первое, с чем мы сталкиваемся при попытке изменить шрифт или убрать цифры под полосками — это поиск нужных настроек. В обычном макете 1С штрихкод представлен как объект типа Рисунок. Если мы просто нажмем на него правой кнопкой мыши и выберем пункт «Свойства», то увидим лишь стандартные параметры графического объекта (имя, положение, тип линии). Чтобы добраться до специфических настроек самого штрихкода, проделаем следующие шаги:

  1. Откроем макет этикетки или ценника в конфигураторе.
  2. Выделим объект штрихкода.
  3. В палитре свойств (обычно справа) найдем поле, в котором по умолчанию написано Рисунок (это выпадающий список в верхней части палитры).
  4. Выберем в этом списке пункт, соответствующий объекту ActiveX (часто он называется Штрихкод или имеет имя программного идентификатора).
  5. После этого в нижней части свойств или через кнопку выбора в поле Объект нам станет доступно модальное окно настроек компоненты печати штрихкодов.

Важное замечание: Если при нажатии на кнопку выбора окна настроек ничего не происходит, проанализируем состояние установленных компонентов в системе. В современных версиях Windows (10 и 11) библиотека 1CBarCode.exe может требовать ручной регистрации. Попробуем выполнить команду в консоли от имени администратора:

regsvr32 "C:\PathToYourDll\1cbarcode.dll"

Как убрать цифры под штрихкодом

Если дизайн этикетки предполагает отсутствие числового значения (например, когда место сильно ограничено), нам нужно отключить отображение текста. Рассмотрим, как это сделать в окне свойств объекта, которое мы открыли на предыдущем шаге:

  1. Перейдем на вкладку Другие или Параметры (названия могут варьироваться в зависимости от версии компоненты).
  2. Найдем свойство Отображать текст (или ShowText).
  3. Снимем соответствующую галочку.

Проанализируем результат: после снятия галочки штрихкод автоматически растягивается по вертикали на всю высоту графического объекта. Это позволяет сделать полоски более длинными, что улучшает считываемость сканером.

Изменение шрифта штрихкода: обходные пути

Стандартная компонента ActiveX от 1С крайне ограничена в плане форматирования подписи. Зачастую изменить шрифт с Arial на более подходящий (например, на узкий шрифт для экономии места) напрямую невозможно. Выясним, как профессиональные разработчики решают эту проблему.

Метод «Текстовая подложка»:

Наиболее надежный способ — это полное отключение текста в свойствах ActiveX-объекта (как описано выше) и создание под картинкой обычной текстовой ячейки макета. В эту ячейку мы выводим переменную, содержащую строковое представление штрихкода. Для этой ячейки мы можем применить любые стандартные средства оформления 1С:

Использование шрифтовых штрихкодов:

Рассмотрим еще один вариант — отказ от графического объекта в пользу специальных шрифтов (например, EAN13.ttf). В этом случае мы просто выводим строку символов в ячейку и назначаем ей этот шрифт. Однако помните, что для корректной работы EAN-13 требуется предварительный расчет контрольного символа и преобразование цифр в специальные буквенные коды шрифта.

Программное скрытие штрихкода при его отсутствии

Часто возникает ситуация: в документе 20 позиций, но штрихкоды заведены только для 15. Если не обрабатывать это программно, на этикетках без штрихкода может отображаться «пустой» объект или ошибка. Посмотрим на пример кода, который позволяет управлять видимостью рисунка в области макета.

Разберем по шагам логику вывода в модуле обработки:


// Получаем область макета
ОбластьЦенника = Макет.ПолучитьОбласть("Строка");

// Проверяем наличие штрихкода у текущего товара
Если ЗначениеЗаполнено(Выборка.Штрихкод) Тогда
    // Если штрихкод есть, передаем данные в объект
    ОбластьЦенника.Рисунки.Штрихкод.Объект.Сообщение = Выборка.Штрихкод;
    ОбластьЦенника.Рисунки.Штрихкод.Видимость = Истина;
Иначе
    // Если штрихкода нет, скрываем картинку, чтобы не было пустого места или рамки
    ОбластьЦенника.Рисунки.Штрихкод.Видимость = Ложь;
    
    // Альтернативный метод: установка нулевого размера, если свойство Видимость не отрабатывает
    // ОбластьЦенника.Рисунки.Штрихкод.Высота = 0;
    // ОбластьЦенника.Рисунки.Штрихкод.Ширина = 0;
КонецЕсли;

// Выводим готовую область в табличный документ
ТабДок.Вывести(ОбластьЦенника);

Проанализируем ситуацию, описанную в сообщениях форума. Пользователь предлагал удалять рисунок, но это неверный подход, так как при следующем цикле вывода (для другого товара) объекта в области уже не будет. Правильное решение — именно использование свойства Видимость или использование двух разных областей макета (одну со штрихкодом, другую без него).

Резюме по настройке

Подводя итог, можно сказать, что работа со штрихкодами в УТ 10.3 требует понимания того, как платформа взаимодействует с внешними ActiveX-компонентами. Для изменения шрифта мы рекомендуем использовать разделение графики и текста, а для управления выводом — проверку ЗначениеЗаполнено() в коде формирования печатной формы. Это обеспечит гибкость дизайна и стабильность работы системы при печати больших партий этикеток.

← На главную