В процессе работы с программой 1С:Розница (особенно в версиях линейки 2.2 и ранних выпусках 2.3) пользователи часто сталкиваются с неприятной ситуацией. При оформлении операции поступления наличных денег в кассу организации из кассы ККМ поле «Касса ККМ» (отправитель) в документе Приходный кассовый ордер (ПКО) остается пустым. Программа не позволяет выбрать нужную кассу вручную, предлагая лишь создать новую. При этом в самой системе касса ККМ существует, исправно функционирует, и по ней без проблем проводятся операции выемки.
В этой статье мы подробно разберем, почему возникает данная проблема, проанализируем технические причины сбоя и рассмотрим несколько эффективных способов его устранения — от простых пользовательских «лайфхаков» до правильной настройки справочников и программной корректировки.
Для начала проанализируем стандартную цепочку движения наличных денежных средств (ДС) в розничном магазине:
Выемка ДС из кассы ККМ. После этого денежные средства переходят в статус «в пути» и отображаются в бэк-офисе на вкладке «Денежные средства к поступлению».Приходный кассовый ордер с видом операции «Поступление ДС из кассы ККМ».Именно на третьем шаге происходит сбой: реквизит «Касса ККМ» на форме ПКО оказывается пустым. Попытка выбрать кассу вручную через форму выбора не приносит успеха — список пуст, а система предлагает создать новую кассу. Если пойти по пути создания новой кассы, программа автоматически сгенерирует дубликат кассы ККМ, привязанный к текущему пользователю, но при повторном создании ПКО проблема возникнет снова.
Выясним технические причины, почему программа ведет себя подобным образом. Их две:
1. Конфликт рабочих мест (сеансов пользователей)
В 1С:Розница справочник Кассы ККМ жестко привязан к конкретному Рабочему месту (компьютеру, к которому физически подключено фискальное оборудование). Когда кассир делает выемку на кассовом терминале (Рабочее место №1), документ фиксирует эту ККМ. Однако, когда менеджер пытается принять эти деньги на своем ПК в бэк-офисе (Рабочее место №2), программа при открытии формы ПКО выполняет запрос, который пытается определить ККМ, доступные именно для текущего рабочего места менеджера. Так как реальная касса привязана к компьютеру кассира, на компьютере менеджера программа ее «не видит» и скрывает из списка выбора.
2. Зарегистрированный программный баг конфигурации
Описанная проблема официально признана разработчиками 1С как внутренняя ошибка заполнения реквизитов формы на основании документа-источника (ошибка №00-00347971). Программный код инициализации формы ПКО при создании из списка «Денежные средства к поступлению» просто теряет связь с кассой ККМ, указанной в документе выемки.
Ниже мы подробно разберем все возможные способы решения этой проблемы.
---
Если вам нужно срочно принять деньги, а времени на глубокую настройку системы нет, можно воспользоваться простым и эффективным обходным путем, который обнаружили практикующие пользователи. Этот способ заставляет программу принудительно запустить корректный обработчик заполнения полей.
Рассмотрим этот алгоритм по шагам:
Почему это работает: При первоначальном автоматическом создании ПКО отрабатывает процедура инициализации формы, содержащая ошибку (баг конфигурации). Но когда вы вручную перевыбираете документ расхода, система запускает стандартный интерактивный обработчик события ПриИзменении на форме документа. Этот обработчик написан корректно: он напрямую обращается к реквизитам выбранной выемки, считывает оттуда кассу ККМ и принудительно записывает ее в форму ПКО, минуя проблемный код.
---
Очень часто проблема кроется в том, что в справочниках программы не настроена явная связь между операционной кассой организации (куда поступает выручка) и кассой ККМ (где выбиваются чеки). Выясним, как правильно связать эти объекты.
Выполним следующие действия по шагам:
После проведения данной настройки автоматическое заполнение ПКО должно начать работать корректно, так как программа сможет однозначно определить кассу ККМ по связанной кассе организации.
---
Если предыдущие способы не помогли, высока вероятность влияния механизма разделения оборудования по рабочим местам. Разберем, как обойти ограничение видимости кассы ККМ для бэк-офисного ПК менеджера.
Сделаем следующее:
Рабочее место (оставьте его пустым) либо укажите там рабочее место менеджера, который оформляет ПКО.Совет: Если касса ККМ работает в автономном режиме (без физического подключения к ПК драйвера ККТ) или используется эмулятор оборудования, в настройках кассы ККМ обязательно установите флаг «Использовать без подключения оборудования». Это избавит вас от жесткой привязки к рабочим местам при оформлении ПКО.
---
Для системных администраторов и программистов 1С лучшим решением (до момента обновления конфигурации) будет использование небольшого расширения. Это позволит раз и навсегда автоматизировать процесс заполнения ПКО без изменения типовой конфигурации, оставив программу на поддержке.
Давайте проанализируем, какой код необходимо добавить в расширение. Нам нужно скорректировать процедуру заполнения ПКО на основании выемки. Создадим расширение и переопределим процедуру ЗаполнитьПоВыемке или обработчик создания на сервере в модуле формы документа ПриходныйКассовыйОрдер:
&После("ЗаполнитьПоВыемке")
Процедура Расш_ЗаполнитьПоВыемке(ДокументОснование)
// Проверим, что документ-основание передан и это действительно выемка
Если ЗначениеЗаполнено(ДокументОснование)
И ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ВыемкаДенежныхСредствИзКассыККМ") Тогда
// Принудительно заполняем кассу ККМ из документа выемки,
// игнорируя фильтрацию по текущему рабочему месту пользователя
ЭтотОбъект.КассаККМ = ДокументОснование.КассаККМ;
КонецЕсли;
КонецПроцедуры
Подключить такое расширение можно в режиме 1С:Предприятие через меню Администрирование — Печатные формы, отчеты и обработки — Расширения. Это позволит менеджерам беспрепятственно оформлять ПКО в один клик.
---
Поскольку данная проблема является следствием зафиксированного бага 1С, наиболее правильным глобальным решением будет обновление программного продукта. Ошибка автоматического заполнения реквизита ПКО на основании выемки была окончательно исправлена разработчиками в релизах ветки 1С:Розница 2.3 (начиная с версии 2.3.8.17 и выше), а также перенесена в современную редакцию 1С:Розница 3.0.
Обратите внимание, что простое обновление в рамках старой ветки 2.2 (даже до финальных релизов 2.2.11) не всегда решает проблему, так как исправление туда могло не войти. Рекомендуется запланировать переход на актуальные и поддерживаемые версии программы.
Мы рассмотрели все варианты решения проблемы с отображением кассы ККМ при приеме денежных средств в 1С:Розница. Если вам нужно быстро провести документы прямо сейчас — воспользуйтесь Способом №1 (перевыбор документа выемки через три точки). Если вы хотите настроить систему для долгосрочной работы без сбоев — свяжите кассы в НСИ (Способ №2) или обновите конфигурацию до актуального релиза.