Как настроить автоматическую вставку штрихкода в документы 1С:Документооборот?

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

В процессе внедрения системы 1С:Документооборот (будь то редакция 2.1 или 3.0) одной из наиболее востребованных задач является автоматизация маркировки документов. Штрихкодирование позволяет существенно ускорить поиск бумажных оригиналов, автоматизировать потоковое сканирование и исключить ошибки ручного ввода. Рассмотрим подробно, как реализовать автоматическую вставку штрихкода в шаблоны файлов, разберем технические нюансы работы с различными форматами и выясним, как обойти типичные ограничения системы.

Механизм работы тега «ВставитьИзображениеШтрихкода»

Основной способ автоматизации процесса — использование специального текстового маркера (тега) непосредственно в теле шаблона документа. Проанализируем, как система распознает необходимость вставки графического объекта. Для того чтобы 1С поняла, куда именно нужно поместить штрихкод, в шаблоне файла (обычно это формат .docx) необходимо прописать строку ВставитьИзображениеШтрихкода. При необходимости можно воспользоваться расширением для автоматической вставки QR-кода в файлы doc и docx внутренних документов Документооборота.

Важно соблюдать следующие условия для корректной работы механизма:

  1. Текст должен быть написан ровно так, как указано выше, без пробелов внутри фразы.
  2. Для файла документа в системе 1С должно быть настроено хотя бы одно правило автозаполнения. Даже если вы не планируете заполнять другие поля, правило должно существовать, так как именно в момент выполнения скриптов автозаполнения система ищет и заменяет текстовый маркер на картинку.
  3. В системе должна быть установлена и зарегистрирована внешняя компонента 1С:Печать штрихкодов. Без нее генерация самого изображения будет невозможна.

Пошаговая настройка шаблона в MS Word

Разберем по шагам процесс подготовки бланка. Предположим, у нас есть шаблон служебной записки. Нам нужно, чтобы в правом верхнем углу при создании документа появлялся уникальный штрихкод.

Рассмотрим алгоритм действий:

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

Ограничения форматов: почему не работает в ODT?

Проанализируем ситуацию, с которой часто сталкиваются пользователи программ с открытым исходным кодом (LibreOffice, OpenOffice). Как показывает практика и обсуждения специалистов, стандартный механизм замены текста ВставитьИзображениеШтрихкода эффективно работает преимущественно в файлах формата MS Word (.docx).

Выясним причину: в старых версиях 1С:ДО (до 2.1.11) взаимодействие с документами .odt осуществлялось по иным алгоритмам, которые не всегда поддерживали поиск текстовых вхождений для замены на графические объекты через механизмы COM-соединения. Если ваша организация использует формат .odt, рекомендуется либо использовать актуальные версии 1С:ДО (где поддержка расширена), либо настроить на сервере LibreOffice в качестве обработчика, что позволяет системе более гибко манипулировать содержимым файлов. Тем не менее, для стабильного результата штрихкодирования "из коробки" лучшим выбором остается .docx.

Размещение штрихкода на каждой странице (Колонтитулы)

Часто возникает вопрос: как сделать так, чтобы штрихкод отображался на каждой странице документа, а не только на первой? Стандартное поведение 1С при вставке в тело документа — это разовое размещение. Чтобы добиться дублирования на всех страницах, рассмотрим использование колонтитулов.

Разберем технические сложности этого подхода:

В MS Word колонтитулы являются отдельными объектами (StoryRanges). Иногда стандартный программный код 1С просматривает только основной текст документа и "не видит" тег внутри колонтитула. Если при вставке в колонтитул замена не происходит, программисту может потребоваться внести изменения в общий модуль, отвечающий за автозаполнение (например, РаботаСФайламиВызовСервера), чтобы поиск строки шел по всем разделам документа.

Важный момент: если в вашем документе настроен "Особый колонтитул для первой страницы", вам необходимо вставить тег ВставитьИзображениеШтрихкода как в колонтитул первой страницы, так и в колонтитул последующих страниц.

Альтернатива: Регистрационный штамп

Если вам недостаточно одного штрихкода и требуется вывести номер документа и дату, проанализируем использование тега ВставитьРегистрационныйШтамп.

Этот механизм работает аналогично штрихкоду, но вставляет более сложный объект, который включает в себя:

Этот штамп выглядит более официально и часто используется для входящей и исходящей корреспонденции. Настраивается он точно так же — добавлением ключевого слова в шаблон Word.

Автоматизация для уже существующих документов (PDF и сканы)

Что делать, если документ не имеет шаблона (например, пришел через ЭДО или загружен извне), но его нужно отмаркировать? Выясним, какие инструменты предоставляет 1С:ДО для таких случаев.

Существует функционал "Визуализация электронных подписей и штампов". В настройках программы можно задать параметры наложения штрихкода при печати или при преобразовании документа в PDF. В этом случае не нужно редактировать сам файл — система "наложит" изображение поверх содержимого по заданным координатам (отступам в миллиметрах от краев листа). Это идеальное решение для штрихкодирования каждой страницы в автоматическом режиме без использования шаблонов автозаполнения. Для этой задачи можно использовать обработку для установки штампов и изображений в PDF средствами платформы.

Техническая реализация в коде (для разработчиков)

Если типового функционала недостаточно, посмотрим, как программно инициировать вставку штрихкода. В конфигурации 1С:Документооборот за формирование штрихкода отвечает функционал формирования изображений на основе идентификатора (ссылки) объекта.

Пример логики, которую использует система для получения картинки (упрощенно):


// Получаем данные для формирования штрихкода
ДанныеШтрихкода = СформироватьДанныеШтрихкода(СсылкаНаОбъект);

// Параметры компоненты
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина", 40);
ПараметрыШтрихкода.Вставить("Высота", 15);
ПараметрыШтрихкода.Вставить("ТипШтрихкода", 16); // Code128

// Генерация картинки
КартинкаШтрихкода = МенеджерОборудованияВызовСервера.ПолучитьИзображениеШтрихкода(ДанныеШтрихкода, ПараметрыШтрихкода);

Этот код позволяет получить объект Картинка, который затем программно через COM-объект Word.Application можно вставить в любое место документа, используя методы Bookmarks или Find.Execute.

Особенности 1С:Документооборот 3.0

В новой версии 3.0 подход к автозаполнению изменился. Теперь настройки стали более гибкими. Рассмотрим основные отличия:

Подводя итог, можно сказать, что для большинства задач автоматической вставки штрихкода достаточно правильно оформить шаблон Word с использованием фразы ВставитьИзображениеШтрихкода и убедиться, что для документа настроены правила заполнения. Для более сложных сценариев (штрихкодирование каждой страницы или работа с PDF) следует использовать механизмы визуализации штампов в настройках программы.

← На главную