Почему в 1С:Управление торговлей 11.5 не формируется выемка при закрытии смены и как это исправить?

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

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

Анализ причин сбоя: ошибка платформенного кода и механизм защиты фискализации

Рассмотрим, почему система ведет себя подобным образом. Описанное поведение вызвано зарегистрированной ошибкой конфигурации с кодом 00-00644690 («С версии 11.5.17.90 не создается автоматическая выемка при закрытии кассовой смены»).

Проанализируем техническую сторону вопроса:

  1. Механизм предварительной записи документа (почему появляется пометка на удаление): В типовом РМК для предотвращения расхождений между фискальным накопителем и базой 1С заложена транзакционная логика. Документ выемки сначала записывается в базу со статусом ПометкаУдаления = Истина. Это черновик, защищающий базу от появления проведенных документов при зависании драйвера, обрыве связи или отказе фискального регистратора. После того как онлайн-касса успешно напечатает чек выемки, обработчик ответа ККТ должен снять пометку и провести документ. В версии 11.5.17.90 в асинхронной цепочке обработки события возврата от оборудования возник сбой: постобработка не выполняется до конца, из-за чего созданный документ остается помеченным на удаление.
  2. Разделение логики при закрытии смены: В типовом алгоритме закрытия смены процедура ветвится. При работе без торгового оборудования или на эмуляторе вызывается прямой серверный метод генерации кассовых документов, где выемка успешно создается. В ветке реального оборудования вызов функции формирования выемки при штатном успешном ответе ККТ был ошибочно опущен разработчиками. Он остался доступным лишь в ветке обработки нештатных ситуаций, когда касса выдает ошибку и кассир подтверждает закрытие вручную.

Способ 1. Обновление конфигурации или установка официального патча

Выясним, какие официальные способы решения проблемы предоставляет вендор. Фирма «1С» устранила данную ошибку в следующих обновлениях конфигурации:

  1. Версия 11.5.17.106
  2. Версия 11.5.18.41
  3. Версия 11.5.19.44

Если в информационной системе развернута распределенная информационная база (РИБ) с большим количеством узлов, полное обновление конфигурации метаданных на всех точках может быть трудоемким. В таком случае оптимальным решением является установка официального патча исправлений (расширения типа EF_00_00644690).

Преимущество патча в распределенной базе заключается в том, что при установке в центральном узле (раздел «НСИ и администрирование» → «Обслуживание» → «Обновление конфигурации» → «Установка исправлений (патчей)») патч автоматически передается во все подчиненные узлы в рамках регулярного сеанса обмена РИБ без необходимости монопольного обновления структуры метаданных.

Способ 2. Устранение проблемы собственным расширением конфигурации

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

Рассмотрим, какие процедуры необходимо скорректировать:

  1. Формирование автовыемки при закрытии смены: Перехватим постобработку закрытия кассовой смены в процедурах взаимодействия с ККТ. Нам необходимо принудительно инициировать создание документа выемки по кассе ККМ текущей смены на сумму остатка наличных денежных средств при условии, что в настройках РМК взведен признак автоинкассации.
  2. Снятие пометки удаления при ручной выемке: В обработчике завершения фискализации операции выемки наличных в модуле РМК перехватим результат выполнения команды кассы. При получении признака успешной печати чека добавим явное снятие пометки удаления и проведение созданного документа:

Если РезультатОперацииККТ Тогда
    ДокументОбъект = СсылкаНаВыемку.ПолучитьОбъект();
    ДокументОбъект.ПометкаУдаления = Ложь;
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;

Важно для распределенных баз: При подключении расширения через план обмена убедимся, что расширение не содержит собственных объектов метаданных (новых реквизитов, табличных частей или документов), способных нарушить структуру распределенной базы данных.

Способ 3. Временные обходные сценарии без изменения конфигурации

Пока выполняется подготовка доработки или обновление узлов, разберем регламентные обходные пути для поддержания корректного учета остатков:

  1. Оформление выемок вне интерфейса РМК: Документ «Выемка денежных средств из кассы ККМ» можно вводить вручную напрямую из журнала кассовых документов (раздел «Казначейство» или форма списка «Чеки ККМ»). Созданный таким способом документ проводится в стандартном режиме без выставления блокирующей пометки удаления.
  2. Групповое проведение документов: Так как при ручной выемке в РМК документ физически записывается в базу данных, администратор или кассир в конце смены может открыть журнал кассовых документов, снять пометку удаления с созданных документов выемки и провести их. Это сформирует правильные проводки по регистрам накопления ДенежныеСредстваВКассахККМ и позволит принять выручку в главную кассу организации через документ «Приходный кассовый ордер».
  3. Контроль аппаратной автоинкассации в фискальном регистраторе: Обратим внимание на параметры самого аппарата ККТ. Если в таблицах кассы включено аппаратное обнуление наличности при печати Z-отчета, а в 1С документ выемки не провелся, возникнет расхождение между физическими счетчиками кассы и учетными данными в базе. До устранения ошибки рекомендуется временно отключить автообнуление в драйвере ККТ, чтобы суммы в кассовой смене оставались синхронизированными.
← На главную