При работе в конфигурации 1С:Розница 2.2 пользователи иногда сталкиваются с внезапным закрытием (вылетом) программы без вывода каких-либо сообщений об ошибках. Характерный сценарий: чеки в течение дня оформляются и проводятся через документ Чек ККМ вне интерфейса РМК. В конце смены при выполнении обработки «Проверка непробитых чеков» и нажатии кнопки пробития всех чеков подряд 1С успевает отпечатать случайное количество документов (например, 30, 37 или 47), после чего приложение самопроизвольно завершает работу.
Рассмотрим подробнее причины возникновения этой неполадки и разберем по шагам варианты ее устранения.
Проанализируем механику процесса. Если на торговой точке не используется реальный фискальный регистратор (например, при ЕНВД или патентной системе) и в настройках кассы подключено оборудование «1С:Фискальный регистратор (эмулятор)», система задействует внешнюю библиотеку (компоненту NativeAPI или COM). При массовой пакетной отправке чеков на печать происходят частые циклические вызовы методов драйвера в рамках одного сеанса.
Компонента эмулятора создавалась разработчиками преимущественно для отладки и тестирования. При последовательной пробитке десятков чеков без паузы в коде внешней компоненты возникает переполнение внутреннего буфера или некорректная обработка оперативной памяти. Поскольку внешняя компонента исполняется в том же процессе 1cv8.exe (в файловом режиме), сбой доступа к памяти (Access Violation) мгновенно приводит к аварийному завершению 1С, причем в Журнал регистрации запись об ошибке не попадает.
Если вам не требуется физическая печать фискальных чеков или фискализатор отсутствует вовсе, использование эмулятора является избыточным. Переведем кассу ККМ в стандартный режим работы без подключения оборудования.
После перевода кассы в режим без подключения оборудования проведение документов и закрытие смены происходят средствами самой платформы 1С без вызова внешних библиотек C++, что полностью исключает падения программы.
Иногда пользователи отказываются от «Рабочего места кассира» (РМК), считая, что без фискального регистратора оно не функционирует, и переходят на ручное создание чеков из полного интерфейса. Однако РМК в 1С:Розница штатно работает как с подключенным оборудованием, так и без него.
Если при попытке открыть РМК без оборудования система выдает сообщение: «Ошибка определения доступных касс ККМ. Не смогли определить доступные кассы ККМ», проанализируем запрос, выполняемый процедурой ПроверитьОбщуюВозможностьРаботы в конфигурации:
ВЫБРАТЬ
КассыККМ.Ссылка КАК Ссылка
ИЗ
Справочник.КассыККМ КАК КассыККМ
ГДЕ
НЕ КассыККМ.ПометкаУдаления
И НЕ КассыККМ.Магазин = ЗНАЧЕНИЕ(Справочник.Магазины.ПустаяСсылка)
И НЕ КассыККМ.ТипКассы = ЗНАЧЕНИЕ(Перечисление.ТипыКассККМ.ККМOffline)
И КассыККМ.РабочееМесто = &РабочееМестоККМ
И КассыККМ.Магазин = &Магазин
Как видно из условий запроса, фильтр по наличию подключенного оборудования здесь отсутствует вовсе. Чтобы РМК успешно открывалось без эмулятора, проверим выполнение следующих условий:
Кассы ККМ заполнен реквизит Магазин и указан корректный Тип кассы (Фискальный регистратор или Касса ККМ).Рабочее место, привязанный к текущему компьютеру пользователя.Магазин, что и в кассе ККМ.Если все параметры сопоставлены правильно, рабочее место кассира запустится и позволит регистрировать продажи без сбоев.
Если вылеты продолжаются даже после отключения эмулятора, выполним базовые регламентные процедуры обслуживания файловой базы данных:
1Cv8.1CD или выгрузка .dt).chdbfl.exe из каталога установленной платформы (например, C:\Program Files\1cv8\8.3.X.X\bin\chdbfl.exe), укажем путь к файлу базы данных и установим флаг «Исправлять обнаруженные ошибки».Подводя итог: основная причина падения 1С:Розница 2.2 при пакетном пробитии чеков — нестабильная работа «1С:Фискальный регистратор (эмулятор)» под нагрузкой. Отказ от использования эмулятора и перевод кассы в режим без оборудования полностью решает данную проблему.