Почему в документе Списание безналичных денежных средств возникает ошибка Поле Поставщик не заполнено и как ее исправить

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

При работе в современных конфигурациях на платформе 1С:Предприятие 8.3, таких как 1С:ERP Управление предприятием, 1С:Комплексная автоматизация или 1С:Управление торговлей 11, разработчики и пользователи часто сталкиваются с ситуацией, когда система выдает ошибку о незаполненном поле, которого, на первый взгляд, нет в документе. Одной из таких классических проблем является ошибка: "Поле 'Поставщик' не заполнено" при проведении документа СписаниеБезналичныхДенежныхСредств. Рассмотрим подробно, почему это происходит и где искать корень проблемы.

Разбираем архитектуру: Партнеры против Контрагентов

Для начала проанализируем ключевое отличие архитектуры ERP от старых версий (например, 1С:Бухгалтерии или УПП). В ERP-системах понятия юридического и управленческого учета разделены:

  1. Справочник Партнеры: Отвечает за управленческий учет. Это сущность, которая представляет собой бренд, холдинг или просто управленческое понятие клиента или поставщика.
  2. Справочник Контрагенты: Отвечает за регламентированный учет. Это конкретные юридические лица с ИНН и КПП, входящие в состав Партнера.

В документе СписаниеБезналичныхДенежныхСредств (как и во многих других) заголовок поля на форме часто формируется динамически. Проанализируем механизм: если в документе выбрана хозяйственная операция Оплата поставщику, система программно меняет заголовок поля Партнер на Поставщик. Именно поэтому при проверке заполнения платформа сообщает о «Поставщике», хотя в метаданных реквизит называется Партнер.

Выясняем причину пустых списков выбора

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

  1. Отсутствие признака Поставщик: В карточке Партнера есть скрытые отборы. На форме документа стоит программный фильтр, который показывает только тех партнеров, у которых установлен флаг НашПоставщик. Если этот флаг равен Ложь, партнер не попадет в выборку.
  2. Использование расшифровки платежа: Ошибка часто возникает не в шапке документа, а в табличной части Расшифровка платежа. Проанализируем структуру: если в табличной части реквизит Партнер (который на форме виден как Поставщик) пуст, проведение будет заблокировано.
  3. Параметры выбора: В метаданных документа для поля Партнер установлены связи параметров выбора. Система ограничивает список в зависимости от выбранного Контрагента или Организации.

Методика исправления ошибки при переносе данных

Если вы столкнулись с тем, что после загрузки данных из 1С:Бухгалтерии или другой системы документы не проводятся, выполним следующие шаги по исправлению:

Шаг 1. Сравнение с эталоном

Рассмотрим метод «золотого стандарта». Создадим в целевой базе ERP одного поставщика вручную через интерфейс. Затем с помощью консоли запросов или обработки «Групповое изменение реквизитов» сравним значения полей у «ручного» поставщика и у перенесенного программно. Особое внимание уделим реквизитам:

Шаг 2. Проверка связей в КД 2.1

Если вы используете Конвертацию данных 2.1, выясним, как настроены правила. В ERP по умолчанию может быть включена опция «Независимое ведение партнеров и контрагентов». Если она включена, необходимо создавать две записи. Если выключена — система создает их в паре. При переносе важно убедиться, что у объекта Контрагент заполнен реквизит Партнер. Пример кода в ПКО (ПередЗагрузкой), если нужно программно дозаполнить признаки:


// В правилах конвертации для справочника Партнеры
Объект.Клиент = Ложь;
Объект.Поставщик = Истина;
Объект.ПрочиеОтношения = Ложь;

Шаг 3. Устранение технических «артефактов» формы

Иногда ошибка возникает из-за того, что при открытии формы документа отрабатывает сложная логика в общих модулях, которая скрывает или очищает поля. Посмотрим на код в модуле формы или в модуле менеджера. Проверка заполнения обычно вызывается из модуля объекта:


Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
    // Здесь система добавляет или удаляет реквизит Партнер из списка проверки
    // в зависимости от хозяйственной операции
КонецПроцедуры

Проанализируем ситуацию с отборами в форме списка

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

Подведем итоги

Чтобы решить проблему с «невидимым» полем Поставщик, мы должны выполнить следующие действия:

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

← На главную