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