Как перенести данные из 1С:Бухгалтерии 7.7 в УПП 1.3?

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Переход с устаревшей платформы 1С:Предприятие 7.7 на комплексное решение 1С:Управление производственным предприятием 1.3 (УПП) — это масштабная задача, требующая от разработчика и аналитика глубокого понимания архитектурных различий обеих систем. Часто пользователи хотят перенести не только справочники и начальные остатки, но и все оперативные документы за предыдущие периоды. В этой статье мы подробно разберем, как устроен этот процесс, с какими сложностями вы можете столкнуться и какие инструменты помогут решить задачу наиболее эффективно.

Архитектурный барьер: почему перенос документов "как есть" невозможен?

Прежде чем приступать к технической реализации, давайте выясним ключевую причину, по которой стандартные правила обмена не поддерживают перенос документов из «семерки» в УПП. Дело в кардинальном различии логики учета:

  1. В «1С:Бухгалтерии 7.7» учет ориентирован на проводку. Основной регистр — это журнал проводок. Документ делает прямые записи по бухгалтерским счетам и субконто.
  2. В «1С:УПП 1.3» вся аналитика сосредоточена в регистрах накопления и сведений (партионный учет, учет затрат РАУЗ, взаиморасчеты по договорам и заказам, учет НДС). Бухгалтерская проводка в УПП является лишь вторичным отражением движений по оперативным регистрам.

Если попытаться перенести документы (например, реализации или поступления товаров) напрямую, они просто не смогут провестись в УПП. Для их корректного проведения потребуется заполнить множество дополнительных реквизитов, которых в 7.7 попросту не существовало: налоговые назначения, детальные спецификации, аналитика распределения затрат, настройки отражения в учете и параметры партионного учета. Без этого закрытие месяца и расчет себестоимости в УПП 1.3 превратятся в бесконечную череду ошибок.

Шаг 1. Перенос справочников и остатков с помощью типовых правил

Для стандартного перехода фирма «1С» разработала готовые правила конвертации. Рассмотрим, где их найти и как правильно использовать. Правила поставляются в составе дистрибутивов или обновлений на дисках ИТС (или в личном кабинете портала 1С).

Вам понадобится архив ACC77_KA11_UPP13.zip, который находится по примерному пути \1CITS\EXE\cnv77_80\UPP. Этот пакет предназначен для перехода с конфигурации «Бухгалтерский учет» редакции 4.5 на «Управление производственным предприятием» редакции 1.3.

Рассмотрим пошагово порядок работы со стандартным переносом:

  1. Подготовка базы-источника 7.7: убедитесь, что конфигурация обновлена до актуального релиза. Обязательно выполните пересчет бухгалтерских итогов через меню Операции -> Управление бухгалтерскими итогами. Рекомендуется провести тестирование и исправление информационной базы.
  2. Свертка базы 7.7: крайне желательно сделать свертку на 31 декабря предыдущего года. Это позволит избавиться от архивных данных и значительно уменьшит объем XML-файла выгрузки. Для этого используйте стандартные обработки свертки WRAP.EFD и удаления помеченных объектов ObjDel.ert.
  3. Подготовка данных в 7.7: распакуйте архив с правилами. Скопируйте обработку ПодготовкаДанныхДляВыгрузки.ert в каталог вашей базы 7.7 (в папку ExtForms) и запустите ее через Файл -> Открыть. Она проверит корректность заполнения субконто и подготовит служебные таблицы.
  4. Выгрузка данных: запустите обработку выгрузки V77Exp.ert, выберите файл правил конвертации ACC77_KA11_UPP13.xml, укажите период, за который выгружаются остатки (как правило, на конец года), и сформируйте файл выгрузки данных (XML).
  5. Загрузка в УПП 1.3: откройте вашу базу УПП. Перейдите в меню Сервис -> Прочие обмены данными -> Универсальный обмен данными в формате XML. Выберите вкладку «Загрузка данных», укажите путь к вашему XML-файлу и нажмите кнопку «Загрузить данные».

Важное замечание: в результате загрузки в УПП будут созданы заполненные справочники и документы ввода начальных остатков (например, остатки по ОС, НМА и материалам в эксплуатации). Никакие операционные документы прошлых периодов при этом перенесены не будут — это штатное поведение правил.

Шаг 2. Реализация переноса документов: три альтернативных варианта

Если бизнес-требования жестко предписывают перенести именно документы за текущий или прошлый год, стандартными средствами не обойтись. Разберем три пути решения этой задачи.

Вариант А. Разработка собственных правил в «1С:Конвертация данных 2.1»

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

Для каждого документа вам придется:

Вариант Б. Перенос через COM-соединение (OLE)

Если вам нужно перенести ограниченный объем документов быстро и без изучения «Конвертации данных», можно написать скрипт прямого подключения из УПП 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.НомерДок + ": " + ОписаниеОшибки());
        КонецПопытки;
    КонецЦикла;
    
    Сообщить("Перенос документов завершен!");
КонецПроцедуры

Вариант В. Двухэтапный перенос через транзитную базу БП 3.0

Существует еще один хитрый, но методологически более легкий способ. Перенос данных напрямую из 1С 7.7 в УПП 1.3 давно не обновляется вендором в части переноса документов. Однако перенос из 7.7 в современную Бухгалтерию Предприятия 3.0 (БП 3.0) поддерживается и регулярно обновляется фирмой «1С».

Вы можете использовать следующую схему транзита:

  1. Выполнить стандартный перенос данных из Бухгалтерии 7.7 в Бухгалтерию 8 (БП 3.0). Правила для этого перехода отлажены до мелочей и умеют переносить документы за выбранный период.
  2. Настроить синхронизацию или перенос данных уже из БП 3.0 в УПП 1.3. Поскольку обе базы находятся на платформе «1С:Предприятие 8», переносить документы между ними в разы проще с помощью универсальных обменов или «Конвертации данных».

Рекомендации по сверке данных

После завершения процесса переноса (независимо от выбранного метода) обязательно выполните сверку данных. Рассмотрите и сопоставьте следующие отчеты в базах источника и приемника:

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

← На главную