Переход с устаревшей платформы 1С:Предприятие 7.7 на комплексное решение 1С:Управление производственным предприятием 1.3 (УПП) — это масштабная задача, требующая от разработчика и аналитика глубокого понимания архитектурных различий обеих систем. Часто пользователи хотят перенести не только справочники и начальные остатки, но и все оперативные документы за предыдущие периоды. В этой статье мы подробно разберем, как устроен этот процесс, с какими сложностями вы можете столкнуться и какие инструменты помогут решить задачу наиболее эффективно.
Прежде чем приступать к технической реализации, давайте выясним ключевую причину, по которой стандартные правила обмена не поддерживают перенос документов из «семерки» в УПП. Дело в кардинальном различии логики учета:
Если попытаться перенести документы (например, реализации или поступления товаров) напрямую, они просто не смогут провестись в УПП. Для их корректного проведения потребуется заполнить множество дополнительных реквизитов, которых в 7.7 попросту не существовало: налоговые назначения, детальные спецификации, аналитика распределения затрат, настройки отражения в учете и параметры партионного учета. Без этого закрытие месяца и расчет себестоимости в УПП 1.3 превратятся в бесконечную череду ошибок.
Для стандартного перехода фирма «1С» разработала готовые правила конвертации. Рассмотрим, где их найти и как правильно использовать. Правила поставляются в составе дистрибутивов или обновлений на дисках ИТС (или в личном кабинете портала 1С).
Вам понадобится архив ACC77_KA11_UPP13.zip, который находится по примерному пути \1CITS\EXE\cnv77_80\UPP. Этот пакет предназначен для перехода с конфигурации «Бухгалтерский учет» редакции 4.5 на «Управление производственным предприятием» редакции 1.3.
Рассмотрим пошагово порядок работы со стандартным переносом:
Операции -> Управление бухгалтерскими итогами. Рекомендуется провести тестирование и исправление информационной базы.WRAP.EFD и удаления помеченных объектов ObjDel.ert.ПодготовкаДанныхДляВыгрузки.ert в каталог вашей базы 7.7 (в папку ExtForms) и запустите ее через Файл -> Открыть. Она проверит корректность заполнения субконто и подготовит служебные таблицы.V77Exp.ert, выберите файл правил конвертации ACC77_KA11_UPP13.xml, укажите период, за который выгружаются остатки (как правило, на конец года), и сформируйте файл выгрузки данных (XML).Сервис -> Прочие обмены данными -> Универсальный обмен данными в формате XML. Выберите вкладку «Загрузка данных», укажите путь к вашему XML-файлу и нажмите кнопку «Загрузить данные».Важное замечание: в результате загрузки в УПП будут созданы заполненные справочники и документы ввода начальных остатков (например, остатки по ОС, НМА и материалам в эксплуатации). Никакие операционные документы прошлых периодов при этом перенесены не будут — это штатное поведение правил.
Если бизнес-требования жестко предписывают перенести именно документы за текущий или прошлый год, стандартными средствами не обойтись. Разберем три пути решения этой задачи.
Это самый гибкий и методологически верный способ. Выгрузив метаданные обеих конфигураций, вы можете настроить топологию соответствия объектов.
Для каждого документа вам придется:
Если вам нужно перенести ограниченный объем документов быстро и без изучения «Конвертации данных», можно написать скрипт прямого подключения из УПП 1.3 к базе 1С 7.7. Для этого используется OLE-соединение.
Однако здесь возникает проблема сопоставления объектов. В 1С 7.7 нет понятия GUID (уникального идентификатора), там объекты идентифицируются по внутреннему коду или внутреннему представлению. Программисты решают эту проблему путем доработки глобального модуля 1С 7.7, чтобы преобразовывать системную строку ЗначениеВСтрокуВнутр в эквивалент GUID для 1С 8.
Рассмотрим пример кода в глобальном модуле 1С 7.7 для получения уникального идентификатора:
Функция глПолучитьИДОбъекта(Объект) Экспорт
Если ПустоеЗначение(Объект) = 1 Тогда
Возврат "";
КонецЕсли;
ВнутрСтрока = ЗначениеВСтрокуВнутр(Объект);
// Вырезаем уникальную часть ИД из системного представления
ИД = Сред(ВнутрСтрока, Найти(ВнутрСтрока, " ") + 5, 13);
Возврат СокрЛП(ИД);
КонецФункции
А теперь посмотрим, как может выглядеть процедура подключения к базе 7.7 по OLE и загрузки документов поступления непосредственно в коде УПП 1.3:
Процедура ЗагрузитьДокументыИз77()
// Инициализация подключения
База77 = Новый COMОбъект("V77.Application");
КаталогБазы = "C:\Bases\Buh77\";
Пользователь = "Администратор";
Пароль = "12345";
ПараметрыЗапуска = "/D""" + КаталогБазы + """ /N""" + Пользователь + """ /P""" + Пароль + """";
РезультатПодключения = База77.Initialize(База77.RMTrade, ПараметрыЗапуска, "NO_SPLASH_SHOW");
Если Не РезультатПодключения Тогда
Предупреждение("Не удалось подключиться к базе 1С 7.7!");
Возврат;
КонецЕсли;
// Выборка документов поступления за период
Выборка77 = База77.CreateObject("Документ.ПоступлениеМатериалов");
Выборка77.ВыбратьДокументы(НачалоДня(РабочаяДата), КонецДня(РабочаяДата));
Пока Выборка77.ПолучитьДокумент() = 1 Цикл
// Создаем аналогичный документ в УПП 1.3
НовыйДокумент = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
НовыйДокумент.Дата = Выборка77.ДатаДок;
// Переносим контрагента (требуется предварительный поиск по коду или ИНН)
КодКонтрагента77 = Выборка77.Субконто(1).Код;
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоКоду(КодКонтрагента77);
Если Не НайденныйКонтрагент.Пустая() Тогда
НовыйДокумент.Контрагент = НайденныйКонтрагент;
НовыйДокумент.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.ОсновнойДоговор(НайденныйКонтрагент);
КонецЕсли;
// Заполняем обязательные реквизиты УПП
НовыйДокумент.ОтражатьВУправленческомУчете = Истина;
НовыйДокумент.ОтражатьВБухгалтерскомУчете = Истина;
НовыйДокумент.ОтражатьВНалоговомУчете = Истина;
НовыйДокумент.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "7701010101");
// Записываем документ без проведения для ручной проверки
Попытка
НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);
Исключение
Сообщить("Ошибка записи документа " + Выборка77.НомерДок + ": " + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Сообщить("Перенос документов завершен!");
КонецПроцедуры
Существует еще один хитрый, но методологически более легкий способ. Перенос данных напрямую из 1С 7.7 в УПП 1.3 давно не обновляется вендором в части переноса документов. Однако перенос из 7.7 в современную Бухгалтерию Предприятия 3.0 (БП 3.0) поддерживается и регулярно обновляется фирмой «1С».
Вы можете использовать следующую схему транзита:
После завершения процесса переноса (независимо от выбранного метода) обязательно выполните сверку данных. Рассмотрите и сопоставьте следующие отчеты в базах источника и приемника:
Помните, что перенос документов — это всегда уникальный проект, который требует индивидуальной настройки аналитики под особенности вашего предприятия. Рассмотренные методики помогут вам выбрать оптимальный путь перехода и избежать типичных ошибок.