Как выгрузить документ Пересортица товаров из УТ в БП 3.0 как Операцию Бух с заполнением субконто и количества

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

При интеграции 1С:Управление торговлей и 1С:Бухгалтерия предприятия 3.0 (БП 3.0) часто возникает задача выгрузки управленческих документов в виде бухгалтерских проводок (документ ОперацияБух). Одной из самых трудоемких задач здесь является перенос документа Пересортица товаров, так как в бухгалтерской программе для него нет прямого аналога, а ручные операции требуют детального заполнения регистров бухгалтерии. Рассмотрим подробно, как решить эту задачу с помощью Конвертации данных 2.0 (КД 2.0).

Анализ проблемы и подготовительный этап

Основная сложность заключается в том, что ОперацияБух в БП 3.0 — это документ-контейнер для записей регистра бухгалтерии Хозрасчетный. Если просто перенести шапку документа, проводки не появятся. Если переносить проводки через ВходящиеДанные, часто возникают проблемы с незаполненными субконто или количеством. Выясним причину: в КД 2.0 для корректной выгрузки движений необходимо, чтобы в правилах были актуальные метаданные регистра бухгалтерии со всеми его измерениями и ресурсами.

Важно: Перед началом работы обязательно обновите структуру метаданных в базе Конвертация данных. При выгрузке структуры из БП 3.0 (приемника) убедитесь, что выбрана галочка "Регистры бухгалтерии" и конкретно регистр Хозрасчетный. Без этого вы не сможете настроить правила для субконто.

Шаг 1: Настройка ПКО для документа Пересортица

Создадим Правило конвертации объекта (ПКО) для документа. Источником будет ДокументСсылка.ПересортицаТоваров, приемником — ДокументСсылка.ОперацияБух. Основную логику формирования проводок мы опишем в обработчике ПередВыгрузкой самого ПКО. Нам нужно сформировать Таблицу Значений (ТЗ), которая имитирует структуру регистра бухгалтерии.

Проанализируем пример кода для заполнения ВходящиеДанные:


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

Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|   Пересортица.Ссылка.Дата КАК Период,
|   Пересортица.Ссылка.Организация КАК Организация,
|   \"Пересортица товаров\" КАК Содержание,
|   Пересортица.Сумма КАК Сумма,
|   Пересортица.НоменклатураОприходование КАК НомДт,
|   Пересортица.Количество КАК КолДт,
|   Пересортица.Номенклатура КАК НомКт,
|   Пересортица.Количество КАК КолКт
|ИЗ
|   Документ.ПересортицаТоваров.Товары КАК Пересортица
|ГДЕ
|   Пересортица.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    Стр = ТаблицаПроводок.Добавить();
    ЗаполнитьЗначениеСвойств(Стр, Выборка);
    Стр.СчетДт = "41.01"; // Можно передавать строкой или через ПКО счета
    Стр.СчетКт = "41.01";
    
    // Формируем структуры субконто
    СтруктураСубконтоДт = Новый Соответствие;
    СтруктураСубконтоДт.Вставить("Номенклатура", Выборка.НомДт);
    Стр.СубконтоДт = СтруктураСубконтоДт;
    
    СтруктураСубконтоКт = Новый Соответствие;
    СтруктураСубконтоКт.Вставить("Номенклатура", Выборка.НомКт);
    Стр.СубконтоКт = СтруктураСубконтоКт;
КонецЦикла;

ВходящиеДанные = Новый Структура;
ВходящиеДанные.Вставить("Хозрасчетный", ТаблицаПроводок);

Шаг 2: Настройка ПКГС для регистра Хозрасчетный

Теперь перейдем к настройке Правил конвертации групп свойств (ПКГС) внутри нашего ПКО. Найдите группу свойств, отвечающую за регистр Хозрасчетный (она появляется после загрузки метаданных регистра). Разберем по шагам настройки:

  1. Откройте настройки ПКГС для коллекции Движения.Хозрасчетный.
  2. Установите флаг "Получать из входящих данных".
  3. Внутри этой группы создайте Правила конвертации свойств (ПКС) для всех колонок вашей таблицы: Период, СчетДт, СчетКт, Сумма, КоличествоДт, КоличествоКт.
  4. Для СчетДт и СчетКт укажите ПКО ПланыСчетовСсылка.Хозрасчетный. Если вы передаете код счета строкой, в ПКО счета должен стоять поиск по коду.

Шаг 3: Перенос Субконто

Передача субконто — самый "тонкий" момент. В БП 3.0 Субконто в регистре — это не просто поле, а набор записей. Проанализируем, как правильно настроить ПКС для СубконтоДт и СубконтоКт:

Поскольку в источнике (УТ) нет типа данных ВидСубконто, мы используем строковые ключи в Соответствии (как показано в коде выше). В КД 2.0 для ПКС СубконтоДт в ПКГС регистра выполним следующие действия:

  1. Оставьте поле Источник пустым.
  2. Укажите Приемник как СубконтоДт.
  3. В обработчике ПередВыгрузкой этого ПКС можно дополнительно уточнить правила, но если вы передали Соответствие через ВходящиеДанные, система КД попытается сопоставить ключи (например, "Номенклатура") с видами субконто на указанном счете в БП 3.0.

Шаг 4: Контроль заполнения Количества

Часто программисты сталкиваются с тем, что сумма выгружается, а количество — нет. Рассмотрим причины:

  1. Признак учета на счете: В БП 3.0 на счете 41.01 должен быть включен признак "Количественный". Если он выключен в плане счетов приемника, данные просто не запишутся в регистр.
  2. Имена ресурсов: Убедитесь, что колонки в вашей ТЗ называются точно так же, как ресурсы в регистре бухгалтерии: КоличествоДт и КоличествоКт (регистр чувствителен к регистру букв).
  3. Подразделения: Если вы используете БП 3.0 КОРП, не забудьте добавить в ТЗ и ПКГС колонки ПодразделениеДт и ПодразделениеКт.

Резюме и рекомендации

Мы проанализировали процесс выгрузки пересортицы в ручную операцию и выяснили, что ключ к успеху — это использование ПКГС с флагом "Входящие данные" и передача субконто через объект Соответствие.

Совет: Если в документе много строк, формирование ТЗ в памяти может быть накладным. Однако для документа Пересортица количество строк обычно не превышает нескольких сотен, что делает этот метод оптимальным по скорости разработки и надежности. Не забывайте в ПКО документа ОперацияБух устанавливать свойство СпособЗаполнения = "Вручную", чтобы бухгалтеры могли редактировать созданные вами проводки при необходимости.

← На главную