При подключении контрольно-кассовой техники (ККТ) нового образца по требованиям 54-ФЗ в конфигурациях на обычных формах (таких как «Управление торговлей 10.3» или «Управление производственным предприятием 1.3») специалисты нередко сталкиваются с внезапным падением программы. В момент открытия формы настройки торгового оборудования или при попытке создать объект драйвера процесс 1cv8.exe закрывается без отображения стандартных сообщений об ошибках.
Разберем детально, почему возникает эта ошибка, как работает механизм загрузки внешних компонент и какие существуют способы устранения проблемы.
Проанализируем программный код обработки обслуживания торгового оборудования, на котором происходит сбой:
Макет = ПолучитьМакет("ИнтеграционнаяКомпонента");
Адрес = ПоместитьВоВременноеХранилище(Макет);
ПодключитьВнешнююКомпоненту(Адрес, "ИнтеграционнаяКомпонента", ТипВнешнейКомпоненты.Native);
Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.ATOL_KKM_1C82_54FZ");
Метод ПодключитьВнешнююКомпоненту возвращает значение Истина, однако на строке создания объекта Новый("AddIn...") платформа мгновенно завершает свою работу. Выясним основные причины такого поведения:
0xC0000005), что приводит к закрытию процесса 1С.AddIn.ATOL_KKM_1C82_54FZ.ATOL_KKM_1C82_54FZ). В толстом клиенте обычного приложения при прямой загрузке Native-библиотеки из временного хранилища любая системная ошибка приводит к падению всего приложения.Наиболее надежным и правильным решением является переход на современную операционную систему (Windows 7, 10 или 11). Начиная с релиза платформы 8.3.11, поддержка Windows XP со стороны разработчиков 1С была полностью прекращена.
Кроме того, для полноценной работы онлайн-касс в соответствии с 54-ФЗ требуется шифрование каналов связи по протоколу TLS 1.2 для отправки фискальных данных операторам (ОФД), поддержка которого на уровне системных криптопровайдеров Windows XP штатно отсутствует. После установки актуальной ОС библиотека FprnM1C82_54FZ.dll инициализируется и работает без ошибок.
Если обновление операционной системы на рабочем месте кассира временно невозможно, перейдем на использование стандартной технологии COM-соединения, которая обрабатывается операционной системой более стабильно.
Разберем по шагам, как изменить механизм инициализации драйвера:
regsvr32 "C:\Program Files\ATOL\Drivers8\1Cv82\FZ54\FprnM1C82_54FZ.dll"
ПрогИД = "AddIn.ATOL_KKM_1C82_54FZ";
Если ПодключитьВнешнююКомпоненту(ПрогИД) Тогда
Попытка
Драйвер = Новый(ПрогИД);
Исключение
Драйвер = Новый COMОбъект(ПрогИД);
КонецПопытки;
Иначе
Сообщить("Не удалось подключить внешнюю компоненту АТОЛ по технологии COM");
КонецЕсли;
Если конфигурация «Управление торговлей 10.3» работает в режиме совместимости с платформой 8.2, можно запустить базу напрямую через исполняемый файл платформы 8.2, которая проектировалась с учетом архитектуры Windows XP.
Для этого в диалоге запуска 1С:Предприятия выделим нужную базу, нажмем кнопку Изменить, перейдем на последнюю страницу настроек и в поле Версия 1С:Предприятия принудительно укажем 8.2. При таком варианте запуска компоненты инициализируются штатно.
Если требуется сохранить текущую конфигурацию системы без изменения кода, проверим следующие системные параметры:
1cv8.exe.