Как перенести остатки товаров из 1С:Бухгалтерия предприятия 2.0 в 1С:Торговля и склад 7.7?

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

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

Ошибки при выборе исходных и целевых документов

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

  1. В базе-источнике (БП 2.0): Создавать документы Инвентаризация товаров на складе не требуется. Данный документ не делает самостоятельных проводок по регистрам бухгалтерии, а лишь отражает факт сверки. Кроме того, в нем не всегда содержатся корректные суммовые оценки себестоимости. Оптимальный источник данных — виртуальная таблица Остатки регистра бухгалтерии Хозрасчетный по счету 41 (и при необходимости 10) в разрезе субконто «Номенклатура» и «Склады».
  2. В целевой базе (ТиС 7.7): Документ Инвентаризация ТМЦ в типовой конфигурации не формирует движений по регистрам. Он служит исключительно основанием для ручного ввода документов оприходования или списания. Использовать его для ввода начальных сальдо категорически не рекомендуется.

Для корректного отражения складских остатков в 1С:Торговля и склад 7.7 предназначен специальный документ — «Ввод остатков ТМЦ».

Особенности структуры данных и партионного учета в ТиС 7.7

Рассмотрим, как документ Ввод остатков ТМЦ влияет на учетные регистры платформы 7.7:

  1. Движения по регистрам: При проведении документ делает движения по регистрам ОстаткиТМЦ (отвечает за количественный учет на складах) и ПартииНаличие (отвечает за суммовой учет и расчет себестоимости списания).
  2. Автоматическое создание партий: При проведении документа платформа 7.7 автоматически создает подчиненные элементы справочника Партии со статусом остаточной партии. Программно генерировать партии вручную не нужно, однако в табличную часть документа обязательно необходимо передавать сумму (себестоимость). Если передать нулевую сумму, партии зафиксируются с нулевой себестоимостью, что приведет к искажению финансового результата при дальнейшей отгрузке.
  3. Справочник единиц измерения: Обратим внимание на принципиальное отличие архитектуры 7.7 от 8.x. В ТиС 7.7 единицы измерения хранятся не просто ссылкой на классификатор ОКЕИ, а в отдельном подчиненном справочнике Единицы. Если при переносе создается новая номенклатура, необходимо обязательно программно создать элемент подчиненного справочника Единицы и назначить его в реквизиты номенклатуры БазоваяЕдиница, ОсновнаяЕдиница и ЕдиницаДляОтчетов.

Способ 1: Перенос через промежуточный файл (DBF или текст)

Это наиболее надежный и быстрый способ обмена между «восьмеркой» и «семеркой», исключающий падения по памяти и ошибки согласования COM-библиотек.

Разберем по шагам логику выгрузки из БП 2.0:

  1. Получаем остатки товаров запросом к регистру Хозрасчетный.Остатки.
  2. Выгружаем полученную таблицу значений в плоский файл DBF с помощью встроенного объекта XBase.

Посмотрим на пример формирования запроса к остаткам в 1С 8:


Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|	ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
|	ХозрасчетныйОстатки.Субконто1.Код КАК Код,
|	ХозрасчетныйОстатки.Субконто1.Наименование КАК Наименование,
|	ХозрасчетныйОстатки.Субконто1.Артикул КАК Артикул,
|	ХозрасчетныйОстатки.Субконто2 КАК Склад,
|	ХозрасчетныйОстатки.КоличествоОстаток КАК Количество,
|	ХозрасчетныйОстатки.СуммаОстаток КАК Сумма
|ИЗ
|	РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет41), , ) КАК ХозрасчетныйОстатки";

Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Счет41", ПланыСчетов.Хозрасчетный.Товары);
Результат = Запрос.Выполнить().Выгрузить();

В ТиС 7.7 пишем компактную внешнюю обработку (ERT), которая считывает сформированный DBF-файл через объект XBase, находит соответствующую номенклатуру (по коду или артикулу) и заполняет строки документа Ввод остатков ТМЦ.

Способ 2: Использование конфигурации «Конвертация данных» (КД 2.1)

Для настройки полноценного переноса сопоставлений справочников и создания документов можно использовать конфигурацию «Конвертация данных» редакции 2.1 (рекомендуется релиз 2.1.8.2):

  1. Выгружаем метаданные из БП 2.0 обработкой MD82Exp.epf и метаданные из ТиС 7.7 обработкой MD77Exp.ert.
  2. Загружаем описания структур в конфигурацию КД 2.1 и настраиваем правила конвертации объектов (ПКО).
  3. Настраиваем ПКО для документа ВводОстатковТМЦ, сопоставив табличную часть и реквизиты остатков. В ПКО номенклатуры обязательно настраиваем поиск по Код или Артикул (так как GUID платформы 8.x в 7.7 отсутствует).
  4. Выгружаем данные из БП 2.0 стандартной обработкой в формат XML, после чего загружаем файл в ТиС 7.7 через обработку V77Exp.ert.

Важное ограничение: Компонент парсинга XML в 1С 7.7 крайне чувствителен к оперативной памяти 32-битного процесса. Если файл выгрузки превышает 100–150 МБ, платформа может завершить работу с ошибкой нехватки памяти. В таких случаях выгрузку следует производить небольшими порциями (по отдельным складам или группам номенклатуры).

Способ 3: Прямое подключение через OLE (COM)

Перенос также можно осуществить напрямую из БП 2.0, подключившись к базе 7.7 через COM-объект V77.Application или V77S.Application. Однако у этого способа есть существенные системные ограничения:

  1. Разрядность клиента: Платформа 7.7 является строго 32-разрядной. Подключение через OLE завершится сбоем, если БП 2.0 запущена в 64-разрядном клиенте или выгрузка выполняется на стороне 64-разрядного сервера 1С. Для работы потребуется обязательный запуск 32-битного толстого клиента «восьмерки».
  2. Производительность: Механизм OLE в 1С 7.7 работает медленно при обработке больших массивов данных и подвержен утечкам памяти при создании тысяч строк в рамках одного соединения.

Поэтому наиболее практичным и отказоустойчивым решением для переноса остатков из БП 2.0 в ТиС 7.7 остается выгрузка в плоский файл (DBF/CSV) с последующим заполнением документа Ввод остатков ТМЦ.

← На главную