Переход с устаревшей редакции 1.0 конфигурации «1С:Розница» на современные редакции 2.0, 2.2 или 2.3 — это масштабная задача, требующая от программиста и администратора предельной концентрации. Ситуация существенно усложняется, если перед вами стоит задача перевести крупную сеть (например, 50 магазинов) в условиях жесткого тайминга: торговые точки закрываются вечером и должны открыться утром уже на новой системе. В данной статье мы подробно разберем методологию планирования такого перехода, проанализируем критические технические ошибки конвертации данных и найдем способы их решения.
Прежде чем приступать к техническим манипуляциям в конфигураторе, разработаем организационный план. Попытка обновить все 50 магазинов одновременно за одну ночь с высокой долей вероятности приведет к коллапсу технической поддержки. Если кассы встанут, бизнес понесет огромные убытки.
Применим проверенную на практике методику постепенного запуска:
Переход на редакцию 2.0 выполняется через процедуру конвертации информационной базы. Стандартный алгоритм выглядит следующим образом:
.cf.Рассмотрим детально ключевые технические проблемы, с которыми специалисты сталкиваются в процессе этой конвертации.
При запуске конвертации на переходном релизе (например, при переходе с 1.0.19.20 на 2.0.1.10) система может аварийно завершить работу со следующей ошибкой:
Ошибка инициализации модуля: Справочник.ВидыОбъектовЕГАИС.МодульМенеджера. Переменная не определена (ИнтеграцияЕГАИСКлиентСервер)
Выясним причину: В переходных релизах часть кода, связанная с модулями ЕГАИС, содержит некорректные директивы компиляции. Код, который должен выполняться исключительно на сервере или в толстом клиенте, пытается инициализироваться на стороне тонкого клиента.
Решение: Чтобы обойти эту ошибку без изменения программного кода конфигурации, запустим базу данных в обычном файловом режиме (через толстый клиент) локально на компьютере разработчика, минуя клиент-серверный вариант работы. В обычном режиме препроцессор корректно обработает модули, конвертация инициализируется и завершится без ошибок.
После завершения конвертации и обновления до редакции 2.2/2.3 пользователи часто замечают, что во всех исторических документах (Поступления, Реализации) пропали данные из колонки «Количество», хотя сами документы проведены и остатки по регистрам сходятся.
Разберем причину: В редакции 2.0 разработчики фирмы «1С» изменили структуру хранения данных табличных частей. В связи с введением механизма упаковок появились два независимых реквизита: Количество (физическое количество для регистров накопления) и КоличествоУпаковок (отображаемое на форме документов количество). На форму документов выводится именно реквизит КоличествоУпаковок.
Если в процессе обновления вы совершили резкий скачок (перепрыгнули через несколько промежуточных релизов), встроенный обработчик обновления не выполнил процедуру заполнения нового реквизита КоличествоУпаковок на основании старого реквизита Количество. В базе данных значение реквизита осталось пустым, что привело к пустым колонкам на формах документов.
Решение: Для исправления ситуации нам необходимо либо строго соблюдать пошаговость обновления без пропуска релизов, либо запустить обработку, которая программно перенесет значения. Напишем пример несложного кода для восстановления данных в документах поступления:
ВыборкаДокументов = Документы.ПоступлениеТоваров.Выбрать();
Пока ВыборкаДокументов.Следующий() Цикл
ОбъектДок = ВыборкаДокументов.ПолучитьОбъект();
Модифицирован = Ложь;
Для Каждого СтрокаТЧ Из ОбъектДок.Товары Цикл
Если СтрокаТЧ.КоличествоУпаковок = 0 И СтрокаТЧ.Количество > 0 Тогда
СтрокаТЧ.КоличествоУпаковок = СтрокаТЧ.Количество;
Модифицирован = Истина;
КонецЕсли;
КонецЦикла;
Если Модифицирован Тогда
ОбъектДок.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецЦикла;
Данный скрипт восстановит видимость количества в формах документов без изменения движений по регистрам накопления.
Довольно распространенная ситуация: в редакции 1.0 активно использовались характеристики номенклатуры (например, для одежды или обуви). Цены регистрировались для конкретных характеристик. После конвертации в редакции 2.0/2.1 при подборе товара вручную все работает отлично, но при сканировании штрихкода в режиме РМК система выдает ошибку: «Не назначена цена».
Проанализируем ситуацию: В редакции 1.0 штрихкод мог быть привязан к «головной» карточке номенклатуры, а цена назначалась на конкретные характеристики. В РМК 1.0 при сканировании такого штрихкода система открывала дополнительное окно выбора характеристик с соответствующими ценами.
В «1С:Розница 2.0» логика работы изменилась. РМК ожидает однозначного определения номенклатуры и ее цены по штрихкоду. Если у товара используются характеристики, штрихкод должен быть назначен непосредственно на каждую характеристику (на каждую товарную позицию отдельно), а не на саму номенклатуру.
Решение:
После успешного перехода пользователи могут столкнуться с эргономическими трудностями:
Если исходная база редакции 1.0 сильно перегружена историческими ошибками, дублирующимися штрихкодами, битыми ссылками и некорректно проведенными документами, стандартная конвертация может постоянно прерываться. В таких случаях для 50 магазинов оптимально использовать схему «чистого старта»:
ВыгрузкаЗагрузкаДанныхXML.epf или настроенные правила в программе «Конвертация данных», переносим из старой базы только нормативно-справочную информацию (НСИ): справочник номенклатуры, характеристики, штрихкоды, контрагентов и дисконтные карты.Этот метод гарантирует, что новая база будет работать максимально быстро, без зависаний, а кассиры начнут работу с «чистого листа», не сталкиваясь со старыми системными ошибками.