При работе в распределенной информационной базе (РИБ) конфигурации «1С:Розница» часто возникает ситуация, когда типовой обмен переносит избыточный объем данных. Это не только увеличивает размер базы в узлах (магазинах), но и может запутывать кассиров, показывая им остатки товаров, которых физически нет в их торговой точке. В данной статье мы подробно разберем, как ограничить передачу данных и настроить интерфейс рабочего места кассира (РМК) под ваши задачи.
Одной из наиболее частых жалоб является отображение остатков по всем складам сети при поиске товара в РМК. Разберем, как это отключить штатными средствами, не прибегая к сложному программированию.
Во-первых, проанализируем функциональные опции системы. В разделе Администрирование — Настройки номенклатуры — Дополнительная информация присутствует флаг Информативные остатки по магазинам. Если мы снимем эту галочку, система перестанет использовать механизм хранения и актуализации данных об остатках других узлов. Это самый быстрый и корректный способ отключения функции на уровне всей базы.
Во-вторых, если функционал нужен в одних магазинах, но мешает в других, мы можем настроить само рабочее место. Перейдем в раздел Продажи — Настройки РМК. В профиле настроек найдем флаг Отображать остатки по магазинам. Его отключение скроет информацию из интерфейса поиска, даже если данные физически присутствуют в базе.
Однако простого отключения настроек недостаточно, если база уже заполнена данными. Ранее накопленные записи в регистрах никуда не исчезнут сами собой. Выясним причину их сохранения: они хранятся в специальном регистре сведений. Чтобы полностью очистить базу от «чужих» остатков, нам необходимо очистить регистр ИнформативныеОстаткиТоваровПоМагазинам. Для этого можно использовать консоль кода или внешнюю обработку со следующим фрагментом:
НаборЗаписей = РегистрыСведений.ИнформативныеОстаткиТоваровПоМагазинам.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
Выполнение этого кода полностью обнулит данные об остатках других магазинов в текущем узле. Также не забудьте проверить и отключить регламентное задание, которое отвечает за формирование этих остатков, иначе при следующем цикле обслуживания данные могут появиться снова.
Перейдем ко второму важному вопросу — остановке обмена документами Чек ККМ. Многие администраторы стремятся исключить их из обмена, чтобы облегчить трафик, так как основные данные о продажах все равно попадают в центральный узел через документ Отчет о розничных продажах (ОРП) после закрытия смены.
Рассмотрим подробнее механизм «Правил регистрации объектов» (ПРО). Именно эти правила определяют, какие данные «встают в очередь» на выгрузку. Посмотрим на алгоритм действий по изменению этих правил:
Документ.ЧекККМ и установим для него способ регистрации «Отключена» или настроим фильтрацию по определенным условиям.Важно помнить: подмену правил следует производить в момент, когда обмен данными не запущен, чтобы избежать конфликтов номеров сообщений.
Если вы не хотите использовать «Конвертацию данных», существует более простой, но радикальный способ. Мы можем изменить состав плана обмена непосредственно в конфигураторе. Найдем план обмена ПоМагазинам, перейдем на вкладку Состав, выберем Документ.ЧекККМ и установим значение Авторегистрация в положение Запретить. После этого новые чеки перестанут автоматически помечаться к отправке.
Однако стоит учитывать последствия: если вы отключите передачу чеков, в центральном офисе вы потеряете возможность оперативного контроля продаж в режиме «онлайн» до момента закрытия смены в магазине. Проанализируем ситуацию: возможно, вам будет достаточно включить типовую настройку Удалять чеки ККМ после закрытия смены. В этом случае чеки будут автоматически архивироваться и удаляться из базы узла, а в центр уйдет только итоговый отчет (ОРП), что также решит проблему объема данных без вмешательства в логику обмена.
Многие специалисты совершают ошибку: меняют правила регистрации, но видят, что чеки все равно продолжают передаваться. Проанализируем, почему это происходит. Дело в том, что старые чеки уже были зарегистрированы в системе до изменения правил и «висят» в очереди на отправку в таблице регистрации изменений.
Чтобы окончательно остановить процесс, выполним следующие шаги:
Регистрация изменений для обмена данными (она доступна через параметры синхронизации).Чек ККМ.Только после очистки очереди новые правила регистрации вступят в полную силу, и обмен станет «чистым».
Мы рассмотрели комплексный подход к оптимизации РИБ в «1С:Розница». Подведем итог: для скрытия остатков используем Функциональные опции и очистку регистра ИнформативныеОстаткиТоваровПоМагазинам. Для остановки передачи чеков корректируем Правила регистрации объектов через КД2 или отключаем Авторегистрацию в плане обмена, не забывая про очистку накопленной очереди через стандартную обработку.
Важное предостережение: использование RLS (ограничение доступа на уровне записей) для этих целей крайне не рекомендуется. Это создаст избыточную нагрузку на сервер и существенно замедлит работу кассиров в РМК при поиске товаров. Лучшим решением всегда является фильтрация данных на этапе их попадания в базу (через правила обмена), а не ограничение прав на уже имеющиеся данные.