Как исправить ошибку интеграции ГИСМ и настроить обмен с новым адресом маркировки меховых изделий в 1С

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

С 1 июня 2019 года функции оператора маркировки меховых изделий перешли от Федеральной налоговой службы к Центру развития перспективных технологий (ЦРПТ, система «Честный ЗНАК»). В связи с этим изменились и веб-адреса для обмена данными: старый адрес markirovka.nalog.ru прекратил прием запросов, а новым адресом стал furs.mark.crpt.ru.

Для пользователей конфигурации «1С:Бухгалтерия предприятия» этот переход вызвал ряд технических сложностей. Фирма «1С» выпустила специальное временное расширение РасширениеГИСМЦРПТ.cfe для поддержки обмена со старыми релизами, однако при его установке многие столкнулись с системными ошибками. В этой статье мы подробно разберем, как решить проблему несовместимости расширения и настроить стабильное соединение с ЦРПТ.

Анализ ошибки «Процедура или функция с указанным именем не определена»

При запуске информационной базы со старым релизом (например, 3.0.67.54) после установки интеграционного расширения система аварийно завершает работу с сообщением:

{РасширениеГИСМЦРПТ ОбщийМодуль ИнтеграцияГИСМВызовСервера Модуль(176,6)}: Процедура или функция с указанным именем не определена (ДобавитьДанныеЗапросаКвитанцииОФиксацииВОчередь)

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

Выпущенное фирмой «1С» расширение разрабатывалось и тестировалось для работы на релизах не ниже 3.0.70.61. В этих версиях разработчики уже подготовили программный слой для работы с очередями квитанций ГИСМ. В старых релизах (до 3.0.70) вызов процедуры ДобавитьДанныеЗапросаКвитанцииОФиксацииВОчередь в общем модуле ИнтеграцияГИСМВызовСервера отсутствует, что и приводит к ошибке.

Решение 1: Обновление конфигурации (штатный и рекомендуемый метод)

Для долгосрочной и стабильной работы обмена с ГИСМ наиболее правильным решением является обновление конфигурации «1С:Бухгалтерия».

  1. Выясним минимально необходимый релиз. Полная поддержка обмена с ЦРПТ без использования дополнительных расширений реализована в релизе 3.0.71 и выше.
  2. Если вы используете временное расширение, обновите базу как минимум до версии 3.0.70.61.
  3. В случае использования распределенных информационных баз (РИБ) обновление необходимо выполнить последовательно: сначала обновите конфигурацию в главном узле, выполните выгрузку данных, примите изменения в периферийных узлах и запустите их в режиме «Конфигуратор» для обновления базы данных.

Решение 2: Обход проблемы без обновления (для программистов)

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

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

  1. Откроем базу в режиме «Конфигуратор».
  2. Перейдем в меню «Конфигурация» — «Расширения конфигурации».
  3. Откроем модуль ИнтеграцияГИСМВызовСервера внутри расширения.
  4. Добавим в конец модуля определение пустой процедуры (или реализуем минимальную логику записи), чтобы удовлетворить требования компилятора:

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

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

Решение проблем с подключением: Ошибка «Не могу установить соединение»

Даже после успешного обновления или настройки расширения пользователи часто сталкиваются с ошибкой инициализации соединения при попытке отправить отчет о продажах или запросить пулы марок по адресу furs.mark.crpt.ru. Рассмотрим причины и способы их устранения по шагам.

Шаг 1. Проверка корневых сертификатов SSL/TLS

Серверы ЦРПТ используют шифрование по протоколу HTTPS. Если на компьютере пользователя или на сервере «1С:Предприятия» (при клиент-серверном режиме работы) отсутствуют актуальные корневые сертификаты удостоверяющего центра, выдавшего сертификат для crpt.ru, то операционная система заблокирует сетевой запрос из соображений безопасности. Необходимо установить актуальные сертификаты Минцифры или коммерческого УЦ в хранилище доверенных корневых сертификатов операционной системы Windows.

Шаг 2. Настройка прав службы «1С:Предприятие»

Если ваша база работает в клиент-серверном режиме, веб-запросы к ГИСМ отправляются непосредственно с сервера приложений 1С. Служба сервера часто работает под технической учетной записью (например, USR1CV8). У этой учетной записи должен быть доступ к установленным в системе криптопровайдерам (например, КриптоПро CSP) и к контейнерам закрытых ключей электронных подписей. Убедитесь, что сертификат организации установлен в личное хранилище пользователя, под которым запущена служба сервера 1С.

Шаг 3. Активация протокола TLS 1.2

Портал ЦРПТ не принимает соединения по устаревшим протоколам SSLv3 и TLS 1.0. На старых серверных операционных системах (например, Windows Server 2008 R2) поддержка TLS 1.2 может быть отключена на системном уровне. Чтобы включить её, необходимо внести изменения в системный реестр Windows по следующему пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client

Установите параметр Enabled в значение 1 (тип DWORD), после чего перезагрузите сервер.

← На главную