Разработка и Конфигурация · 9 мин
Как в 1С добавить поле «Договор»
Как добавить поле «Договор» в документы, справочники и печатные формы 1С: через конфигуратор и расширение. Пошаговые инструкции, проверка результата и типичные ошибки.
Поле «Договор» — один из самых востребованных реквизитов в учётных системах 1С: оно связывает документы с конкретным договором контрагента, позволяет вести взаиморасчёты в разрезе сделок и выводить реквизиты договора в печатные формы. Способ добавления зависит от того, что именно требуется: вывести уже существующий реквизит на форму, добавить новый реквизит в типовой объект или доработать печатную форму.
В типовых конфигурациях (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP) реквизит «Договор» в большинстве документов уже присутствует, но может быть скрыт настройками интерфейса или функциональными опциями. Поэтому прежде чем лезть в конфигуратор, стоит проверить, не отключён ли учёт по договорам в настройках программы.
Если реквизита действительно нет, есть два пути: изменить конфигурацию через конфигуратор (требует снятия объекта с поддержки) или добавить реквизит через расширение конфигурации — безопасный способ, который не ломает обновления. Ниже разобраны оба варианта, а также добавление договора в печатные формы и типичные ошибки.
Шаг 1. Проверьте, не скрыт ли договор настройками программы
В типовых конфигурациях видимость поля «Договор» часто управляется функциональными опциями. В 1С:Бухгалтерии откройте раздел «Главное» → «Функциональность» и проверьте настройки учёта по договорам. Если ведение взаиморасчётов по договорам отключено, поле будет скрыто во всех документах.
Второй частый случай — поле скрыто настройкой конкретной формы. Откройте документ, нажмите «Ещё» → «Изменить форму» и найдите в дереве элементов реквизит «Договор» или «ДоговорКонтрагента». Отметьте его флажком — поле появится на форме без каких-либо доработок.
Также проверьте карточку соглашения или условий работы с контрагентом: в некоторых конфигурациях (например, в 1С:Управление торговлей) договор подставляется из соглашения с клиентом, и отдельное поле на форме не отображается, пока не выбрано соглашение.
Как выбрать действие
Шаг 2. Добавление реквизита через расширение конфигурации
Расширение — рекомендуемый способ для типовых конфигураций на поддержке. Изменения хранятся отдельно от основной конфигурации, поэтому обновления продолжают устанавливаться штатно. Работа выполняется в конфигураторе под пользователем с правами администратора.
Откройте конфигуратор, перейдите в меню «Конфигурация» → «Расширения конфигурации» и создайте новое расширение с понятным именем, например «ДобавлениеДоговора». Затем в основной конфигурации найдите нужный объект (документ, справочник) и через контекстное меню добавьте его в расширение.
В заимствованном объекте добавьте новый реквизит: имя «Договор», тип — ссылка на справочник договоров. В разных конфигурациях этот справочник называется по-разному: «ДоговорыКонтрагентов» (Бухгалтерия), «ДоговорыКонтрагентов» или «ДоговорыСКонтрагентами» (Управление торговлей, ERP). Уточните точное имя в дереве конфигурации вашей базы.
- 1Сделайте резервную копию информационной базы
- 2Откройте конфигуратор и создайте новое расширение конфигурации
- 3Добавьте в расширение нужный документ или справочник
- 4Создайте реквизит «Договор» с типом «СправочникСсылка.ДоговорыКонтрагентов»
- 5Добавьте форму объекта в расширение и перетащите реквизит на форму
- 6Обновите конфигурацию базы данных (F7) и проверьте результат в режиме предприятия
Шаг 3. Вывод реквизита на форму объекта
Сам по себе реквизит не появится на форме — его нужно разместить вручную. Добавьте форму документа в расширение (если ещё не добавлена), откройте её и в правой панели найдите новый реквизит в дереве реквизитов формы. Перетащите его в дерево элементов формы в нужное место, например рядом с полем «Контрагент».
Установите свойства элемента: заголовок «Договор», кнопку выбора и кнопку открытия. Если договор должен выбираться только из договоров текущего контрагента, настройте связь параметров выбора: в свойствах поля укажите связь по владельцу с реквизитом «Контрагент». Тогда при выборе договора откроется список, отфильтрованный по выбранному контрагенту.
После сохранения формы обновите конфигурацию базы данных (клавиша F7) и запустите режим предприятия. Откройте документ и убедитесь, что поле отображается, выбор работает и значение сохраняется после записи документа.
Шаг 4. Альтернатива: добавление реквизита через конфигуратор напрямую
Если конфигурация не типовая или уже снята с поддержки, реквизит можно добавить напрямую в основную конфигурацию. Порядок действий аналогичен: откройте объект в конфигураторе, добавьте реквизит с типом ссылки на справочник договоров, затем разместите его на форме.
Учтите главное последствие: объект, изменённый в основной конфигурации, перестаёт обновляться автоматически. При каждом обновлении типового релиза изменения придётся сопоставлять вручную через «Поддержка» → «Обновить конфигурацию». Поэтому прямое изменение оправдано только для самописных или давно доработанных конфигураций.
Для управляемых форм в типовых решениях дополнительно проверьте, не переопределяется ли состав полей программно в модуле формы — в некоторых объектах видимость элементов управляется кодом, и добавленный реквизит может не отобразиться без корректировки модуля.
Шаг 5. Вывод договора в печатную форму
Частая задача — не добавлять новый реквизит, а вывести существующий договор в печатную форму: счёт на оплату, акт, накладную. Для этого дорабатывается макет печатной формы и модуль менеджера печати объекта.
В макете добавьте область или параметр, например «Договор», и задайте текст вида «Договор № [НомерДоговора] от [ДатаДоговора]». В модуле печати получите данные договора из реквизита документа и заполните параметры макета. Если договор хранится как ссылка, номер и дату берите из реквизитов самого договора через точку: Документ.Договор.НомерДоговора.
В конфигурациях с подсистемой печати БСП внешнюю печатную форму можно подключить через «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки», не изменяя конфигурацию вообще. Это самый безопасный путь для доработки печати.
Способы добавления поля «Договор»
Подходит, если реквизит уже есть в объекте. Не требует прав разработчика, но не добавляет новых данных
Оптимально для типовых конфигураций на поддержке: реквизит добавляется без нарушения обновлений. Требует навыков работы в конфигураторе
Допустимо для самописных решений. Для типовых приводит к снятию с поддержки и ручному сопоставлению при обновлениях
Подходит, когда нужно только вывести договор на печать, не меняя структуру данных
Проверка результата и типичные ошибки
После доработки проверьте полный цикл: создание документа, выбор договора, запись, перепроведение и отображение значения в списке документов и отчётах. Если реквизит участвует в движениях документа, убедитесь, что он корректно попадает в регистры — для этого может потребоваться доработка процедуры проведения.
Типовые ошибки: реквизит добавлен, но не выведен на форму; неверно указан тип ссылки (оставлен «строка» вместо ссылки на справочник договоров); не настроена связь по контрагенту; изменения внесены в основную конфигурацию вместо расширения. Ещё одна частая проблема — после обновления конфигурации расширение отключается из-за несовместимости: проверяйте его работоспособность после каждого обновления.
Что важно запомнить
Сначала проверьте функциональные опции и настройку формы — часто поле уже есть. Новый реквизит добавляйте через расширение конфигурации с типом ссылки на справочник договоров, выводите на форму и настраивайте связь с контрагентом. Перед любыми изменениями делайте резервную копию.
Частые вопросы
Можно ли добавить поле «Договор» без конфигуратора?
Да, если реквизит уже существует в объекте, но скрыт: используйте «Ещё» → «Изменить форму» в режиме предприятия. Также в некоторых конфигурациях есть механизм дополнительных реквизитов («Администрирование» → «Общие настройки» → «Дополнительные реквизиты и сведения»), который позволяет добавить пользовательский реквизит без программирования.
Чем дополнительный реквизит отличается от реквизита, добавленного через расширение?
Дополнительный реквизит создаётся пользователем без конфигуратора и хранится в служебном регистре, а не в самой таблице объекта. Он подходит для аналитики и печати, но медленнее в отчётах и не всегда может участвовать в проведении. Реквизит через расширение — полноценное поле объекта.
Почему после обновления конфигурации поле «Договор» пропало?
Наиболее вероятная причина — расширение конфигурации отключилось как несовместимое с новой версией. Откройте список расширений в режиме предприятия или конфигураторе, проверьте статус и при необходимости адаптируйте расширение под обновлённую конфигурацию.
Как сделать, чтобы договор подставлялся автоматически?
Настройте основной договор в карточке контрагента — многие типовые конфигурации подставляют его в документы автоматически. Если механизма нет, добавьте в расширении обработчик события «ПриИзменении» поля «Контрагент», который будет заполнять договор по умолчанию.
Влияет ли добавление реквизита на обмены данными с другими базами?
Да, если реквизит должен передаваться в другую систему, его нужно добавить в правила обмена или план обмена. Без доработки правил новое поле будет существовать только в текущей базе и при синхронизации потеряется.