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

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

В процессе работы с системой 1С:Документооборот пользователи часто сталкиваются с необходимостью автоматического переноса данных из карточки документа в файлы формата MS Word или OpenOffice. Одной из частых задач является корректное отображение дат начала и окончания действия документа. Давайте разберем, как реализовать это через механизм скриптов.

Понимание механизма автозаполнения

Система «1С:Документооборот» предоставляет встроенный функционал автозаполнения файлов. Он позволяет связывать реквизиты документа с полями в шаблоне файла. Когда простых настроек выбора реквизитов из списка недостаточно — например, если нужно изменить формат даты, выполнить вычисления или получить данные из связанных объектов — мы прибегаем к написанию скриптов на встроенном языке 1С.

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

Использование скриптов для получения дат

Когда вы создаете правило заполнения, у вас есть возможность переключиться на вкладку «Скрипты». Здесь вы можете написать код, который динамически сформирует значение для поля.

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

Для обращения к данным документа-владельца используйте объект Файл. Путь к данным выглядит следующим образом: Файл.ВладелецФайла — это ссылка на сам документ, из которого мы берем значения реквизитов.

Пример написания скрипта для дат

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


// Получаем доступ к документу-владельцу
ДокументОбъект = Файл.ВладелецФайла.ПолучитьОбъект();

// Проверяем заполненность даты и форматируем ее
Если ЗначениеЗаполнено(ДокументОбъект.ДатаНачалаДействия) Тогда
    РезультатОбработки = Формат(ДокументОбъект.ДатаНачалаДействия, "ДЛФ=Д");
Иначе
    РезультатОбработки = "Дата не указана";
КонецЕсли;

Разберем данный пример подробнее:

  1. Сначала мы получаем объект документа через Файл.ВладелецФайла.ПолучитьОбъект(). Это дает нам доступ ко всем данным карточки.
  2. Используем функцию ЗначениеЗаполнено(), чтобы избежать ошибок при пустых значениях.
  3. Применяем функцию Формат() с параметром ДЛФ=Д. Это стандартный способ привести дату к человекочитаемому виду, принятому в системе 1С.
  4. В завершение присваиваем полученную строку переменной РезультатОбработки.

Советы по разработке

Надеемся, что это руководство поможет вам систематизировать подход к настройке шаблонов. Работа со скриптами в 1С требует аккуратности, но при использовании правильных объектов, таких как Файл и РезультатОбработки, вы сможете автоматизировать заполнение любых документов.

← На главную