Почему 1С:Розница 2.2 вылетает при закрытии кассовой смены и пробитии чеков и как это исправить?

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

При работе в конфигурации 1С:Розница 2.2 пользователи иногда сталкиваются с внезапным закрытием (вылетом) программы без вывода каких-либо сообщений об ошибках. Характерный сценарий: чеки в течение дня оформляются и проводятся через документ Чек ККМ вне интерфейса РМК. В конце смены при выполнении обработки «Проверка непробитых чеков» и нажатии кнопки пробития всех чеков подряд 1С успевает отпечатать случайное количество документов (например, 30, 37 или 47), после чего приложение самопроизвольно завершает работу.

Рассмотрим подробнее причины возникновения этой неполадки и разберем по шагам варианты ее устранения.

Выясним причину аварийного завершения программы

Проанализируем механику процесса. Если на торговой точке не используется реальный фискальный регистратор (например, при ЕНВД или патентной системе) и в настройках кассы подключено оборудование «1С:Фискальный регистратор (эмулятор)», система задействует внешнюю библиотеку (компоненту NativeAPI или COM). При массовой пакетной отправке чеков на печать происходят частые циклические вызовы методов драйвера в рамках одного сеанса.

Компонента эмулятора создавалась разработчиками преимущественно для отладки и тестирования. При последовательной пробитке десятков чеков без паузы в коде внешней компоненты возникает переполнение внутреннего буфера или некорректная обработка оперативной памяти. Поскольку внешняя компонента исполняется в том же процессе 1cv8.exe (в файловом режиме), сбой доступа к памяти (Access Violation) мгновенно приводит к аварийному завершению 1С, причем в Журнал регистрации запись об ошибке не попадает.

Способ 1. Отключение внешнего оборудования в кассе ККМ

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

  1. Перейдем в раздел Продажи — Кассы ККМ.
  2. Откроем карточку необходимой кассы.
  3. В поле выбора оборудования или подключаемого устройства снимим признак использования внешнего оборудования (выберем варианты работы без подключения оборудования).
  4. Сохраним настройки кассы.

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

Способ 2. Проверка работы РМК и условий определения доступных касс

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

Если при попытке открыть РМК без оборудования система выдает сообщение: «Ошибка определения доступных касс ККМ. Не смогли определить доступные кассы ККМ», проанализируем запрос, выполняемый процедурой ПроверитьОбщуюВозможностьРаботы в конфигурации:


ВЫБРАТЬ
	КассыККМ.Ссылка КАК Ссылка
ИЗ
	Справочник.КассыККМ КАК КассыККМ
ГДЕ
	НЕ КассыККМ.ПометкаУдаления
	И НЕ КассыККМ.Магазин = ЗНАЧЕНИЕ(Справочник.Магазины.ПустаяСсылка)
	И НЕ КассыККМ.ТипКассы = ЗНАЧЕНИЕ(Перечисление.ТипыКассККМ.ККМOffline)
	И КассыККМ.РабочееМесто = &РабочееМестоККМ
	И КассыККМ.Магазин = &Магазин

Как видно из условий запроса, фильтр по наличию подключенного оборудования здесь отсутствует вовсе. Чтобы РМК успешно открывалось без эмулятора, проверим выполнение следующих условий:

  1. В карточке Кассы ККМ заполнен реквизит Магазин и указан корректный Тип кассы (Фискальный регистратор или Касса ККМ).
  2. Заполнен реквизит Рабочее место, привязанный к текущему компьютеру пользователя.
  3. У текущего пользователя в настройках выбран тот же Магазин, что и в кассе ККМ.

Если все параметры сопоставлены правильно, рабочее место кассира запустится и позволит регистрировать продажи без сбоев.

Способ 3. Профилактические технические проверки ИБ

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

  1. Создание резервной копии. Обязательно сделаем архивную копию базы данных (файл 1Cv8.1CD или выгрузка .dt).
  2. Проверка физической целостности. Запустим утилиту chdbfl.exe из каталога установленной платформы (например, C:\Program Files\1cv8\8.3.X.X\bin\chdbfl.exe), укажем путь к файлу базы данных и установим флаг «Исправлять обнаруженные ошибки».
  3. Тестирование и исправление. Откроем базу в режиме Конфигуратор, перейдем в меню Администрирование — Тестирование и исправление..., отметим необходимые пункты проверки и запустим процесс.

Подводя итог: основная причина падения 1С:Розница 2.2 при пакетном пробитии чеков — нестабильная работа «1С:Фискальный регистратор (эмулятор)» под нагрузкой. Отказ от использования эмулятора и перевод кассы в режим без оборудования полностью решает данную проблему.

← На главную