Как перенести остатки товаров, цены и штрихкоды в идентичную базу «1С:Розница 8. Аптека 2.2»?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Перенос данных между идентичными информационными базами — классическая задача при разделении учета, открытии нового филиала или обновлении «засоренной» базы данных. Однако когда речь заходит об отраслевом решении «1С:Розница 8. Аптека 2.2» (разработка компании «1С-Рарус»), стандартные подходы могут столкнуться со спецификой аптечного учета.

В этой статье мы подробно разберем, как решить задачу переноса остатков, цен (включая цены поставщика и производителя) и штрихкодов. Мы рассмотрим как стандартные методы, предложенные практикующими специалистами, так и глубокие технические нюансы, связанные с серийным учетом медикаментов и ценообразованием ЖНВЛП (Жизненно необходимых и важнейших лекарственных препаратов).

---

Метод 1. Свертка информационной базы и перенос документов через XML

Это один из самых популярных и простых методов, если перенос требуется выполнить один раз. Суть метода заключается в том, что в исходной базе создаются документы ввода остатков, которые затем переносятся в пустую базу-приемник.

Рассмотрим этот процесс пошагово:

  1. Подготовка исходной базы. Перед запуском свертки критически важно закрыть кассовые смены (документы ОтчетОРозничныхПродажах должны быть проведены), выполнить проведение всех документов и полностью устранить отрицательные остатки на складах. В аптечном учете «красные» остатки по конкретным сериям — частое явление. Если их не исправить, свертка сформирует некорректные документы.
  2. Запуск свертки. Перейдем в раздел Администрирование — Обслуживание — Свертка информационной базы. Следуя указаниям помощника, установим дату свертки (например, 31 декабря прошлого года). Программа автоматически сформирует документы оприходования или ввода остатков (в зависимости от настроек) и пометит старые документы на удаление.
  3. Выгрузка документов. Используем стандартную обработку ВыгрузкаЗагрузкаДанныхXML.epf (ее можно найти на диске ИТС или в каталоге установленной платформы). В списке объектов выберем только документы ввода остатков (например, ОприходованиеТоваров или специализированный документ ввода остатков) и справочники (Номенклатура, СерииНоменклатуры, Контрагенты).
  4. Загрузка в приемник. В чистой целевой базе откроем ту же обработку ВыгрузкаЗагрузкаДанныхXML.epf на вкладке «Загрузка» и укажем путь к выгруженному файлу. После загрузки проведем документы ввода остатков.

Важное предупреждение: При свертке базы документы-партии (документы поступления) заменяются служебными документами остатков. Если в новой базе вам критически важно вести партионный учет по методу FIFO/FEFO с привязкой к реальным первичным документам поставщиков, этот метод может нарушить сквозную аналитику.

---

Метод 2. Использование конфигурации «Конвертация данных» (КД 2.0 / КД 3.0)

Если задача переноса регулярная или требует тонкой настройки (например, нужно перенести только остатки по конкретным складам и отфильтровать устаревшую номенклатуру), лучшим выбором будет написание правил обмена в «1С:Конвертации данных».

Проанализируем алгоритм настройки правил:

  1. Выгрузим метаданные обеих конфигураций с помощью обработки MD83Exp.epf. Поскольку базы идентичны, структура метаданных будет полностью совпадать.
  2. Загрузим метаданные в базу «Конвертация данных».
  3. Создадим новые правила обмена. Настроим ПКО (Правила конвертации объектов) для справочников Номенклатура, СерииНоменклатуры, ХарактеристикиНоменклатуры.
  4. Для переноса остатков создадим ПВД (Правило выгрузки данных), которое будет программно собирать остатки из регистра накопления ТоварыНаСкладах и генерировать документ ОприходованиеТоваров в базе-приемнике.

Пример входящего обработчика в ПВД для сбора остатков и передачи их в документ оприходования:


// Пример получения остатков для выгрузки в Оприходование товаров
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    |	ТоварыНаСкладахОстатки.Характеристика КАК Характеристика,
    |	ТоварыНаСкладахОстатки.Серия КАК Серия,
    |	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество
    |ИЗ
    |	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК ТоварыНаСкладахОстатки";

Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Склад", Параметры.СкладВыгрузки);
ТаблицаОстатков = Запрос.Выполнить().Выгрузить();

// Далее формируется структура для передачи в ПКО документа "ОприходованиеТоваров"

Преимущество этого метода — полный контроль над процессом. Мы можем на лету сопоставлять данные, исключать дубли и отсекать неликвидные позиции.

---

Метод 3. Выгрузка через плоский файл (Excel / CSV)

Если нет времени на изучение «Конвертации данных», можно прибегнуть к простому и надежному способу — выгрузке данных в таблицу и ее последующему импорту. Этот метод часто выбирают системные администраторы и опытные пользователи.

Разберем этот процесс по шагам:

  1. В исходной базе сформируем отчет «Ведомость по товарам на складах» (или специализированный отраслевой отчет по сериям).
  2. Настроим группировку отчета так, чтобы в строках выводились: Код номенклатуры, Штрихкод, Наименование, Серия, Срок годности, Производитель, Цена закупки, Цена розничная и Количество.
  3. Сохраним отчет в формате Excel (.xlsx).
  4. В базе-приемнике воспользуемся стандартной обработкой «Загрузка данных из табличного документа» (встроена во многие типовые конфигурации или доступна на ИТС).
  5. Настроим загрузку в документ ОприходованиеТоваров или ВводНачальныхОстатков. Обработка позволяет автоматически создавать недостающие элементы справочников (карточки номенклатуры, серии и характеристики) прямо в процессе чтения строк файла.

---

Критически важная специфика отраслевого учета «1С:Аптека 2.2»

Обычный розничный магазин оперирует только штуками и ценами. В аптечном бизнесе ошибки при переносе данных могут привести к штрафам регулирующих органов или невозможности осуществлять продажи. Выясним, на какие моменты нужно обратить особое внимание.

1. Серийный учет и сроки годности лекарственных средств

В отличие от стандартной «1С:Розницы», в решении от «1С-Рарус» учет ведется строго в разрезе серий, сроков годности и сертификатов.

2. Цены поставщика, производителя и реестр ЖНВЛП

Цены в аптеках формируются по сложным правилам. Нам недостаточно перенести только розничную цену.

3. Индивидуальные штрихкоды серий

В аптеках штрихкодирование работает на уровне серий. При сканировании штрихкода система должна сразу определить не просто товар «Анальгин», а конкретную его коробку с определенной серией, сроком годности и ценой закупки.

---

Резюме и рекомендации

Для успешного переноса остатков в «1С:Розница 8. Аптека 2.2» рекомендуем придерживаться следующего плана действий:

  1. Провести аудит исходной базы, закрыть смены и исправить все отрицательные остатки.
  2. Настроить параметры учета, виды номенклатуры и серийную политику в чистой базе-приемнике до начала переноса.
  3. Выбрать метод свертки ИБ, если требуется быстрый разовый перенос «под ключ», или метод «Конвертации данных», если требуется регулярный обмен с очисткой данных.
  4. Отдельно выгрузить регистры цен производителей, штрихкодов серий и данные по ЖНВЛП.
  5. Выполнить тестовую загрузку, провести документы остатков и выборочно проверить на кассе сканирование нескольких упаковок лекарств — система должна корректно подтягивать серию, срок годности и розничную цену.
← На главную