Переход с конфигурации 1С:Розница 2.3 на 1С:Розница 3.0 — это не просто рядовое обновление, а полноценная миграция на новую архитектуру. Розница версии 3.0 построена на базе 1С:Управление нашей фирмой (УНФ), что вносит существенные изменения в структуру данных. Одной из самых острых проблем при таком переходе является сохранение работоспособности обмена с 1С:Бухгалтерия предприятия 3.0 (БП 3.0). Если идентификаторы объектов (GUID) изменятся, бухгалтеру придется вручную сопоставлять тысячи карточек номенклатуры и контрагентов. Разберем, как выполнить этот процесс максимально безболезненно.
Прежде всего, нам необходимо понять, как работает штатный помощник перехода, предоставляемый фирмой 1С. Основная задача при миграции — перенести не только данные, но и их внутренние уникальные идентификаторы (UUID/GUID). Именно по ним системы «узнают» друг друга при синхронизации.
Проанализируем работу штатного помощника (выгрузка данных из 2.3 и загрузка в 3.0). Хорошая новость заключается в том, что при использовании стандартной методики (через файл выгрузки или прямое подключение) платформа сохраняет ГУИДы справочников. Это означает, что Номенклатура, Контрагенты и Организации в новой базе будут иметь те же идентификаторы, что и в старой. Однако, если мы решим переносить данные через Excel или сторонние обработки без контроля ссылок, идентификаторы будут созданы заново, что приведет к катастрофическим трудозатратам при сопоставлении в БП 3.0.
Рассмотрим последовательность действий, которая гарантирует минимальное количество ручного труда:
Сообщить(Объект.Ссылка.УникальныйИдентификатор());. Если идентификаторы совпадают — первый этап пройден успешно.Разберем, как ведет себя Бухгалтерия предприятия 3.0 при первой синхронизации с новой базой Розницы. Даже если ГУИДы совпадают, система проходит через процедуру сопоставления. Механизм Enterprise Data, который используется в современных версиях, работает по следующим правилам:
Сначала система ищет объект в регистре сведений СоответствияОбъектовИнформационныхБаз. Если записи нет (а в новой настройке её не будет), 1С пытается найти объект по внутреннему идентификатору (GUID). Если и тут неудача — включается поиск по «Полям поиска» (ИНН/КПП для контрагентов, Артикул/Наименование для номенклатуры).
Рассмотрим полезный лайфхак: в настройках синхронизации на стороне Розницы 3.0 можно установить фильтр «Выгружать только используемые в документах». Это позволит не «забивать» Бухгалтерию всей исторической номенклатурой, а перенести только те объекты, по которым реально идут обороты. Это значительно сократит время первого сопоставления.
Если вы столкнулись с ситуацией, когда данные уже перенесены (например, через Excel), но идентификаторы в Рознице 3.0 не совпадают с БП 3.0, можно прибегнуть к программному пересозданию объектов с нужным UUID. Проанализируем пример кода, который позволяет «подменить» ссылку:
&НаСервереБезКонтекста
Процедура ЗаменитьСсылкуНаСервере(Ссылка, НужныйУИД)
// Получаем объект из текущей ссылки
Об = Ссылка.ПолучитьОбъект();
// Создаем копию объекта
НовОб = Об.Скопировать();
// Устанавливаем новый GUID, который совпадает с GUID в Бухгалтерии
НовыйИдентификатор = Новый УникальныйИдентификатор(НужныйУИД);
НовОб.УстановитьСсылкуНового(НовОб.УстановитьСсылкуНового(Справочники.Номенклатура.ПолучитьСсылку(НовыйИдентификатор)));
// Включаем режим загрузки, чтобы обойти проверки
НовОб.ОбменДанными.Загрузка = Истина;
НовОб.Записать();
// Заменяем все ссылки в базе со старой на новую
ПарыЗамен = Новый Соответствие;
ПарыЗамен.Вставить(Ссылка, НовОб.Ссылка);
ОбщегоНазначения.ЗаменитьСсылки(ПарыЗамен, Новый Структура("СпособУдаления, ЗаменаПарыВТранзакции", "Непосредственно", Истина));
КонецПроцедуры
Важное предупреждение: Данный метод является «хирургическим». Выполняйте его только на свежей базе до ввода оперативных документов и обязательно делайте резервную копию. Использование ОбщегоНазначения.ЗаменитьСсылки — ресурсоемкая операция, которая требует монопольного доступа к базе.
Выясним, на что следует обратить внимание, помимо идентификаторов номенклатуры:
ВидыКонтактнойИнформации.Р300-000001 вместо РЗ00-000001), что может не понравиться бухгалтерии при сдаче отчетности.Подводя итог, можно сказать: наиболее надежный способ — это использование штатного помощника с последующим созданием чистой настройки синхронизации. Если вы сохранили ГУИДы, 1С:Бухгалтерия 3.0 сама найдет нужные объекты при первом же сеансе связи. Программная замена идентификаторов — это крайний случай, который требует высокой квалификации разработчика.
Перед запуском в «продакшн» обязательно выполните тестовый переход на копиях баз. Убедитесь, что документы Отчет о розничных продажах и Поступление товаров проводятся в БП 3.0 без ошибок и корректно заполняют счета учета. Только после сверки остатков в обеих базах переход можно считать завершенным.