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