Перенос данных в конфигурацию 1С:Бухгалтерия предприятия 3.0 (БП 3.0) с использованием Конвертации данных 2.1 (КД 2.1) часто сопровождается трудностями при работе с ручными операциями. Одной из самых частых проблем является «исчезновение» регистра бухгалтерии Хозрасчетный из списка доступных таблиц в приемнике. В этой статье мы подробно разберем, как сделать регистр видимым, как правильно настроить правила конвертации свойств и какие программные обработчики необходимы для того, чтобы проводки не просто загрузились, но и корректно отображались в интерфейсе программы.
Часто программисты при создании Правил Конвертации Объектов (ПКО) обнаруживают, что в базе-приемнике невозможно выбрать таблицу движений Хозрасчетный. Это происходит из-за того, что при стандартной выгрузке структуры конфигурации (с помощью обработки MD83Exp.epf) по умолчанию могут быть не выбраны соответствующие объекты.
Разберем по шагам, как исправить ситуацию:
MD83Exp.epf для платформы 8.3).После выполнения этих действий в списке доступных табличных частей и движений документа ОперацияБух появится искомая таблица Хозрасчетный. Проанализируем ситуацию: теперь КД 2.1 понимает, что ОперацияБух является регистратором для данного регистра, и позволяет сопоставлять данные.
Документ ОперацияБух в БП 3.0 является специфическим объектом. По сути, это пустая «шапка», которая служит контейнером для записей регистра. Чтобы загрузка прошла успешно, рассмотрим особенности настройки ПКО:
Во-первых, важно обеспечить корректное заполнение признака ручной корректировки. В БП 3.0 за это отвечает реквизит СпособЗаполнения или аналогичные механизмы управления движениями. Если не пометить документ как заполненный вручную, типовые механизмы конфигурации могут попытаться «пересчитать» документ при открытии или проведении, что приведет к очистке ваших загруженных проводок.
Во-вторых, в ПКО документа в обработчике «После загрузки» необходимо принудительно установить флаг записи движений. Пропишем следующий код:
Объект.Движения.Хозрасчетный.Записывать = Истина;
// Если документ должен быть сразу проведен
Объект.Записать(РежимЗаписиДокумента.Запись);
Без этой строки данные в файле обмена могут присутствовать, но при записи самого объекта в информационную базу набор записей регистра останется пустым.
Самый трудоемкий этап — перенос аналитики (субконто). В регистре Хозрасчетный субконто хранятся не как отдельные поля Субконто1, Субконто2, а как коллекция (ExtraDimensions). В КД 2.1 для этого предусмотрены специальные механизмы.
Разберем алгоритм настройки Правил Конвертации Свойств (ПКС) для субконто:
СубконтоДт и СубконтоКт.Рассмотрим пример кода в обработчике Перед выгрузкой свойства Субконто:
// Пример программного заполнения вида субконто
Значение = Источник.Контрагент;
ИмяВидаСубконто = "Контрагенты";
Важно помнить, что количество доступных субконто ограничено настройками конкретного счета в Плане счетов. Если вы попытаетесь загрузить субконто Номенклатура на счет 60.01, где такая аналитика не предусмотрена, система либо проигнорирует данные, либо выдаст ошибку при записи.
При переносе проводок недостаточно просто перенести сумму. Выясним причину возможных расхождений в отчетах после загрузки: для быстрого контроля результата можно автоматически сравнить бухгалтерские и налоговые проводки между базами.
1. Количественный учет: Если на счете в БП 3.0 установлен признак «Количественный», необходимо обязательно заполнять ресурс КоличествоДт или КоличествоКт. Если данные в источнике отсутствуют, а счет в приемнике требует количества, отчеты типа «Оборотно-сальдовая ведомость» могут отображать некорректные остатки.
2. Валютный учет: При переносе валютных операций необходимо передавать не только ВалютнаяСуммаДт/Кт, но и ссылку на справочник Валюты. В ПКС для регистра Хозрасчетный убедимся, что сопоставлены поля ВалютаДт и ВалютаКт.
3. Налоговый учет (НУ): В БП 3.0 бухгалтерский и налоговый учет ведутся на одном регистре Хозрасчетный. Для корректного закрытия месяца и формирования декларации по налогу на прибыль нужно заполнять ресурсы СуммаНУ_Дт и СуммаНУ_Кт. Проанализируем ситуацию: если вы переносите данные из системы, где нет разделения на БУ и НУ, рекомендуется в правилах приравнять налоговую сумму к бухгалтерской, если иное не предусмотрено методологией перехода.
В некоторых случаях (например, при переносе очень больших объемов данных за несколько лет) создание тысяч документов ОперацияБух через ПКО может быть неэффективным. Рассмотрим альтернативный вариант — использование Правил Выгрузки Данных (ПВД) напрямую для регистра.
В КД 2.1 можно создать ПВД с типом объекта РегистрБухгалтерииЗапись.Хозрасчетный. В этом случае:
ОперацияБух).Проанализируем основные «грабли», на которые наступают разработчики:
Несоответствие дат: Убедимся, что Период в записях регистра строго совпадает с Датой документа ОперацияБух. Если Период будет отличаться хотя бы на секунду, в интерфейсе 1С такие проводки могут не отобразиться в карточке документа, хотя физически будут присутствовать в базе.
Пустые счета: Если в источнике счет не определен, а в правилах не прописано значение по умолчанию (например, через НайтиПоКоду), загрузка может завершиться ошибкой нарушения целостности базы данных, так как поля СчетДт и СчетКт в регистре Хозрасчетный являются обязательными для заполнения.
Использование виртуальных полей: Если структура источника совсем не похожа на 1С (например, данные из SQL-базы), активно используйте «Виртуальные поля» в ПКС. Выгружайте в них произвольные данные, а в обработчике При загрузке программно распределяйте их по субконто и измерениям регистра, используя встроенный язык 1С.
Таким образом, успех загрузки в ОперацияБух зависит от трех факторов: правильной выгрузки структуры с движениями, программной установки флага Записывать = Истина и тщательной настройки аналитики (субконто) с учетом особенностей плана счетов БП 3.0.