В процессе работы с конфигурацией 1С:Розница 2.2 (особенно в релизах ветки 2.2.7) многие пользователи сталкиваются с ситуацией, когда, несмотря на установленный параметр «Выемку не производить» в настройках магазина, система все равно инициирует автоматическую инкассацию при закрытии смены. Это создает неудобства, так как остаток денежных средств в кассе обнуляется программно, что не всегда соответствует фактическому положению дел. Рассмотрим подробно, почему это происходит и как решить проблему несколькими способами.
Проанализируем наиболее вероятную причину некорректного поведения программы. Как показывает практика и опыт участников профессиональных форумов, в версии 2.2.7.32 существовала особенность (или баг) работы с групповыми политиками доступа. Если вы устанавливаете настройки выемки для Группы пользователей, система может их проигнорировать.
Разберем по шагам, как настроить права индивидуально:
Важный нюанс: Именно персональная установка прав часто решает проблему, когда настройки на уровне «Магазина» или «Группы прав» игнорируются программным кодом в момент вызова процедуры закрытия смены.
Выясним причину, связанную с приоритетами настроек. В 1С:Розница существует четкая иерархия объектов. Настройки конкретной Кассы ККМ могут иметь приоритет над общими правилами Магазина.
Рассмотрим порядок проверки настроек:
Проанализируем ситуацию, когда используется фискальное оборудование или его эмулятор. Даже если вы считаете, что ККМ работает «без подключения оборудования», программа все равно использует определенный программный слой для имитации печати чеков и Z-отчетов.
Посмотрим на настройки Рабочего места кассира (РМК):
Иногда система производит выемку «принудительно», если обнаруживает расхождения в учетных данных. Программа стремится к тому, чтобы регистры накопления были чистыми на начало новой смены.
Рассмотрим работу с регистром ДенежныеСредстваВКассахККМ:
Если в данном регистре накопились ошибки (например, отрицательные остатки или «зависшие» копейки из-за округлений), типовой алгоритм закрытия смены может попытаться «выровнять» ситуацию программной выемкой. Посмотрим на отчет «Денежные средства в кассах ККМ» с детализацией до регистратора. Если вы видите странные обороты, не подтвержденные реальными документами, возможно, требуется корректировка записей регистра.
В крайнем случае, как временный «костыль», можно использовать ручную корректировку регистра накопления в минус перед закрытием смены. Если по учету в кассе будет 0 или отрицательное значение, автоматическая выемка может не сработать, так как системе «нечего вынимать».
Если вы обладаете навыками отладки, рекомендуется обратить внимание на общий модуль ВыемкаДенежныхСредствКлиент или обработку ЗакрытиеСмены. В коде этих объектов происходит проверка условий перед формированием документа «Выемка».
Пример логики, которую следует проверить в коде:
// Примерный фрагмент кода проверки необходимости выемки
Если НастройкаВыемки = ПредопределенноеЗначение("Перечисление.ТипыВыемкиПриЗакрытииСмены.ВыемкуНеПроизводить") Тогда
// В идеале здесь выполнение должно прерываться
Возврат;
КонецЕсли;
В проблемных релизах 2.2.7 условие могло игнорироваться, если в кассе ККМ по данным регистра ДенежныеСредстваВКассахККМ остаток превышал ноль, а драйвер оборудования возвращал определенный статус. Обновление до версии 2.3 и выше обычно полностью устраняет данную проблему, так как там механизмы работы с ККТ-онлайн были значительно переработаны.