При переходе на систему Прямых выплат и электронных листков нетрудоспособности (ЭЛН) пользователи устаревших конфигураций, таких как 1С:Зарплата и Управление Персоналом КОРП 2.5, часто сталкиваются с техническими сложностями. Одной из самых неприятных проблем является ошибка: «Не удалось создать объект для работы с криптографией». При этом в более современных версиях, например ЗУП 3.1, всё может работать корректно на той же самой машине.
В рамках данной статьи мы подробно рассмотрим, почему возникает эта ошибка, как разрядность платформы влияет на работу с сертификатами и какие шаги необходимо предпринять системному администратору для настройки обмена с ФСС (СФР) в терминальном режиме.
Первым делом проанализируем ситуацию. Почему в 1С:ЗУП 3.1 настройка проходит успешно, а в 2.5 — нет? Основная причина кроется в архитектуре конфигураций:
CAPICOM или интерфейсы КриптоПро CSP. Эти объекты крайне чувствительны к разрядности приложения, которое их вызывает.Проанализируем важнейший фактор — разрядность клиента 1С. Если вы используете 64-битный клиент 1С (x86_64), он не сможет инициализировать 32-битные COM-объекты криптографии, на которые рассчитывает старый код ЗУП 2.5. Выясним, как это проверить и исправить:
Как показывает практика, для стабильной работы криптографии в конфигурациях на «Обычных формах» (таких как ЗУП 2.5 или УПП 1.3) необходимо использовать 32-битный клиент 1С:Предприятия. Даже если серверная часть 1С и операционная система являются 64-битными, клиентское приложение, в котором работает бухгалтер, должно быть 32-битным. Это позволит программе корректно вызвать библиотеки КриптоПро и CAPICOM.
Старые версии конфигураций часто используют библиотеку CAPICOM.dll от Microsoft для работы с хранилищем сертификатов. В современных ОС (Windows 10, Windows Server 2016 и выше) эта библиотека отсутствует по умолчанию или не зарегистрирована. Рассмотрим процесс её ручной настройки:
capicom.dll (его можно взять из установочных пакетов КриптоПро или скачать с сайта Microsoft).C:\Windows\SysWOW64C:\Windows\System32
regsvr32 "C:\Windows\SysWOW64\capicom.dll"
После успешной регистрации библиотеки попробуйте снова инициализировать настройку обмена в 1С. Это часто решает проблему «пустой» ошибки создания объекта.
Если ваша работа организована через терминальный сервер, ситуация усложняется. Проанализируем ключевые моменты настройки КриптоПро в режиме RDP:
1. Лицензирование: Для работы КриптоПро CSP на терминальном сервере требуется специальная серверная лицензия. Обычная клиентская лицензия в терминальной сессии работать не будет, что приведет к ошибкам при попытке обращения к функциям криптопровайдера из 1С.
2. Установка сертификатов: Сертификат организации и личный сертификат ответственного лица должны быть установлены в хранилище «Личное» (Personal) под учетной записью того пользователя, который запускает 1С. Если вы установили сертификат под администратором, обычный пользователь в своей сессии его не увидит, и объект криптографии не сможет инициализироваться для работы с конкретным ключом.
3. Место хранения ключей: При работе в терминале рекомендуется использовать реестр сервера (как считыватель) или облачные токены. Если физический токен вставлен в локальный компьютер пользователя, необходимо пробросить USB-устройство в сессию RDP, что не всегда работает стабильно для старых версий 1С.
Если ошибка сохраняется, программисту стоит запустить отладку, чтобы понять, на какой именно строке кода происходит сбой. Посмотрим на пример кода, который обычно вызывает ошибку в ЗУП 2.5:
Попытка
// Попытка создания объекта для работы с сертификатами
КриптоОбъект = Новый COMОбъект("CAPICOM.Store");
КриптоОбъект.Open(2, "My", 0); // Открытие личного хранилища
Исключение
Сообщить("Ошибка при инициализации криптографии: " + ОписаниеОшибки());
КонецПопытки;
Если отладчик останавливается на строке Новый COMОбъект("CAPICOM.Store") с текстом «Класс не зарегистрирован», это прямое указание на отсутствие capicom.dll или несоответствие разрядности (64-битная 1С пытается найти 64-битную версию CAPICOM, которой не существует).
В некоторых случаях проблема может быть связана с тем, что конфигурация ЗУП 2.5 работает в режиме совместимости с очень старыми версиями платформы (например, 8.2.13). В таких режимах механизмы взаимодействия с COM-объектами могут вести себя нестабильно на новых операционных системах. Рассмотрим вариант поднятия режима совместимости до «8.3.8» или выше (после обязательного резервного копирования!), однако это крайняя мера, так как она может потребовать внесения правок в программный код конфигурации.
Если настроить прямую связь между 1С:ЗУП 2.5 и ФСС не удается из-за ограничений инфраструктуры или проблем с криптографией, остается надежный «ручной» способ:
В ЗУП 2.5 Прямые выплаты реализованы через документ «Реестр сведений в ФСС». Вы можете подготовить все данные в 1С, нажать кнопку «Выгрузить» и сохранить XML-файл на диск. Далее этот файл импортируется в любую систему защищенного документооборота (СБИС, Контур.Экстерн, 1С-Отчетность в другой базе), где криптография уже настроена и работает. Это позволит соблюсти требования законодательства, даже если техническая связка в старой программе дала сбой.
Подведем итог: Основное решение для ЗУП 2.5 — это использование 32-битного клиента 1С, установка серверной лицензии КриптоПро и регистрация capicom.dll. Помните, что ЗУП 2.5 постепенно снимается с поддержки, и полноценная работа с новыми протоколами (СЭДО) в ней может быть ограничена, поэтому планирование перехода на ЗУП 3.1 остается актуальной стратегической задачей.