Как настроить перезаполнение файла данными документа в 1С:Документооборот?

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

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

Разница между полями формы и заменой строк

Выясним главную причину, по которой типовая команда «Заполнить файл данными документа» может не обновлять текст в файле. В правилах автозаполнения доступны два принципиально разных механизма вставки значений в шаблон:

  1. Замена строк (маркеров текста): в тексте шаблона прописываются метки вида [НомерДокумента] или %Сумма%. При первом заполнении система находит указанную подстроку и физически заменяет её значением реквизита. После этого исходный маркер в файле перестает существовать. При повторной попытке перезаполнить файл алгоритм поиска подстрок ничего не находит, и данные остаются прежними. По этой причине замена строк работает только один раз — при начальном создании файла из шаблона.
  2. Поля формы (текстовые поля / закладки): в шаблон документа Word добавляются специальные элементы управления (поля формы). В структуре XML-файла такие поля имеют уникальные имена (идентификаторы). При выполнении автозаполнения 1С находит элемент по его системному имени и обновляет внутренний текст поля, сохраняя сам элемент. Благодаря этому файл можно перезаполнять неограниченное количество раз при любом изменении реквизитов.

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

Как убрать серый фон у полей формы в Microsoft Word

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

  1. Включим отображение вкладки Разработчик в ленте Microsoft Word (если она не включена в параметрах ленты).
  2. Перейдем на вкладку Разработчик.
  3. В группе Элементы управления раскроем меню Инструменты из предыдущих версий (иконка с папкой и инструментами).
  4. В блоке Формы предыдущих версий нажмем кнопку Затенение полей формы.

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

Способы автоматизации перезаполнения файлов

Если требуется, чтобы файл обновлялся автоматически без ручного нажатия кнопки пользователем, проанализируем возможные варианты реализации в конфигурации:

  1. Использование бизнес-событий (1С:Документооборот 2.1):

    В системе можно настроить дополнительный обработчик для бизнес-события Изменение внутреннего документа или Изменение исходящего документа. В коде обработчика выполняется поиск прикрепленного файла, связанного с правилом автозаполнения, и вызывается процедура автозаполнения модуля работы с шаблонами файлов.

  2. Скрипты и автодействия в схемах обработки (1С:Документооборот 3.0):

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

  3. Шаги в комплексных процессах:

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

Ограничения и технические нюансы

При настройке программного или ручного перезаполнения важно учитывать системные ограничения платформы и прикладного решения:

  1. Блокировка файла на редактирование: если файл открыт кем-то из пользователей на редактирование (установлен признак Занят или заблокирован в рабочем каталоге), операция перезаполнения завершится ошибкой. Перед вызовом перезаполнения необходимо проверять статус занятости файла.
  2. Электронная цифровая подпись (ЭП): если на файл или документ уже установлена электронная подпись, перезаполнение запрещается, так как изменение бинарного содержимого сделает существующую ЭП недействительной.
  3. Матрица прав и состояний: если документ перешел в состояние, в котором редактирование файлов запрещено (например, «Утвержден» или «Зарегистрирован»), выполнение перезаполнения вызовет ошибку прав доступа.
  4. Версионирование файлов: при включенном версионировании каждое сохранение файла после автозаполнения формирует новую версию. Слишком частое фоновое обновление при каждом сохранении карточки может привести к быстрому увеличению размера базы данных.
  5. Формат файлов: обработка форматов DOCX и ODT выполняется платформой на уровне прямого разбора XML и не требует наличия установленного офисного пакета на сервере 1С, в то время как устаревший формат DOC требует COM-соединения, что накладывает ограничения на серверы под управлением Linux.
← На главную