Почему в приходной накладной 1С:УНФ после обновления вместо поставщика выбирается покупатель

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

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

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

Выясняем причину: технический анализ ошибки

Проанализируем ситуацию с точки зрения программного кода. В релизе 3.0.10.143 разработчики внесли изменения в логику работы формы документа ПриходнаяНакладная. Проблема кроется в функции ВидДоговораПриСоздании, которая вызывается при инициализации формы. Рассмотрим фрагмент кода, который появился в новом релизе:


&НаСервереБезКонтекста
Функция ВидДоговораПриСоздании(ВидОперации)
    Если ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ВозвратОтПокупателя
        ИЛИ ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ВыкупленныеКомиссионеромТовары
        ИЛИ ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ПриемВПереработку 
        ИЛИ ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ПриемНаОтветХранение Тогда
        Возврат Перечисления.ВидыДоговоров.СПокупателем;
    ИначеЕсли ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ПоступлениеОтПоставщика 
        ИЛИ ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ВозвратОтПереработчика 
        ИЛИ ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ВозвратСОтветХранения Тогда
        Возврат Перечисления.ВидыДоговоров.СПоставщиком;
    ИначеЕсли ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ВозвратОтКомиссионера Тогда
        Возврат Перечисления.ВидыДоговоров.СКомиссионером;
    ИначеЕсли ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ПриемНаКомиссию Тогда
        Возврат Перечисления.ВидыДоговоров.СКомитентом;
    Иначе
        Возврат Перечисления.ВидыДоговоров.СПоставщиком;
    КонецЕсли;
КонецФункции

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

Решение 1: Установка официальных патчей (рекомендуется)

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

Выполним следующие шаги для установки исправления:

  1. Перейдем в раздел Администрирование, далее выберем пункт Обслуживание.
  2. Раскроем подраздел Обновление программы и перейдем по ссылке Установленные исправления (патчи).
  3. Если в списке нет исправлений, начинающихся на EF_00..., связанных с приходной накладной, нажмем кнопку Поиск и установка исправлений.
  4. Система автоматически подключится к порталу техподдержки (требуется настроенная интернет-поддержка) и предложит список актуальных патчей. Выберем все доступные для текущего релиза и нажмем «Далее».
  5. После установки потребуется перезагрузка сеанса 1С.

Важно: Патчи исправляют не только визуальное отображение полей «Поставщик/Покупатель», но и восстанавливают корректную работу фильтров в списках договоров.

Решение 2: Использование патча-расширения

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

Рассмотрим, как это реализовать:

  1. Зайдем в конфигуратор, выберем меню Конфигурация — Расширения конфигурации.
  2. Создадим новое расширение (например, с именем ИсправлениеПриходнойНакладной).
  3. Найдем в основной конфигурации документ ПриходнаяНакладная и его форму документа.
  4. Добавим форму в расширение и создадим в ней обработчик ПриСозданииНаСервере с типом вызова &После.

В коде расширения мы можем принудительно проверить, если вид операции не определен, установить его в значение «Поступление от поставщика»:


&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    Если Объект.Ссылка.Пустая() И НЕ Параметры.Свойство("ВидОперации") Тогда
        Объект.ВидОперации = Перечисления.ВидыОперацийПриходнаяНакладная.ПоступлениеОтПоставщика;
        // Вызываем логику обновления интерфейса, если это необходимо
    КонецЕсли;
КонецПроцедуры

Решение 3: Обновление конфигурации

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

Временный обходной путь (Workaround)

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

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

Способ 2: Сброс настроек формы. Иногда система «запоминает» неверный выбор. В форме списка документов нажмите кнопку Еще — Установить стандартные настройки. Это может помочь сбросить ошибочные параметры инициализации формы.

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

← На главную