Почему при создании контрагента в 1С:УНФ автоматически создается основной договор и как этим управлять?

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет
← На главную

Многие пользователи и администраторы системы 1С:Управление нашей фирмой (УНФ) сталкиваются с ситуацией, когда сразу после нажатия кнопки «Записать» в карточке нового контрагента в списке договоров магическим образом появляется запись «Основной договор». Ситуация осложняется, если в базе ведется учет по нескольким организациям: программа часто подставляет «не ту» организацию, что вынуждает пользователя тратить время на ручную правку. Разберемся, почему так происходит, и как мы можем на это повлиять.

Выясняем причину: архитектурные особенности 1С:УНФ

Для начала проанализируем, почему разработчики типового решения выбрали именно такой путь. В отличие от 1С:Управление торговлей (УТ 11), где ведение учета по договорам является опциональным и включается функциональной опцией, в 1С:УНФ договор является обязательным аналитическим разрезом. Рассмотрим подробнее, на что это влияет:

  1. Цепочка документов: В УНФ практически невозможно оформить Заказ покупателя, Расходную накладную или Приходный кассовый ордер без указания договора. Это ключевое звено, связывающее финансовые и товарные потоки.
  2. Единообразие с 1С:Бухгалтерией: УНФ часто используется в связке с 1С:Бухгалтерия 3.0. В бухгалтерской программе наличие договора также критично для корректного формирования проводок по счетам 60 и 62. Автоматическое создание договора в УНФ гарантирует, что при синхронизации данных объект не «потеряется» и не вызовет ошибок обмена.
  3. Минимизация кликов: По статистике разработчиков, в 99% случаев для малого бизнеса достаточно одного договора. Автоматическое создание экономит время на ручной ввод одних и тех же данных.

Разберем логику выбора организации

Пользователи часто жалуются: «Почему договор создается на основную организацию, если контрагент работает с другой?». Проанализируем ситуацию с точки зрения программного кода. Система не выбирает организацию случайным образом. Она следует строгому алгоритму приоритетов:

  1. Персональные настройки пользователя: Программа в первую очередь заглядывает в раздел Настройки — Мои настройки. Если там заполнено поле Основная организация, именно она будет подставлена в новый договор.
  2. Настройка «Основная организация» в справочнике: Если в персональных настройках пусто, система берет организацию, помеченную «звездочкой» (основную) в справочнике Организации.

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

Как отключить создание договора программно?

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

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

Разберем пример кода для расширения, которое блокирует автоматическое создание:


&Вместо("СоздатьОсновнойДоговорПриНеобходимости")
Процедура ИТ_СоздатьОсновнойДоговорПриНеобходимости(Контрагент, Организация = Неопределено)
    // Мы просто оставляем тело процедуры пустым.
    // Таким образом, стандартная логика создания договора не сработает.
    // Возврат; 
КонецПроцедуры

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

Массовая очистка «мусорных» договоров

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

Пошаговый алгоритм действий:

  1. Откройте Обслуживание — Корректировка данных — Групповое изменение реквизитов.
  2. Выберите объект Договоры контрагентов.
  3. Добавьте фильтр (отбор): Наименование содержит "Основной договор" и, например, Ссылка.Владелец.ДатаСоздания в периоде....
  4. В поле Организация выберите правильное значение.
  5. Нажмите Изменить реквизиты.

Важно: Перед выполнением групповых операций всегда делайте резервную копию базы данных! Для регулярного создания бэкапов и технического обслуживания ИТ-специалисты настраивают автоматическое архивирование и обновление баз 1С по расписанию.

Особенности новых версий (УНФ 3.0 и выше)

В современных релизах на платформе 8.3.20+ разработчики внедрили механизмы «быстрого ввода». Теперь система старается заполнить максимум данных по ИНН. Важно понимать, что сервис 1С:Контрагент при заполнении реквизитов по ИНН также инициирует запись объекта, что автоматически запускает процедуру создания договора. Даже если вы не нажимали «Записать», а просто выбрали контрагента из подсказок, договор может быть создан «в фоне».

Посмотрим на ситуацию с точки зрения настройки интерфейса. К сожалению, на текущий момент (версия 3.0.x) флажка «Отключить автоматическое создание договора» в пользовательском режиме не существует. Это считается базовой логикой упрощенного учета «от коробки».

Резюме

Мы выяснили, что автоматическое создание договора в УНФ — это не ошибка, а осознанное решение архитекторов для упрощения учета. Чтобы работа была комфортной:

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

← На главную