При объединении баз или переносе данных в конфигурации «Бухгалтерия государственного учреждения 2.0» (БГУ 2.0) через инструмент «Конвертация данных 2.1» специалисты часто сталкиваются с критической проблемой: план счетов ЕПСБУ задваивается. Это приводит к тому, что в переносимых документах подставляются некорректные счета-дубли, нарушается логика учета (например, забалансовый счет создается как балансовый), и процесс загрузки прерывается с ошибками.
В этой статье мы подробно разберем, почему стандартные механизмы поиска «по коду» не работают в БГУ 2.0, и проанализируем пошаговый алгоритм настройки правил конвертации объектов (ПКО) для корректного сопоставления счетов.
Давайте разберем ситуацию. В обычной «Бухгалтерии предприятия» (БП 3.0) большинство счетов являются предопределенными, и их сопоставление происходит по внутреннему имени. В БГУ 2.0 ситуация иная: счета ЕПСБУ не являются предопределенными элементами (за исключением служебных 00 и 000). План счетов заполняется динамически при первом запуске базы или через классификаторы.
Рассмотрим основные причины, по которым поиск дает сбой:
Код, система может найти первый попавшийся счет или создать дубль из-за несовпадения других скрытых реквизитов.Порядок. Оно определяет иерархию и часто критично для поиска, но по умолчанию в ПКО оно может не использоваться как поле поиска.Проанализируем настройки правила конвертации объектов (ПКО) для плана счетов ЕПСБУ. Нам необходимо отойти от стандартного поиска по одному полю. В настройках ПКО на закладке «Настройки поиска» следует выполнить следующие действия:
КодЗабалансовый (это критически важно для разделения счетов с одинаковыми кодами)ВидСчетаНаименование (опционально)Если стандартные галочки не помогают, нам потребуется написать алгоритм сопоставления вручную. Рассмотрим пример кода, который нужно разместить в обработчике «Поля поиска» в ПКО плана счетов. Этот метод гарантирует, что система найдет нужный счет даже при сложных условиях.
// Пример в обработчике "Поля поиска" (ПКО ЕПСБУ)
Если НомерВариантаПоиска = 1 Тогда
// Пытаемся найти счет по комбинации ключевых полей
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕПСБУ.Ссылка
|ИЗ
| ПланСчетов.ЕПСБУ КАК ЕПСБУ
|ГДЕ
| ЕПСБУ.Код = &Код
| И ЕПСБУ.Забалансовый = &Забалансовый
| И ЕПСБУ.ВидСчета = &ВидСчета";
Запрос.УстановитьПараметр("Код", СвойстваПоиска.Получить("Код"));
Запрос.УстановитьПараметр("Забалансовый", СвойстваПоиска.Получить("Забалансовый"));
Запрос.УстановитьПараметр("ВидСчета", СвойстваПоиска.Получить("ВидСчета"));
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
СсылкаНаОбъект = Выборка.Ссылка;
КонецЕсли;
КонецЕсли;
Использование такого подхода позволяет нам четко идентифицировать объект в базе-приемнике. Обратите внимание, что реквизиты Забалансовый и ВидСчета должны быть переданы из источника (у них должны стоять галочки «Передавать в данные выбора»).
Выясним еще одну важную деталь: иногда визуальный код счета в БГУ выглядит одинаково, но Порядок (строковое представление кода для сортировки) различается. Рекомендуем включить реквизит Порядок в ПКС и также использовать его в полях поиска. Это «секретное оружие» при работе с планами счетов в 1С, которое часто игнорируют начинающие разработчики.
Если ваша задача — только сопоставить данные и вы уверены, что план счетов в обеих базах идентичен по наполнению, установите в ПКО настройку «Не создавать новый объект в приемнике, если он не найден». Однако будьте осторожны: если в приемнике действительно отсутствует какой-то редкий счет, используемый в документах, загрузка документа не удастся.
Важный нюанс: Если вы используете эту настройку, обязательно проверьте, чтобы в ПКС для счетов не было установлено обязательное заполнение, иначе ошибка возникнет еще на этапе парсинга XML.
Рассмотрим ситуацию, упомянутую в обсуждении: использование стандартной обработки «Выгрузка и загрузка данных XML». Эта обработка работает исключительно по внутренним идентификаторам (GUID). Если вы переносите данные между базами, которые не являются копиями друг друга, эта обработка гарантированно создаст дубли всех счетов и справочников. Пользоваться ею в данном случае можно только после предварительного «выравнивания» GUID-ов, что является трудоемкой задачей.
Перед тем как запускать процесс конвертации, проанализируем настройки учета в обеих базах БГУ 2.0:
Подводя итог, можно сказать, что ключ к успешному объединению баз БГУ 2.0 лежит в отказе от поиска по GUID в пользу сложного поиска по реквизитам Код + Забалансовый + Порядок с использованием обработчиков КД 2.1.