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

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

При работе в программе 1С:Документооборот 3.0, особенно когда мы активно создаем новые документы на основании уже существующих, возникает потребность в автоматическом заполнении определенных полей. Это позволяет существенно экономить время, минимизировать ошибки и стандартизировать процессы. Современные версии Документооборота, в частности 3.0, предлагают широкие возможности для реализации такого функционала, в том числе с использованием концепции Low-code/No-code, о которой упоминали участники обсуждения. Давайте рассмотрим подробнее основные подходы к автоматическому заполнению полей.

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

1. Настройка автозаполнения шаблонов файлов с помощью скриптов в пользовательском режиме

Одним из самых мощных и гибких инструментов в 1С:Документооборот 3.0 для автоматического заполнения является использование скриптов, которые мы можем создавать и изменять непосредственно в пользовательском режиме. Это означает, что для многих задач нам не потребуется привлекать программиста для изменения конфигурации, что является ярким примером подхода Low-code/No-code. Скрипты позволяют нам реализовать сложную логику заполнения, которую невозможно достичь простым сопоставлением полей.

Для начала работы со скриптами, мы должны найти их в системе. Доступ ко всем элементам с пользовательским кодом, включая скрипты для автозаполнения, осуществляется через раздел "Все скрипты". Здесь мы можем создавать новые скрипты или изменять уже существующие. Скрипт представляет собой фрагмент кода на встроенном языке 1С, который может выполнять различные операции, такие как получение данных из связанных объектов, их обработка, форматирование и подстановка в нужные поля.

После того как мы создали или выбрали нужный скрипт, нам необходимо связать его с конкретным шаблоном файла документа. Для этого мы переходим к настройке заполнения шаблона файла, где находим специальную закладку "Скрипт". Здесь мы указываем наш скрипт, который будет выполняться при создании документа по этому шаблону. Это позволяет нам многократно использовать уже проверенные и протестированные алгоритмы в различных конструкциях, обеспечивая единообразие и надежность.

Что именно мы можем делать с помощью таких скриптов? Практически все, что касается динамического формирования содержимого полей. Например, мы можем настроить заполнение:

  1. ФИО и должности адресата: Скрипт может получить данные об адресате из документа-основания или связанных справочников, а затем склонить ФИО в нужный падеж, если это требуется для официального документа.
  2. Содержания документа: Часть текстового содержания нового документа может быть автоматически сформирована на основе определенных реквизитов документа-основания, возможно, с добавлением стандартных фраз.
  3. Должности руководителя выбранной организации: Если нам нужно указать руководителя организации, скрипт может найти соответствующую организацию в базе, получить данные о ее руководителе и его должности.

Для более глубокого понимания, давайте представим, как может выглядеть выражение на встроенном языке 1С, которое мы могли бы использовать в таком скрипте. Предположим, нам нужно получить полное ФИО руководителя организации из документа-основания и склонить его в дательный падеж:


// В скрипте мы получаем доступ к объекту документа-основания,
// который обычно передается как параметр. Предположим, это переменная "ДокументОснование".

// Получаем объект организации из документа-основания
Организация = ДокументОснование.Организация;

// Получаем объект руководителя организации
Руководитель = Организация.Руководитель;

// Получаем полное ФИО руководителя
ФИОРуководителя = Руководитель.ФИОПолное;

// Склоняем ФИО в дательный падеж
// Для этого нам может понадобиться использовать вспомогательную функцию или объект,
// предоставляемый платформой или конфигурацией, например, из БСП или модуля.
// Пусть это будет гипотетическая функция "СклонениеФИО.Склонить".
СклоненноеФИО = СклонениеФИО.Склонить(ФИОРуководителя, "Дательный");

// Теперь "СклоненноеФИО" можно подставить в соответствующее поле нового документа.

В этом примере мы видим использование таких объектов, как ДокументОснование, Организация, Руководитель и их свойств ФИОПолное. Также предполагается наличие функционала для склонения ФИО, который часто реализуется с помощью общих модулей или внешних компонент. Такой подход позволяет нам формировать динамическое и контекстно-зависимое заполнение, делая документы более точными и профессиональными.

2. Настройка заполнения полей шаблона документа (без сложных скриптов)

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

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

