К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как в 1С добавить поле «Договор»

Как добавить поле «Договор» в документы, справочники и печатные формы 1С: через конфигуратор и расширение. Пошаговые инструкции, проверка результата и типичные ошибки.

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

В типовых конфигурациях (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP) реквизит «Договор» в большинстве документов уже присутствует, но может быть скрыт настройками интерфейса или функциональными опциями. Поэтому прежде чем лезть в конфигуратор, стоит проверить, не отключён ли учёт по договорам в настройках программы.

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

Шаг 1. Проверьте, не скрыт ли договор настройками программы

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

Второй частый случай — поле скрыто настройкой конкретной формы. Откройте документ, нажмите «Ещё» → «Изменить форму» и найдите в дереве элементов реквизит «Договор» или «ДоговорКонтрагента». Отметьте его флажком — поле появится на форме без каких-либо доработок.

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

Маршрут решения

Как выбрать действие

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

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

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

Откройте конфигуратор, перейдите в меню «Конфигурация» → «Расширения конфигурации» и создайте новое расширение с понятным именем, например «ДобавлениеДоговора». Затем в основной конфигурации найдите нужный объект (документ, справочник) и через контекстное меню добавьте его в расширение.

В заимствованном объекте добавьте новый реквизит: имя «Договор», тип — ссылка на справочник договоров. В разных конфигурациях этот справочник называется по-разному: «ДоговорыКонтрагентов» (Бухгалтерия), «ДоговорыКонтрагентов» или «ДоговорыСКонтрагентами» (Управление торговлей, ERP). Уточните точное имя в дереве конфигурации вашей базы.

Порядок добавления реквизита через расширение
  1. 1
    Сделайте резервную копию информационной базы
  2. 2
    Откройте конфигуратор и создайте новое расширение конфигурации
  3. 3
    Добавьте в расширение нужный документ или справочник
  4. 4
    Создайте реквизит «Договор» с типом «СправочникСсылка.ДоговорыКонтрагентов»
  5. 5
    Добавьте форму объекта в расширение и перетащите реквизит на форму
  6. 6
    Обновите конфигурацию базы данных (F7) и проверьте результат в режиме предприятия

Шаг 3. Вывод реквизита на форму объекта

Сам по себе реквизит не появится на форме — его нужно разместить вручную. Добавьте форму документа в расширение (если ещё не добавлена), откройте её и в правой панели найдите новый реквизит в дереве реквизитов формы. Перетащите его в дерево элементов формы в нужное место, например рядом с полем «Контрагент».

Установите свойства элемента: заголовок «Договор», кнопку выбора и кнопку открытия. Если договор должен выбираться только из договоров текущего контрагента, настройте связь параметров выбора: в свойствах поля укажите связь по владельцу с реквизитом «Контрагент». Тогда при выборе договора откроется список, отфильтрованный по выбранному контрагенту.

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

Шаг 4. Альтернатива: добавление реквизита через конфигуратор напрямую

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

Учтите главное последствие: объект, изменённый в основной конфигурации, перестаёт обновляться автоматически. При каждом обновлении типового релиза изменения придётся сопоставлять вручную через «Поддержка» → «Обновить конфигурацию». Поэтому прямое изменение оправдано только для самописных или давно доработанных конфигураций.

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

Шаг 5. Вывод договора в печатную форму

Частая задача — не добавлять новый реквизит, а вывести существующий договор в печатную форму: счёт на оплату, акт, накладную. Для этого дорабатывается макет печатной формы и модуль менеджера печати объекта.

В макете добавьте область или параметр, например «Договор», и задайте текст вида «Договор № [НомерДоговора] от [ДатаДоговора]». В модуле печати получите данные договора из реквизита документа и заполните параметры макета. Если договор хранится как ссылка, номер и дату берите из реквизитов самого договора через точку: Документ.Договор.НомерДоговора.

В конфигурациях с подсистемой печати БСП внешнюю печатную форму можно подключить через «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки», не изменяя конфигурацию вообще. Это самый безопасный путь для доработки печати.

Способы добавления поля «Договор»

Настройка формы пользователем

Подходит, если реквизит уже есть в объекте. Не требует прав разработчика, но не добавляет новых данных

Расширение конфигурации

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

Изменение основной конфигурации

Допустимо для самописных решений. Для типовых приводит к снятию с поддержки и ручному сопоставлению при обновлениях

Внешняя печатная форма

Подходит, когда нужно только вывести договор на печать, не меняя структуру данных

Проверка результата и типичные ошибки

После доработки проверьте полный цикл: создание документа, выбор договора, запись, перепроведение и отображение значения в списке документов и отчётах. Если реквизит участвует в движениях документа, убедитесь, что он корректно попадает в регистры — для этого может потребоваться доработка процедуры проведения.

Типовые ошибки: реквизит добавлен, но не выведен на форму; неверно указан тип ссылки (оставлен «строка» вместо ссылки на справочник договоров); не настроена связь по контрагенту; изменения внесены в основную конфигурацию вместо расширения. Ещё одна частая проблема — после обновления конфигурации расширение отключается из-за несовместимости: проверяйте его работоспособность после каждого обновления.

Типичные ошибки
01
Тип реквизита задан как строка вместо ссылки на справочник — теряется связь с договорами и отчётность по ним
02
Реквизит добавлен, но не перенесён на форму — пользователи не видят поле
03
Нет связи параметров выбора с контрагентом — выбираются чужие договоры
04
Изменения внесены в типовую конфигурацию напрямую — слетают обновления
05
Не сделана резервная копия перед обновлением конфигурации базы данных
Итог

Что важно запомнить

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

Частые вопросы

Можно ли добавить поле «Договор» без конфигуратора?

Да, если реквизит уже существует в объекте, но скрыт: используйте «Ещё» → «Изменить форму» в режиме предприятия. Также в некоторых конфигурациях есть механизм дополнительных реквизитов («Администрирование» → «Общие настройки» → «Дополнительные реквизиты и сведения»), который позволяет добавить пользовательский реквизит без программирования.

Чем дополнительный реквизит отличается от реквизита, добавленного через расширение?

Дополнительный реквизит создаётся пользователем без конфигуратора и хранится в служебном регистре, а не в самой таблице объекта. Он подходит для аналитики и печати, но медленнее в отчётах и не всегда может участвовать в проведении. Реквизит через расширение — полноценное поле объекта.

Почему после обновления конфигурации поле «Договор» пропало?

Наиболее вероятная причина — расширение конфигурации отключилось как несовместимое с новой версией. Откройте список расширений в режиме предприятия или конфигураторе, проверьте статус и при необходимости адаптируйте расширение под обновлённую конфигурацию.

Как сделать, чтобы договор подставлялся автоматически?

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

Влияет ли добавление реквизита на обмены данными с другими базами?

Да, если реквизит должен передаваться в другую систему, его нужно добавить в правила обмена или план обмена. Без доработки правил новое поле будет существовать только в текущей базе и при синхронизации потеряется.