Как перенести данные в идентичную конфигурацию 1С 7.7 по выбранным счетам и субконто

Программист 1С v7.7 Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

Метод 1: Копирование базы с последующей очисткой

Это один из самых безопасных и простых способов, если объем нужных данных сопоставим с общим объемом базы. Разберем этот алгоритм по шагам:

  1. Создадим полную копию текущей информационной базы (папки с файлами .dbf или SQL-базы).
  2. В созданной копии воспользуемся обработками для групповой пометки объектов на удаление.
  3. Проанализируем ситуацию: нам нужно оставить только те документы, которые делают проводки по целевым счетам. Для этого можно написать простую обработку, которая перебирает операции и помечает на удаление те документы, чьи проводки не соответствуют условию.
  4. После пометки выполним стандартную процедуру Удаление помеченных объектов.

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

Метод 2: Использование стандартной обработки свертки базы (WRAP.ert)

Если задача заключается в переносе только остатков по конкретным счетам, проанализируем возможности стандартной обработки WRAP.ert. Она предназначена для свертки базы на определенную дату.

Рассмотрим, как адаптировать этот процесс:

  1. Запустим WRAP.ert в копии базы. В результате программа создаст документы Операция (ввод остатков), где каждая проводка соответствует остатку по конкретному счету.
  2. После завершения свертки мы увидим список операций. Теперь достаточно вручную или программно удалить те операции, которые относятся к «ненужным» счетам.
  3. Все первичные документы, существовавшие до даты свертки, будут удалены, а в базе останутся только «чистые» остатки по выбранной аналитике.

Метод 3: Универсальные обработки выгрузки (universal.ert и аналоги)

Для платформы 7.7 существуют мощные инструменты, такие как universal.ert или universam.ert. Эти обработки позволяют выгружать объекты (справочники, документы) в файл формата XML или текстовый файл с применением произвольных фильтров.

Выясним причину популярности этого метода: он позволяет выбрать конкретные типы документов за период. Чтобы отобрать документы только по нужным счетам, в таких обработках часто можно прописать условие на языке 1С. Пример логики фильтрации может выглядеть так:


// Пример логики для фильтрации в цикле обработки
Операция = СоздатьОбъект("Операция");
Если Операция.НайтиОперацию(ДокументОбъект) = 1 Тогда
    Операция.ВыбратьПроводки();
    Пока Операция.ПолучитьПроводку() = 1 Цикл
        Если (Операция.Дебет.Счет = НужныйСчет) Или (Операция.Кредит.Счет = НужныйСчет) Тогда
            // Помечаем документ для выгрузки
            ФлагВыгружать = 1;
            Прервать;
        КонецЕсли;
    КонецЦикла;
КонецЕсли;

Метод 4: Перенос данных через технологию OLE (COM-соединение)

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

Разберем пример создания такого подключения:


V7 = СоздатьОбъект("V77.Application");
Открыта = V7.Initialize(V7.RMTrade, "/d""C:\Bases\SourceBase"" /nAdmin /pPassword", "NO_SPLASH_SHOW");
Если Открыта = 0 Тогда
    Предупреждение("Не удалось подключиться к базе-источнику!");
    Возврат;
КонецЕсли;

// Теперь можно перебирать объекты в источнике и создавать их в текущей базе
ДокИсточник = V7.CreateObject("Документ.ПриходнаяНакладная");
// ... логика фильтрации по счетам и копирования данных ...

При использовании OLE важно помнить о сопоставлении объектов. В идентичных конфигурациях лучше всего проводить поиск по внутреннему идентификатору ЗначениеВСтрокуВнутр(), чтобы избежать дублирования справочников.

Метод 5: Конвертация данных 2.0/2.1

Это самый профессиональный подход. Несмотря на то, что «Конвертация данных» чаще ассоциируется с версией 8, она прекрасно работает с 7.7. Мы создаем правила обмена (ПВД), где в ПВД «Перед выгрузкой» пишем алгоритм, проверяющий проводки документа. Если документ не содержит нужного счета, мы устанавливаем Отказ = 1.

Преимущества данного способа:

  1. Автоматическая поддержка ссылочной целостности. Если выгружается проводка по счету 60, система сама «вытянет» из базы контрагента и договор.
  2. Возможность тонкой настройки сопоставления объектов.
  3. Высокая скорость работы через XML-формат.

Важные рекомендации при переносе

Проанализируем ключевые моменты, которые нельзя упускать из виду:

Таким образом, для разового переноса небольшого объема данных лучше всего подойдет метод копирования и очистки. Если же требуется регулярный или сложный выборочный перенос, стоит потратить время на настройку правил в Конвертации данных или использование обработки universal.ert.

← На главную