Как перенести начальные остатки из УТ 11 в БП 3.0?

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

При запуске совместной работы конфигураций «1С:Управление торговлей 11» и «1С:Бухгалтерия предприятия 3.0» специалисты регулярно сталкиваются с неожиданным поведением типовой синхронизации: документы ввода начальных остатков, заведенные в УТ 11, не выгружаются в бухгалтерскую программу через универсальный формат EnterpriseData. Разберем архитектурные причины такого поведения платформы и подробно рассмотрим проверенные практические способы переноса входящего сальдо.

Почему типовой обмен EnterpriseData не переносит остатки из УТ в БП

Проанализируем устройство модуля МенеджерОбменаЧерезУниверсальныйФормат в обеих конфигурациях. В формате обмена EnterpriseData типы данных для передачи остатков предусмотрены, однако в конфигурации УТ 11 правила обработки данных (ПОД) для документов ввода остатков описаны исключительно на прием, а правила отправки отсутствуют. На стороне БП 3.0 ситуация аналогична: обработчики загрузки остатков через типовой механизм обмена не реализованы.

Данная особенность подтверждается официальной позицией разработчиков фирмы «1С»: типовой перенос документов ввода начальных остатков по маршруту УТ 11 → БП 3.0 не поддерживается. Разработчики исходят из следующей методологии учета:

  1. Различие учетных моделей: Конфигурация УТ 11 работает в оперативном и управленческом контуре. В ней отсутствуют специфические реквизиты, критически важные для бухгалтерского учета: счета учета БУ/НУ, субконто, способы списания, виды договоров, а также аналитика раздельного учета НДС (способы учета НДС, реквизиты счетов-фактур для формирования записей книг покупок и продаж).
  2. Приоритет регламентированного учета: По замыслу методистов, входящие остатки считаются юридически первичными в регламентированном учете. Базовый сценарий предполагает заведение сальдо непосредственно в БП 3.0 (или перенос из предыдущей бухгалтерской системы), после чего данные штатным образом мигрируют в управленческую базу (УТ 11, КА 2 или 1С:ERP).

Выясним, какими практичеcкими путями можно решить задачу ввода остатков при реальном внедрении связки программ.

Способ 1. Изменение направления переноса: ввод в БП 3.0 с выгрузкой в УТ 11

Рассмотрим рекомендованный методически правильный сценарий. Если база БП 3.0 запускается одновременно с УТ 11, наиболее надежно завести остатки сначала на стороне бухгалтерии, а затем перенести их в торговую систему.

  1. В программе «1С:Бухгалтерия предприятия» формируем документы через единую обработку ПомощникВводаНачальныхОстатков по всем требуемым счетам (01, 10, 41, 50, 51, 60, 62 и т.д.). Вся бухгалтерская и налоговая аналитика при этом заполняется корректно под контролем бухгалтера.
  2. В программе «1С:Управление торговлей 11» открываем раздел администрирования и запускаем «Помощник перехода с 1С:Бухгалтерии предприятия».
  3. Подключаемся к базе БП 3.0 напрямую через COM-соединение или выгружаем данные в промежуточный файл. Помощник автоматически трансформирует бухгалтерские проводки и остатки по счетам 41 и 60/62 в документы ВводОстатков с соответствующими типами операций (собственные товары, расчеты с поставщиками, расчеты с клиентами).

Способ 2. Типовая загрузка табличных частей из Excel или буфера обмена в БП 3.0

Если остатки номенклатуры уже введены и выверены в УТ 11, и переносить их повторно вручную трудозатратно, применим штатную возможность табличных частей БП 3.0:

  1. В конфигурации УТ 11 строим стандартный отчет «Ведомость по товарам на складах» или «Себестоимость товаров предприятий» на дату ввода остатков. Настраиваем группировки: номенклатура, характеристика, склад, количество, стоимость (себестоимость).
  2. Сохраняем отчет в формате таблицы Excel или копируем строки в буфер обмена.
  3. В программе БП 3.0 создаем документ ВводНачальныхОстатков по счету 41.01 («Товары на складах») или 10.01.
  4. В командной панели табличной части документа нажимаем кнопку «Загрузить» (загрузка из внешнего файла).
  5. Сопоставляем колонки файла с реквизитами документа: Номенклатура, Количество, Сумма, Склад. Выполняем автоматическую синхронизацию номенклатурных позиций по наименованию или артикулу.

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

