Обновление конфигурации «1С:Управление производственным предприятием» (УПП) до релиза 1.3.152.2 (вышедшего в январе 2021 года) принесло разработчикам и системным администраторам немало сюрпризов. Сразу после обновления пользователи начали сталкиваться с падением системы при запуске, критическими ошибками при загрузке электронных листков нетрудоспособности (ЭЛН) из ФСС, а также с невозможностью записать базовые документы из-за сбоев в подписках ЕГАИС.
В этой статье мы подробно разберем причины возникновения этих проблем и рассмотрим пошаговые инструкции по их устранению как путем обновления системного окружения, так и с помощью точечной корректировки кода в конфигураторе.
---
При попытке запустить систему в режиме «Предприятие» после обновления конфигурация аварийно завершает работу, выдавая в окно сообщений следующий текст:
{ОбщийМодуль.ИнтеграцияИСМП.Модуль(911,35)}: Процедура или функция с указанным именем не определена (ПолучитьСклоненияСтроки)
Выясним причину: В данном релизе разработчики фирмы «1С» активно внедряли модули интеграции с государственной системой маркировки (ГИС МП). В одном из общих модулей был добавлен вызов встроенной функции платформы ПолучитьСклоненияСтроки для автоматического склонения наименований документов в винительный падеж. Однако данная функция появилась в технологической платформе «1С:Предприятие» только начиная с версии 8.3.13. Если ваша информационная база работает на платформе версии 8.3.12 или ниже, система просто «не знает» эту функцию, что и приводит к ошибке компиляции модуля.
Рассмотрим два варианта решения этой проблемы.
Официальные требования к релизу УПП 1.3.152.2 прямо указывают на необходимость использования платформы «1С:Предприятие 8» версии не ниже 8.3.13. Если у вас нет жестких ограничений, выполните обновление платформы на сервере и рабочих станциях пользователей до актуального стабильного релиза (например, ветки 8.3.16 или выше).
Часто производственные предприятия не могут оперативно обновить платформу из-за интеграции со сторонним специализированным софтом или старым оборудованием. В таком случае мы можем скорректировать код общего модуля, вернув логику к простому преобразованию строки, как это было реализовано в прошлых релизах.
Разберем этот процесс по шагам:
ИнтеграцияИСМП и перейдите к строке 911 (или воспользуйтесь глобальным поиском по тексту ПолучитьСклоненияСтроки).
ФормыИмениДокумента.Склоненная = ПолучитьСклоненияСтроки(НРег(Лев(ФормыИмениДокумента.Основная, 1)) + Сред(ФормыИмениДокумента.Основная, 2), , "ПД=Винительный")[0];
ФормыИмениДокумента.Склоненная = НРег(Лев(ФормыИмениДокумента.Основная, 1)) + Сред(ФормыИмениДокумента.Основная, 2);
Для тех, кто хочет сохранить штатный функционал склонения на новых платформах, но при этом обеспечить совместимость со старыми, мы рекомендуем внедрить проверку версии платформы:
СистемнаяИнформация = Новый СистемнаяИнформация;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.13.0") >= 0 Тогда
ФормыИмениДокумента.Склоненная = ПолучитьСклоненияСтроки(НРег(Лев(ФормыИмениДокумента.Основная, 1)) + Сред(ФормыИмениДокумента.Основная, 2), , "ПД=Винительный")[0];
Иначе
ФормыИмениДокумента.Склоненная = НРег(Лев(ФормыИмениДокумента.Основная, 1)) + Сред(ФормыИмениДокумента.Основная, 2);
КонецЕсли;
---
Данный релиз совпал с переходом ФСС на новые форматы обмена версии 2.0. Спешка при реализации привела к нескольким критическим ошибкам в общем модуле ОбменСведениямиОПособияхсФСС.
Проанализируем ключевые симптомы этих ошибок:
LN_RESULT, хотя в XML-пакете от сервера ФСС поле называется lnResult).ln_hash) у больничного листа, из-за чего в реестре документ помечается как бумажный, а не электронный.PATRONIMIC на PATRONYMIC).Рассмотрим способы исправления этих багов.
Если вы хотите оставить работу по новым протоколам версии 2.0, откройте общий модуль ОбменСведениямиОПособияхсФСС, перейдите к строке 5555 и замените обращение к свойству:
// Было:
Если ДанныеИзСервиса.LN_RESULT <> Неопределено Тогда
// Нужно написать:
Если ДанныеИзСервиса.lnResult <> Неопределено Тогда
Также потребуется скорректировать разбор XML-схем в частях, касающихся тега отчества (заменив букву "I" на "Y" в имени поля PATRONYMIC), чтобы избежать предупреждений системы.
Шлюзы ФСС на момент выпуска релиза поддерживали обратную совместимость. Чтобы полностью избавиться от всех недоработок формата 2.0 (включая проблему с незаполненным хешем и неверной идентификацией типа больничного), мы можем временно переключить модуль обмена на работу по спецификации 1.1. Это полностью решает проблему без ущерба для сдачи отчетности.
Проанализируем, как это сделать:
ОбменСведениямиОПособияхсФСС.ВерсияЭЛН().
Функция ВерсияЭЛН() Экспорт
// Возврат "2.0"; // закомментировано из-за ошибок в схеме 1С
Возврат "1.1";
КонецФункции
После этой простой манипуляции отправка запросов и разбор ответов будут происходить по старой стабильной схеме, и данные начнут загружаться корректно.
---
При попытке провести или просто записать стандартные документы реализации или поступления товаров система выдает ошибку следующего вида:
При подписке РассчитатьСтатусОформленияТТНИсходящаяЕГАИС на событие ПриЗаписи произошла ошибка. Метод обработчика события РассчитатьСтатусОформленияТТНИсходящаяЕГАИС не найден.
Выясним причину: Данная проблема типична для нетиповых (доработанных) конфигураций, которые обновлялись вручную методом сравнения и объединения. В релизе 1.3.152.2 разработчики «1С» провели рефакторинг кода интеграции с ЕГАИС: старые обработчики событий были перенесены в другие общие модули или переименованы, а устаревшие методы — удалены. Если при обновлении старые подписки на события не обновились автоматически, они остались ссылаться на несуществующие процедуры.
Решение проблемы:
Общие, а затем перейдите в Подписки на события.РассчитатьСтатусОформленияАктПостановкиНаБалансЕГАИСРассчитатьСтатусОформленияАктСписанияЕГАИСРассчитатьСтатусОформленияТТНВходящаяЕГАИСРассчитатьСтатусОформленияТТНИсходящаяЕГАИСРассчитатьСтатусОформленияЧекЕГАИСРассчитатьСтатусОформленияЧекЕГАИСВозвратОбработчик на актуальный метод из новых общих модулей ЕГАИС, поставляемых с обновлением.---
Мы подробно разобрали три критические уязвимости релиза 1.3.152.2 конфигурации «1С:Управление производственным предприятием». Своевременное исправление этих ошибок позволит вашей компании продолжить стабильную работу без экстренного перехода на новые версии платформы и исключит задержки при обработке больничных листов сотрудников в ФСС.