Почему не получается создать приходный кассовый ордер в 1С:УТ 11.4 и как это исправить

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

При работе в конфигурации 1С:Управление торговлей 11.4 (особенно в релизах ветки 11.4.13) пользователи часто сталкиваются с критической ошибкой при попытке создать или провести документ Приходный кассовый ордер (ПКО). Проблема обычно проявляется в виде аварийного завершения операции с указанием на ошибку в общем модуле ОбменСКонтрагентамиСлужебный. В этой статье мы подробно разберем причины возникновения этой ситуации, проанализируем технические нюансы релизов и рассмотрим несколько способов решения проблемы.

Анализ причины ошибки: конфликт метаданных и ЭДО

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

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

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

Решение 1: Корректировка кода в расширениях

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

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


// Пример проблемного участка кода в расширении
//++ Ошибка в релизе 11.4.13
//ИначеЕсли ТипИсточника = Тип("ДокументСсылка.ВыкупТоваровХранителем") 
//    ИЛИ ТипИсточника = Тип("ДокументОбъект.ВыкупТоваровХранителем") Тогда 
//    ВидЭД = Перечисления.ВидыЭД.УПД;
//    НаправлениеЭД = Перечисления.НаправленияЭД.Исходящий;
//    Если ЭтоСсылка Тогда
//        ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник, "Организация, Контрагент, Договор");
//        Организация = ЗначенияРеквизитов.Организация;
//        Контрагент = ЗначенияРеквизитов.Контрагент;
//        Договор = ЗначенияРеквизитов.Договор;
//    Иначе
//        Организация = Источник.Организация;
//        Контрагент = Источник.Контрагент;
//        Договор = Источник.Договор;
//    КонецЕсли;
//-- Конец проблемного участка

Посмотрим на логику исправления: если ТипИсточника в данный момент равен ПриходныйОрдер, а код пытается найти у него реквизиты, характерные для товарных документов (например, Договор или Склад в контексте, не предусмотренном для ПКО), или обращается к несуществующему типу ВыкупТоваровХранителем, происходит прерывание. После комментирования этого блока (если данная логика вам не критична) создание ПКО восстанавливается.

Решение 2: Установка исправляющих патчей (EF)

Релиз 11.4.13.47 официально признан сообществом одним из самых нестабильных. Для него и последующих версий (например, 11.4.13.51) компания «1С» выпустила десятки патчей. Если вы не хотите править код вручную, необходимо воспользоваться механизмом автоматической установки исправлений.

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

  1. Перейдем в раздел Администрирование — Обслуживание.
  2. Найдем пункт Обновление программы и выберем Установка исправлений (патчей).
  3. Если настроена интернет-поддержка, система сама предложит список доступных патчей. Особое внимание стоит обратить на патчи с префиксами EF_00..., которые касаются работы ОбменСКонтрагентами и подсистемы БЭД (Библиотека электронного документооборота).
  4. Установим все рекомендованные исправления и перезапустим сеанс.

Важно помнить, что в релизе 11.4.13.47 за неделю жизни было выявлено столько ошибок, что даже официальная поддержка рекомендовала либо немедленно обновляться до 11.4.13.51 с патчами, либо откатываться на стабильную ветку 11.4.12.

Решение 3: Проверка технологической платформы и кэша

Иногда ошибка в модуле ОбменСКонтрагентамиСлужебный может сохраняться из-за некорректного кэша метаданных на стороне клиента или несовместимости версии платформы с новыми библиотеками 11.4.13.х.

Рассмотрим порядок действий для исключения этих факторов:

  1. Очистка кэша: Удалим базу из списка и добавим её заново. Это принудительно очистит локальный кэш конфигурации, в котором могут «застрять» старые описания типов документов.
  2. Обновление платформы: Для стабильной работы конфигураций, использующих современные версии БЭД и БПО, рекомендуется использовать платформу не ниже 8.3.17.1851 или актуальные версии 8.3.18+.
  3. Анализ расширений: Если проблема сохраняется, попробуем временно отключить все расширения конфигурации. Если ПКО начнет создаваться — значит, одно из расширений содержит подписку на событие ПередЗаписью или ПриУстановкеНовогоНомера, которая конфликтует с логикой ЭДО.

Почему отключение ЭДО в настройках не помогает?

Многие пользователи удивляются: «Я отключил ЭДО совсем, почему ошибка в модуле обмена все равно вылетает?». Разберем этот технический парадокс. В архитектуре 1С:УТ 11.4 многие общие модули вызываются через механизм подписок на события. Эти подписки жестко прописаны в метаданных. Когда вы нажимаете кнопку «Записать» в ПКО, срабатывает подписка, которая передает управление в общий модуль обмена. Код этого модуля начинает анализировать объект, чтобы понять, что с ним делать. И только внутри этого анализа стоит проверка: «А включена ли опция ЭДО?». Если ошибка происходит до этой проверки (например, на этапе объявления переменных или сопоставления типов), то состояние настройки ЭДО уже не имеет значения — программа «падает» раньше.

Резюме: Если вы столкнулись с невозможностью создать ПКО в УТ 11.4.13, наиболее эффективным решением будет обновление до последнего доступного релиза в ветке (не ниже 11.4.13.281) с обязательной установкой всех исправлений (патчей) через интернет-поддержку. Если же вы вынуждены работать на проблемном релизе, проверьте свои расширения на наличие обращений к несуществующим типам документов, таким как ВыкупТоваровХранителем.

← На главную