Чек пробит, но не обновлён в базе
Проблема: При попытке закрытия чека на Рабочем месте кассира (РМК) появилась нереально большая и страшная ошибка:
Ошибка (приведу целиком): Чеку нужно установить отметку о пробитии при закрытии смены.
Запись чека не выполнена по причине:
{Обработка.РМКУправляемыйРежим.Форма.Форма.Форма(10494)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика — ‘ПередЗаписью’: {ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1055)}: Не удалось зарегистрировать изменения на узлах плана обмена ПоРабочемуМесту по причине: {ОбщийМодуль.ОбменДаннымиСобытия.Модуль(1328)}: Ошибка выполнения правил регистрации объектов для плана обмена ПоРабочемуМесту.
Описание ошибки:
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2032)}: Ошибка при получении списка узлов получателей. Ошибка выполнения запроса: {ОбщийМодуль.ОбменДаннымиСобытия.Модуль(2027)}: Ошибка при вызове метода контекста (Выполнить)
МассивУзловРезультат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(«Ссылка»);
по причине:
Ошибка выполнения запроса по причине:
Конфликт блокировок при выполнении транзакции:
Не удалось заблокировать таблицу ‘_Node22’
по причине:
Не удалось заблокировать таблицу ‘_Node22’
ВызватьИсключение СтрокаСообщения;
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
Оборудование: Стандартное рабочее место, 1С Розница
Решение проблемы: Для начала можно проверить, действительно ли чек не пробился. Для этого заходим в «Продажи —> Чеки».
Смотрим последний чек:
Чек действительно есть, однако при этом он проведен. При этом не установлен у него статус (следующий столбец после «Операция»). Следовательно почти наверняка нужно его провести (как бы глупо не звучало это по отношению к проведённому документу).
Вообще, отчего и почему такое могло случиться?
Всё очень просто! В магазине установлены 3 РМК. И настроена синхронизация этих РМК (или просто «касс») с сервером. Синхронизация проводится раз в пять минут. Соответственно, синхронизация производит обмен всеми изменёнными документами. На кассах таким образом актуализируется вся изменяемая номенклатура с ценами, а на сервере — появляются все пробитые документы на кассах регулярно.
При этом вроде как существует 4 базы раздельных. На сервере — главная, на кассах — зависимые. Но расположенные физически не на сервере.
Делается это потому, что очень часто будет возникать конфликт блокировок. Когда одно РМК закрывает чек. И все данные ещё не записаны нормально в базу, а другая РМК чек уже стала пробивать.
Собственно, в этот раз примерно похожее и произошло. Только чек стал закрываться и проводиться в тот момент, когда база сбрасывала информацию для обмена (синхронизации) с головной базой на сервере.
Потому надо зайти в документ и, как я уже говорил, пробить чек. Вверху нажать «Пробить чек». Чтобы в чеке всё стало неактивно. Примерно вот так:
При нажатии «Пробить чек» второй раз чек из ККТ выйти при этом не должен.