После обновления конфигурации «Зарплата и Управление Персоналом 2.5» на релизы 157.1 и выше многие пользователи столкнулись с невозможностью обмена данными с ФСС. Ошибка чаще всего проявляется при попытке вызвать WSПрокси или при получении данных о схеме обмена. Давайте вместе разберем, как проанализировать эту ситуацию и какие технические правки помогут временно восстановить работоспособность системы.
Основная причина заключается в том, что фирма «1С» внедрила в конфигурацию поддержку версии 2.0 сервиса ФСС, которая конфликтует с устаревшей архитектурой ЗУП 2.5. В ряде случаев программа автоматически переключается на новую версию, для которой еще не реализованы все необходимые механизмы (например, отправка реестров или валидация определенных полей). Для исправления ситуации необходимо проверить настройки версии обмена в модулях конфигурации.
Первым делом рассмотрим внесение изменений в общий модуль ОбменСведениямиОПособияхСФСС. Если ваша база пытается использовать версию 2.0, мы можем принудительно вернуть её к версии 1.1, которая на момент возникновения проблемы была более стабильной для данной конфигурации.
ОбменСведениямиОПособияхСФСС.ВерсияЭЛН. В обновленных релизах она возвращает «2.0».
// Пример модификации функции в модуле
Функция ВерсияЭЛН() Экспорт
Возврат "1.1";
КонецФункции
После этого изменения необходимо проверить функцию ЗаполнитьWSОписаниеОперации. Убедитесь, что параметры формирования запроса соответствуют формату 1.1, так как в версии 2.0 структура полей отличается (отсутствуют нижние подчеркивания, другие типы данных).
В некоторых случаях ошибка возникает из-за неверной обработки строки соединения, содержащей порт. Если обмен не проходит из-за недоступности схемы, разберем, как принудительно очистить адрес:
В процедуре WSПрокси_FileOperationsLnService того же модуля ОбменСведениямиОПособияхСФСС после строки, определяющей МестоположениеСхемы, добавьте код для удаления «:80» из адреса, если система пытается добавить его ошибочно:
// Добавление фильтрации адреса
МестоположениеСхемы = Лев(СтрокаURI, ДлинаСоединения);
Если Найти(МестоположениеСхемы, ":80") > 0 Тогда
МестоположениеСхемы = СтрЗаменить(МестоположениеСхемы, ":80", "");
КонецЕсли;
Если правка версии не помогла, обратим внимание на модуль СерверПриемаОтчетностиФССЭЛН. В функции СерверПриемаОтчетностиФССЭЛН реализована логика выбора определения в зависимости от версии. Убедитесь, что при передаче параметра «1.1» система корректно выбирает нужный WSОпределения.
Разберем пример логики, которая должна присутствовать в обработке:
ИначеЕсли ПараметрыФормата.Версия = "1.1" Тогда
Если НЕ ИспользоватьТестовыйСервер Тогда
Результат.Вставить("Определение", "Адрес_Продакшн_1.1");
Иначе
Результат.Вставить("Определение", "Адрес_Тест_1.1");
КонецЕсли;
Иначе // Версия 2.0
// ... логика для 2.0
КонецЕсли;
Внимание: Приведенные выше решения являются «костылями», которые помогают в экстренных ситуациях. Важно помнить следующее:
CryptS или «Удостоверяющим центром», проверьте срок действия сертификата ЭП и наличие актуального списка доверенных центров в настройках криптографии 1С.Используйте эти методы, чтобы проанализировать состояние вашего обмена, но всегда держите в приоритете обновление системы до актуальных версий для соответствия требованиям законодательства.