Далее мы разберем процесс настройки по шагам:

  1. Создание или выбор вида документа: В разделе "НСИ" (Нормативно-справочная информация) мы создаем новый или выбираем существующий вид документа, для которого хотим настроить автозаполнение. Например, это может быть "Приказ о приеме на работу" или "Договор оказания услуг".
  2. Прикрепление шаблона документа: В карточке выбранного вида документа переходим на закладку "Создание документов". Здесь мы можем прикрепить файл-шаблон, который будет использоваться для создания новых документов. Чаще всего это документ Microsoft Word.
  3. Подготовка файла Word: Самый важный шаг в этом процессе — подготовка самого файла Word. В документе Word мы должны расставить специальные поля, которые будут служить "заглушками" для данных из 1С. Для этого мы используем вкладку "Разработчик" в Word, где можем вставлять элементы управления содержимым (Content Controls), такие как текстовые поля, раскрывающиеся списки и т.д. Каждому такому полю мы даем уникальное имя. Например, для поля, куда будет подставляться ФИО сотрудника, мы можем дать имя ФИОСотрудника.
  4. Сопоставление полей в 1С:Документооборот: После того как шаблон Word готов и прикреплен, мы возвращаемся в 1С:Документооборот. В настройках автозаполнения файлов для выбранного вида документа мы осуществляем сопоставление полей, которые мы разместили в Word, с реквизитами карточки документа в системе. Это происходит через удобный интерфейс, где мы выбираем поле из Word и соответствующий ему реквизит 1С.

Например, если в Word у нас есть поле с именем ДатаДокумента, мы сопоставляем его с реквизитом карточки документа Дата. Если в Word есть поле НомерДоговора, мы сопоставляем его с реквизитом Номер. Таким образом, при создании нового документа на основании, 1С автоматически прочитает значения из соответствующих реквизитов документа-основания и подставит их в подготовленные поля Word.

Для более сложного заполнения, выходящего за рамки простого сопоставления, например, когда данные находятся в табличной части документа-основания, требуют объединения нескольких реквизитов или дополнительной логики, мы можем использовать выражения на встроенном языке 1С непосредственно в настройках сопоставления. Это позволяет нам вычислять значения для полей на лету. Например, если нам нужно получить ФИО ответственного сотрудника из определенной роли в документе-основании, мы можем написать выражение, которое обращается к этим данным:


ДокументОснование.Ответственные.НайтиПоРоли("ОтветственныйЗаИсполнение").Сотрудник.ФИО

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

3. Использование реквизитов документов как основы для данных

Фундаментальным аспектом в 1С:Документооборот 3.0, который напрямую влияет на возможности автоматического заполнения, является гибкая работа с реквизитами документов. Реквизиты — это основа для структурирования всей информации о документе, и их правильная настройка является ключом к эффективной автоматизации.

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

  1. Тип реквизита: Число, строка, дата, булево, ссылка на справочник, документ, перечисление и т.д. В сложных случаях можно настроить множественные дополнительные реквизиты для хранения набора значений в одном поле.
  2. Обязательность заполнения: Мы можем отметить реквизит как обязательный, что не позволит пользователю сохранить документ, пока это поле не будет заполнено. Это повышает качество вводимых данных.
  3. Проверка на уникальность: Для таких полей, как номер документа или ИНН контрагента, мы можем настроить проверку на уникальность, чтобы избежать дублирования информации.

Как же реквизиты помогают в автоматическом заполнении? Они являются источником данных. Когда мы создаем документ на основании другого, система может "понимать" и автоматически переносить значения из реквизитов документа-основания в одноименные реквизиты нового документа или в поля, которые мы настроили для автозаполнения в шаблоне.

Автоматическое заполнение реквизитов может происходить на основе:

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

Преимущества использования автоматического заполнения

Внедрение механизмов автоматического заполнения полей в 1С:Документооборот 3.0 приносит нашей компании множество преимуществ, существенно оптимизируя рабочие процессы:

  1. Экономия времени и снижение ошибок: Мы полностью исключаем ручной ввод повторяющихся данных, что значительно сокращает время на создание каждого документа и минимизирует вероятность опечаток и неточностей. Сотрудникам больше не нужно тратить усилия на перенос информации из одного документа в другой вручную.
  2. Повышение эффективности сотрудников: Освобождая сотрудников от рутинных операций по вводу данных, мы даем им возможность сосредоточиться на более важных и интеллектуальных задачах. Это приводит к увеличению общей производительности и улучшению качества выполняемой работы.
  3. Унификация и стандартизация документооборота: Автоматическое заполнение гарантирует, что все документы будут оформляться в соответствии с едиными корпоративными стандартами. Мы обеспечиваем соблюдение единого формата предоставления информации, что критически важно для контроля и аудита.
  4. Гибкость и масштабируемость: Функционал автозаполнения легко настраивается под специфические требования нашей компании. По мере роста бизнеса и изменения процессов, мы можем масштабировать и адаптировать существующие настройки, а также создавать новые, без необходимости глобальных изменений в архитектуре системы.

Таким образом, для автоматического заполнения полей при создании документа на основании другого в 1С:Документооборот 3.0 мы рекомендуем использовать комбинацию этих подходов. Для типовых данных и простой логики воспользуйтесь настройкой шаблонов документов с автозаполнением файлов через сопоставление. А для более сложной, динамичной логики, требующей обработки или вычислений, применяйте скрипты в пользовательском режиме. Этот комплексный подход полностью соответствует концепции Low-code/No-code и позволяет нам максимально эффективно использовать возможности программы, создавая по-настоящему умный и автоматизированный документооборот.

← На главную