Как загрузить проводки в регистр Хозрасчетный документа ОперацияБух через КД 2.1

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

Перенос данных в конфигурацию 1С:Бухгалтерия предприятия 3.0 (БП 3.0) с использованием Конвертации данных 2.1 (КД 2.1) часто сопровождается трудностями при работе с ручными операциями. Одной из самых частых проблем является «исчезновение» регистра бухгалтерии Хозрасчетный из списка доступных таблиц в приемнике. В этой статье мы подробно разберем, как сделать регистр видимым, как правильно настроить правила конвертации свойств и какие программные обработчики необходимы для того, чтобы проводки не просто загрузились, но и корректно отображались в интерфейсе программы.

Решение проблемы видимости таблицы Хозрасчетный

Часто программисты при создании Правил Конвертации Объектов (ПКО) обнаруживают, что в базе-приемнике невозможно выбрать таблицу движений Хозрасчетный. Это происходит из-за того, что при стандартной выгрузке структуры конфигурации (с помощью обработки MD83Exp.epf) по умолчанию могут быть не выбраны соответствующие объекты.

Разберем по шагам, как исправить ситуацию:

  1. Откроем базу-приемник (БП 3.0) в режиме 1С:Предприятие.
  2. Запустим обработку «Выгрузка структуры конфигурации» (обычно это MD83Exp.epf для платформы 8.3).
  3. В окне настройки выгрузки обязательно найдем и установим флаг «Выгружать движения». Если этот флаг не будет установлен, КД 2.1 увидит только метаданные самих документов (их реквизиты и табличные части), но проигнорирует регистры, которые эти документы двигают.
  4. Выгрузим файл структуры (xml).
  5. Вернемся в конфигурацию Конвертация данных 2.1 и обновим описание конфигурации-приемника, загрузив новый файл.

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

Настройка ПКО для документа ОперацияБух

Документ ОперацияБух в БП 3.0 является специфическим объектом. По сути, это пустая «шапка», которая служит контейнером для записей регистра. Чтобы загрузка прошла успешно, рассмотрим особенности настройки ПКО:

Во-первых, важно обеспечить корректное заполнение признака ручной корректировки. В БП 3.0 за это отвечает реквизит СпособЗаполнения или аналогичные механизмы управления движениями. Если не пометить документ как заполненный вручную, типовые механизмы конфигурации могут попытаться «пересчитать» документ при открытии или проведении, что приведет к очистке ваших загруженных проводок.

Во-вторых, в ПКО документа в обработчике «После загрузки» необходимо принудительно установить флаг записи движений. Пропишем следующий код:


Объект.Движения.Хозрасчетный.Записывать = Истина;
// Если документ должен быть сразу проведен
Объект.Записать(РежимЗаписиДокумента.Запись); 

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

Работа с субконто: коллекция и аналитика

Самый трудоемкий этап — перенос аналитики (субконто). В регистре Хозрасчетный субконто хранятся не как отдельные поля Субконто1, Субконто2, а как коллекция (ExtraDimensions). В КД 2.1 для этого предусмотрены специальные механизмы.

Разберем алгоритм настройки Правил Конвертации Свойств (ПКС) для субконто:

Рассмотрим пример кода в обработчике Перед выгрузкой свойства Субконто:


// Пример программного заполнения вида субконто
Значение = Источник.Контрагент;
ИмяВидаСубконто = "Контрагенты";

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

Количественный, валютный и налоговый учет

При переносе проводок недостаточно просто перенести сумму. Выясним причину возможных расхождений в отчетах после загрузки: для быстрого контроля результата можно автоматически сравнить бухгалтерские и налоговые проводки между базами.

1. Количественный учет: Если на счете в БП 3.0 установлен признак «Количественный», необходимо обязательно заполнять ресурс КоличествоДт или КоличествоКт. Если данные в источнике отсутствуют, а счет в приемнике требует количества, отчеты типа «Оборотно-сальдовая ведомость» могут отображать некорректные остатки.

2. Валютный учет: При переносе валютных операций необходимо передавать не только ВалютнаяСуммаДт/Кт, но и ссылку на справочник Валюты. В ПКС для регистра Хозрасчетный убедимся, что сопоставлены поля ВалютаДт и ВалютаКт.

3. Налоговый учет (НУ): В БП 3.0 бухгалтерский и налоговый учет ведутся на одном регистре Хозрасчетный. Для корректного закрытия месяца и формирования декларации по налогу на прибыль нужно заполнять ресурсы СуммаНУ_Дт и СуммаНУ_Кт. Проанализируем ситуацию: если вы переносите данные из системы, где нет разделения на БУ и НУ, рекомендуется в правилах приравнять налоговую сумму к бухгалтерской, если иное не предусмотрено методологией перехода.

Использование ПВД для движений регистра

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

В КД 2.1 можно создать ПВД с типом объекта РегистрБухгалтерииЗапись.Хозрасчетный. В этом случае:

  1. Система будет выгружать записи регистра напрямую.
  2. Для каждой группы записей автоматически будет создан объект-регистратор (в нашем случае ОперацияБух).
  3. Это позволяет более гибко управлять памятью сервера при выгрузке, так как не требуется держать в оперативной памяти тяжелые объекты документов со всеми их коллекциями.

Типовые ошибки и советы

Проанализируем основные «грабли», на которые наступают разработчики:

Несоответствие дат: Убедимся, что Период в записях регистра строго совпадает с Датой документа ОперацияБух. Если Период будет отличаться хотя бы на секунду, в интерфейсе 1С такие проводки могут не отобразиться в карточке документа, хотя физически будут присутствовать в базе.

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

Использование виртуальных полей: Если структура источника совсем не похожа на 1С (например, данные из SQL-базы), активно используйте «Виртуальные поля» в ПКС. Выгружайте в них произвольные данные, а в обработчике При загрузке программно распределяйте их по субконто и измерениям регистра, используя встроенный язык 1С.

Таким образом, успех загрузки в ОперацияБух зависит от трех факторов: правильной выгрузки структуры с движениями, программной установки флага Записывать = Истина и тщательной настройки аналитики (субконто) с учетом особенностей плана счетов БП 3.0.

← На главную