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

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

При внедрении и сопровождении системы 1С:Документооборот 3.0 (ДО) перед разработчиком неизбежно встает вопрос: как адаптировать справочник ДокументыПредприятия под специфические требования бизнеса? Этот справочник является ядром системы, и от того, какой путь доработки мы выберем — создание новых форм, программную модификацию существующих или использование дополнительных реквизитов — будет зависеть стабильность обновлений и производительность всей базы данных. В этой статье мы подробно проанализируем опыт ведущих специалистов и выработаем оптимальную стратегию кастомизации.

Архитектурный вызов: Одна форма или множество?

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

  1. Сложность обновления: При выходе нового релиза 1С обновляет основную форму справочника (добавляет новые механизмы, такие как работа с ЭДО, новые кнопки, логику обработки прав). Если у нас создано 10 отдельных форм, нам придется вручную переносить изменения в каждую из них.
  2. Дублирование кода: Логика записи, проверки заполнения и работы с файлами в ДО очень сложная. Создавая копию формы, мы дублируем тысячи строк кода, которые со временем начинают жить своей жизнью.

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

Способ 1: Использование дополнительных реквизитов (ПВХ)

Механизм дополнительных реквизитов и сведений в ДО развит очень сильно. Выясним преимущества этого метода:

Однако проанализируем и «узкие места». Дополнительные реквизиты хранятся в табличной части справочника. Это означает, что при выполнении сложных отчетов или запросов по тысячам документов производительность будет ниже, чем при обращении к обычным реквизитам. Если вам нужно использовать поле как индекс для поиска или для связи в сложных запросах, доп. реквизиты могут стать «бутылочным горлышком».

Способ 2: Добавление реквизитов через расширение конфигурации

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

  1. Создаем расширение (или используем существующее).
  2. Добавляем нужные реквизиты с обязательным префиксом (например, Преф_ДатаПодписанияКонтрагентом), чтобы избежать конфликтов имен при обновлениях.
  3. Выводим эти реквизиты на форму программно. Это делается в обработчике ПриСозданииНаСервере.

Посмотрим на пример программного добавления элемента на форму:


&НаСервере
Процедура Преф_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    // Определяем группу, в которую хотим добавить поле
    ГруппаШапка = ЭтаФорма.Элементы.ГруппаШапка;
    
    // Добавляем элемент программно
    НовыйЭлемент = ЭтаФорма.Элементы.Добавить("Преф_ДатаПодписания", Тип("ПолеФормы"), ГруппаШапка);
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ПутьКДанным = "Объект.Преф_ДатаПодписания";
    НовыйЭлемент.Заголовок = "Дата подписания (доп)";
КонецПроцедуры

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

Проблема «Широких таблиц» в SQL

Важно помнить о техническом ограничении СУБД (например, MS SQL Server). В справочнике ДокументыПредприятия уже сотни полей. Добавление еще 50-100 реквизитов может привести к тому, что размер строки таблицы превысит 8 КБ. Рассмотрим решение этой проблемы:

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

Бесшовная интеграция (БИ) и её нюансы

Одной из самых сложных тем при доработке ДО является его интеграция с ERP, КА или УТ. Рассмотрим ситуацию: вы добавили новые реквизиты в ДО и хотите, чтобы они автоматически передавались в ERP через механизм бесшовной интеграции.

Проанализируем типичные проблемы интеграции:

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

Эмуляция табличных частей

Иногда документ требует наличия специфической таблицы (например, «График поставок» или «Перечень оборудования»), которой нет в типовом справочнике. Как мы выяснили ранее, добавление реальных ТЧ в справочник может перегрузить объект. Разберем альтернативный метод:

Используйте Регистр сведений с признаком «Ведущее» для измерения ссылки на документ. На форме документа создайте динамический список, отображающий данные этого регистра. Для редактирования строк можно открывать отдельное окно формы записи регистра или использовать редактирование «в списке». Это профессиональный подход, который не раздувает объект ДокументыПредприятия и обеспечивает высокую скорость работы базы.

Выводы и рекомендации

Подводя итог, сформулируем основные правила доработки 1С:Документооборот 3.0:

  1. Никогда не создавайте «вторую» основную форму объекта. Модифицируйте типовую форму программно через расширение в обработчиках ПриСозданииНаСервере или ПриЧтенииНаСервере.
  2. Для простых задач (поля для печати, мелкая аналитика) используйте Дополнительные реквизиты.
  3. Для задач интеграции и высоконагруженных отчетов добавляйте реквизиты в Метаданные через расширение с уникальным префиксом.
  4. Если полей слишком много или нужны таблицы — выносите данные в Регистры сведений.
  5. При работе с бесшовной интеграцией уделяйте внимание настройкам веб-сервера и таймаутам, чтобы кастомные реквизиты не «тормозили» обмен.

Соблюдение этих принципов позволит вашей системе оставаться производительной, а обновления будут проходить быстро и безболезненно для бизнеса.

← На главную