Способ 3. Использование документов товародвижения вместо ввода остатков

Посмотрим на практический прием, позволяющий задействовать уже существующий типовой обмен EnterpriseData без изменения конфигураций:

  1. В базе УТ 11 вместо документа ВводОстатков регистрируем остатки документом ОприходованиеИзлишковТоваров (или документом ПриобретениеТоваровУслуг от специально созданного технического контрагента).
  2. Данные документы полностью поддерживаются форматом обмена и при очередной синхронизации штатно выгружаются в БП 3.0, где создаются документы ОприходованиеТоваров или ПоступлениеТоваровУслуг.
  3. В БП 3.0 оприходование по умолчанию формирует проводку Дт 41.01 — Кт 91.01. Чтобы привести баланс к правильной методологии и исключить искажение финансовых результатов, создаем документ ОперацияБух (операция, введенная вручную) и переносим обороты со счета 91.01 на вспомогательный счет 00.

Способ 4. Перенос данных через прямое COM-соединение или внешнюю обработку

Когда требуется автоматизированный перенос большого объема специфических данных (партии, серии, ГТД, разрезы договоров), оптимальным решением для программиста является написание разовой обработки прямого переноса через V83.COMConnector.

Разберем логику извлечения данных из УТ 11 и заполнения документа ввода остатков в БП 3.0:


// Подключение к базе-источнику (УТ 11)
V83COM = Новый COMОбъект("V83.COMConnector");
СтрокаПодключения = "Srvr=""Server1C"";Ref=""trade_base"";Usr=""Admin"";Pwd=""pass"";";
БазаУТ = V83COM.Connect(СтрокаПодключения);

// Выборка остатков товаров из регистра накопления или документа ввода остатков УТ
ЗапросКИсточнику = БазаУТ.NewObject("Запрос");
ЗапросКИсточнику.Текст = 
    "ВЫБРАТЬ
    |	ВводОстатков.Номенклатура.Наименование КАК НоменклатураНаименование,
    |	ВводОстатков.Номенклатура.Артикул КАК Артикул,
    |	ВводОстатков.Количество КАК Количество,
    |	ВводОстатков.Сумма КАК Сумма
    |ИЗ
    |	Документ.ВводОстатков.Товары КАК ВводОстатков
    |ГДЕ
    |	ВводОстатков.Ссылка.Проведен = ИСТИНА";

Выборка = ЗапросКИсточнику.Выполнить().Выбрать();

// Создание документа в базе-приемнике (БП 3.0)
ДокОстатков = Документы.ВводНачальныхОстатков.СоздатьДокумент();
ДокОстатков.Дата = Дата("20231231235959");
ДокОстатков.Организация = ВыбраннаяОрганизация;
ДокОстатков.РазделУчета = Перечисления.РазделыУчетаДляВводаОстатков.Товары;

Пока Выборка.Следующий() Цикл
    СтрокаТЧ = ДокОстатков.Товары.Добавить();
    
    // Поиск номенклатуры в БП по артикулу или наименованию
    НайденнаяНоменклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Выборка.Артикул);
    Если НЕ ЗначениеЗаполнено(НайденнаяНоменклатура) Тогда
        НайденнаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.НоменклатураНаименование);
    КонецЕсли;
    
    СтрокаТЧ.Номенклатура = НайденнаяНоменклатура;
    СтрокаТЧ.Количество = Выборка.Количество;
    СтрокаТЧ.Стоимость = Выборка.Сумма;
    СтрокаТЧ.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;
КонецЦикла;

ДокОстатков.Записать(РежимЗаписиДокумента.Запись);

Рассмотренный подход через внешнюю обработку или разовые правила «1С:Конвертация данных 2.0» существенно экономит время по сравнению с попытками доработки правил универсального формата EnterpriseData с нуля, так как операция ввода начального сальдо является однократной и не требует регулярной синхронизации в дальнейшем.

← На главную