При работе с шаблонами файлов в 1С:Документооборот часто возникает задача: после изменения реквизитов в карточке документа (например, суммы, контрагента, даты или сторон) необходимо обновить содержимое уже прикрепленного файла Word или ODT. Рассмотрим подробнее, как устроена механика автозаполнения, почему в одних случаях файл можно обновлять многократно, а в других команда перезаполнения не срабатывает, и как автоматизировать этот процесс.
Выясним главную причину, по которой типовая команда «Заполнить файл данными документа» может не обновлять текст в файле. В правилах автозаполнения доступны два принципиально разных механизма вставки значений в шаблон:
[НомерДокумента] или %Сумма%. При первом заполнении система находит указанную подстроку и физически заменяет её значением реквизита. После этого исходный маркер в файле перестает существовать. При повторной попытке перезаполнить файл алгоритм поиска подстрок ничего не находит, и данные остаются прежними. По этой причине замена строк работает только один раз — при начальном создании файла из шаблона.Таким образом, для реализации сценария постоянного или периодического обновления файла необходимо настраивать шаблон строго через поля формы, а не через замену строк.
При добавлении полей формы пользователи часто сталкиваются с тем, что вокруг вставленных значений отображается серая подложка. Разберем по шагам, как отключить затенение полей в шаблоне Word:
Разработчик в ленте Microsoft Word (если она не включена в параметрах ленты).Эта опция переключает видимость серого фона: данные остаются полями формы, сохраняют свои идентификаторы для перезаполнения из 1С, но визуально не выделяются серым цветом при печати и обычном чтении.
Если требуется, чтобы файл обновлялся автоматически без ручного нажатия кнопки пользователем, проанализируем возможные варианты реализации в конфигурации:
В системе можно настроить дополнительный обработчик для бизнес-события Изменение внутреннего документа или Изменение исходящего документа. В коде обработчика выполняется поиск прикрепленного файла, связанного с правилом автозаполнения, и вызывается процедура автозаполнения модуля работы с шаблонами файлов.
В настройках правил обработки объекта можно добавить автодействие или встроенный скрипт на определенном этапе жизненного цикла документа (например, при регистрации, после согласования или перед формированием печатной формы), который программно передает команду на обновление содержимого присоединенного файла.
В комплексных маршрутах согласования и утверждения можно вызывать шаг со скриптом, который обновляет файл после утверждения всех ключевых условий сделки.
При настройке программного или ручного перезаполнения важно учитывать системные ограничения платформы и прикладного решения:
Занят или заблокирован в рабочем каталоге), операция перезаполнения завершится ошибкой. Перед вызовом перезаполнения необходимо проверять статус занятости файла.DOCX и ODT выполняется платформой на уровне прямого разбора XML и не требует наличия установленного офисного пакета на сервере 1С, в то время как устаревший формат DOC требует COM-соединения, что накладывает ограничения на серверы под управлением Linux.