Как исправить ошибки проведения НДС и документов списания в УПП 1.3.162.1 после внедрения прослеживаемости?

Программист 1С v8.3 (Обычные формы) Налоговый учет Промышленность, строительство и АПК
← На главную

При обновлении конфигурации 1С:Управление производственным предприятием (УПП) до релиза 1.3.162.1 многие специалисты столкнулись с рядом критических ошибок в работе механизмов закрытия месяца, распределения НДС и проведения складских документов. Проанализируем ситуацию подробнее и разберем причины возникновения этих сбоев, а также рассмотрим варианты их оперативного устранения.

Глобальной причиной нестабильности данного релиза стали масштабные законодательные изменения — введение в России национальной системы прослеживаемости импортных товаров (Федеральный закон от 09.11.2020 № 371-ФЗ). В связи с этим фирма 1С добавила новые формы счетов-фактур, универсальных передаточных документов (УПД) и новые алгоритмы обработки реквизита РНПТ. К сожалению, код был обновлен неравномерно, что привело к несостыковкам вызовов процедур в общих модулях и документах.

Исправление ошибки «Недостаточно фактических параметров» при закрытии НДС

Рассмотрим первую и самую частую проблему. При попытке выполнить закрытие месяца бухгалтеры получают сообщение об ошибке следующего вида:

{Обработка.ПроведениеДокументовПоРегистрамНДС.МодульОбъекта(1091)}: Недостаточно фактических параметров
ДокументОбъект.ПодготовитьТаблицыДокумента(СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоУслугам, Неопределено);

Выясним причину. Если мы заглянем в модуль документа РеализацияТоваровУслуг, то увидим, что сигнатура процедуры ПодготовитьТаблицыДокумента изменилась. Разработчики конфигурации добавили в нее еще один обязательный параметр, отвечающий за новые требования к учету:


Процедура ПодготовитьТаблицыДокумента(СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоУслугам, ТаблицаПоТаре, ТаблицаПоПрослеживаемымТоварам) Экспорт

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

Разберем по шагам решение проблемы:

  1. Откройте конфигуратор и найдите обработку ПроведениеДокументовПоРегистрамНДС.
  2. Перейдите в модуль объекта на строку, вызывающую ошибку (в районе 1091 строки).
  3. В вызов функции ПодготовитьТаблицыДокумента добавьте пятым параметром Неопределено.

Исправленный код вызова должен выглядеть так:


ДокументОбъект.ПодготовитьТаблицыДокумента(СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоУслугам, Неопределено, Неопределено);

Исправление ошибки проведения документа «Списание товаров»

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

Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {Документ.СписаниеТоваров.МодульОбъекта(1339)}: Поле объекта не обнаружено (ПрослеживаемыеТовары)

Проблема кроется в процедуре ДвиженияПоРегистрамПрослеживаемыхТоваров. Так как учет отключен, внутренний запрос возвращает пустой результат, структура ПараметрыПроведения не заполняется ключом ПрослеживаемыеТовары, а алгоритм пытается передать несуществующее свойство в общий модуль.

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

Внесите следующие изменения в модуль объекта документа СписаниеТоваров:


Процедура ДвиженияПоРегистрамПрослеживаемыхТоваров(УсловияПрослеживаемости, СтруктураШапкиДокумента)
    
    // Вставляем проверку активности учета прослеживаемых товаров
    Если НЕ УсловияПрослеживаемости.ВедетсяУчетПрослеживаемыхТоваров Тогда
        Возврат;
    КонецЕсли;
    
    // Ниже идет типовой код 1С
    УчетнаяПолитикаРегл = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(Дата, Организация);
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    // ... остальной код процедуры
КонецПроцедуры

Особенности работы с номенклатурой в документах реализации

Проанализируем еще один спорный момент релиза, на который стоит обратить внимание. В документе РеализацияТоваровУслуг, в модуле формы, разработчики внесли изменения в обработчик изменения номенклатуры (ТоварыНоменклатураПриИзменении). Логика заполнения страны происхождения выглядит следующим образом:


СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.ПрослеживаемыйТовар = СтрокаТабличнойЧасти.Номенклатура.КодТНВЭД.ПрослеживаемыйТовар;

Если Не ЗначениеЗаполнено(СтрокаТабличнойЧасти.СтранаПроисхождения) И ЗначениеЗаполнено(СтрокаТабличнойЧасти.Номенклатура.СтранаПроисхождения) Тогда
    СтрокаТабличнойЧасти.СтранаПроисхождения = СтрокаТабличнойЧасти.Номенклатура.СтранаПроисхождения;
КонецЕсли;

Обратите внимание на этот код: если пользователь случайно выберет другую номенклатуру в уже заполненной строке, а реквизит страны происхождения ранее был указан вручную, система не обновит страну происхождения на новую из карточки товара (из-за условия Не ЗначениеЗаполнено). Если в вашей компании часто меняют номенклатуру прямо в заполненных строках, это может привести к отправке УПД с некорректными странами происхождения. Обязательно предупредите пользователей или скорректируйте логику обновления этого поля.

Рекомендации по устранению проблем

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

Вместо длительного ручного "латания" модулей, настоятельно рекомендуем обновить вашу базу до релиза 1.3.162.2 (или более новых версий), в котором большая часть проблем с объектами ТаблицаПоПрослеживаемымТоварам, новыми УПД и списанием товаров по методу ФИФО была исправлена централизованно.

← На главную