Как исправить ошибки проведения документов в УПП 1.3.173.1 и 1.3.173.2?

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

Выход «новогоднего» релиза 1С:Управление производственным предприятием (1.3.173.1) в начале 2022 года стал настоящим испытанием для многих технических специалистов. Внедрение масштабных изменений, связанных с новыми федеральными стандартами бухгалтерского учета (ФСБУ 25/2018 и ФСБУ 6/2020), привело к ряду критических ошибок, которые блокировали работу ключевых документов: Реализация товаров и услуг и Поступление товаров и услуг. В данной статье мы подробно разберем, как локализовать и устранить эти ошибки самостоятельно, если переход на последующие исправительные релизы по каким-то причинам невозможен или не дает полного результата.

Исправление ошибки «Поле объекта не обнаружено (ЭтоПоступлениеАренды)»

Рассмотрим самую массовую проблему. При попытке проведения документов реализации или поступления услуг по переработке система выдает программное исключение в общем модуле БухгалтерскийУчетРасчетовСКонтрагентами. Проанализируем причину: в программный код была добавлена логика проверки на аренду, однако структура параметров документа, передаваемая в обработчик, не всегда содержит соответствующее свойство. Это приводит к прерыванию транзакции.

Для исправления ситуации нам необходимо внести изменения в общий модуль БухгалтерскийУчетРасчетовСКонтрагентами. Найдем метод ПодготовкаСтруктурыПараметровДляЗачетаАванса и обратим внимание на блок кода около строки 808–810. Разберем по шагам безопасный способ правки с использованием метода Свойство(), который предотвратит ошибку, если реквизит отсутствует в структуре шапки документа.

Рекомендуемый код исправления:


// В методе ПодготовкаСтруктурыПараметровДляЗачетаАванса
// Перед блоком проверки условия ЭтоПоступлениеАренды
Если СтруктураШапкиДокумента.Свойство("ЭтоПоступлениеАренды") Тогда
    Если СтруктураШапкиДокумента.ЭтоПоступлениеАренды Тогда
        Возврат Ложь;
    КонецЕсли;
КонецЕсли;

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

Решение проблемы с колонкой «СпособОтраженияРасходов» в РАУЗ

Если в вашей информационной базе используется Расширенная аналитика учета затрат (РАУЗ), вы можете столкнуться с ошибкой при проведении документа Поступление товаров и услуг. Ошибка возникает в методе СкопироватьКолонки общего модуля УправлениеЗапасамиРасширеннаяАналитика. Система жалуется на «Неверное имя колонки», указывая на реквизит СпособОтраженияРасходов.

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

Проанализируем пример кода для функции ПолучитьСтруктуруДанныхВСоответствииСШаблоном:


Если Найти(КолонкиТабличнойЧасти, НРег("СпособОтраженияРасходов")) = 0 Тогда
    Результат = ТабличнаяЧасть.СкопироватьКолонки(КолонкиТабличнойЧасти);
Иначе
    // Если колонка найдена, но вызывает ошибку в шаблоне,
    // временно исключаем её при копировании и добавляем вручную
    СписокКолонокБезОшибки = СтрЗаменить(КолонкиТабличнойЧасти, "," + НРег("СпособОтраженияРасходов"), "");
    Результат = ТабличнаяЧасть.СкопироватьКолонки(СписокКолонокБезОшибки);
    Результат.Колонки.Добавить("СпособОтраженияРасходов");
КонецЕсли;

Этот фрагмент кода позволяет документу успешно провестись по регистрам учета затрат, не вызывая конфликта имен в методах платформы 1С.

Корректировка отображения интерфейса в формах обмена с ФСС

Помимо вычислительных ошибок, релизы 173.1 и 173.2 привнесли визуальные дефекты. В частности, в журнале документов обмена с ФСС кнопки управления могут «съезжать» на табличную часть, делая работу пользователя неудобной или невозможной. Это часто связано с некорректной работой панелей свертки в режиме совместимости с платформой 8.3.

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

Разберем вариант исправления:


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

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

Ситуация с релизом 1.3.173.1 еще раз подтверждает важность предварительного тестирования обновлений на копиях баз данных. Крайне не рекомендуется обновлять рабочую базу УПП сразу после выхода релиза, особенно если это касается годовой отчетности или внедрения новых ФСБУ.

При возникновении описанных ошибок мы рекомендуем следующий алгоритм действий:

  1. Проверить наличие официальных патчей (исправлений) на портале 1С:ИТС. Фирма «1С» оперативно выпустила исправление 00-00425196 для части проблем.
  2. Если патч не помогает или недоступен, применить ручные правки кода в конфигураторе, используя примеры, приведенные выше.
  3. Обязательно выполнить очистку серверного кэша после внесения изменений в общие модули, так как платформа может хранить старые скомпилированные версии модулей.
  4. Проконтролировать расчет авансовых платежей по транспортному налогу и налогу на имущество, так как в этих блоках также зафиксированы сообщения о некорректных расчетах.

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

← На главную