Как правильно объединить несколько баз БГУ 1.0 в одну и исправить ошибки с КЭК и дублями

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

Слияние нескольких информационных баз «Бухгалтерия государственного учреждения 1.0» (БГУ 1.0) в единую конфигурацию — это сложная техническая задача, которая часто сопровождается возникновением дублей в критически важных справочниках и планах счетов. Одной из самых распространенных проблем после такого объединения (особенно если оно проводилось через универсальную обработку ВыгрузкаЗагрузкаДанныхXML) является невозможность проведения документов, например, РКО или ПКО, с ошибкой: «Запись не верна! Вид субконто КЭК не доступен для данной записи».

В этой статье мы подробно разберем, почему возникают такие ошибки, как правильно работать с дублями предопределенных данных и какие шаги необходимо предпринять, чтобы привести объединенную базу в рабочее состояние.

Анализ причины ошибки «Вид субконто КЭК недоступен»

Разберем ситуацию: почему до слияния документы проводились нормально, а после — перестали? В БГУ 1.0 справочник КЭК (Классификация операций сектора государственного управления) не содержит предопределенных элементов в конфигураторе, однако он заполняется программно при первом запуске или обновлении системы. При загрузке данных из разных баз через XML система создает новые элементы справочника КЭК, так как их внутренние идентификаторы (GUID) в разных базах различаются.

Проанализируем механизм работы: документ при проведении обращается к Плану счетов. Если в базе оказалось два одинаковых вида субконто КЭК, то в Настройках параметров учета может быть указан один элемент, а в проводках или в настройках конкретного счета — другой. Программа видит несоответствие ссылок и блокирует запись в регистр бухгалтерии.

Для решения этой проблемы выполним следующие действия:

  1. Откроем регистр сведений Настройка параметров учета.
  2. Найдем настройки, касающиеся использования КЭК.
  3. Перевыберем значение вида субконто КЭК, чтобы система подтянула актуальный идентификатор из текущего плана счетов.
  4. Запустим поиск и замену дублей для справочника КЭК, выбрав в качестве «правильного» тот элемент, который используется в типовом плане счетов.

Работа с дублями предопределенных данных

Одной из главных сложностей является наличие дублей среди предопределенных элементов (например, в Плане счетов или справочнике Виды субконто). Традиционными методами пометить их на удаление нельзя. Чтобы решить эту задачу, нам потребуется программно сбросить признак предопределенности у «лишних» объектов.

Рассмотрим пример кода, который позволяет снять флаг предопределенности с элемента справочника, чтобы его можно было объединить или удалить:


// Пример сброса признака предопределенности
ОбъектСсылка = Справочники.ВидыСубконтоХозрасчетные.НайтиПоКоду("00001"); 
ОбъектДанных = ОбъектСсылка.ПолучитьОбъект();
ОбъектДанных.ИмяПредопределенныхДанных = ""; 
ОбъектДанных.Записать();

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

Объединение бюджетных классификаторов (КПС и КБК)

При слиянии баз БГУ 1.0 особое внимание уделим справочнику КПС (Классификационные признаки счетов). Он является составным и базируется на нескольких справочниках классификаторов: Виды расходов, Статьи доходов, Целевые статьи и другие.

Проанализируем последовательность действий при очистке классификаторов:

  1. Сначала необходимо объединить дубли в «элементарных» справочниках (например, БК_ВидыРасходов).
  2. Только после этого приступаем к поиску дублей в самом справочнике КПС.
  3. Важно проверить регистр сведений Исключаемые из актуальных справочники. Если в одной из баз классификатор считался устаревшим, а в другой — актуальным, после слияния может возникнуть логический конфликт при выборе КПС в документах.

Рекомендуется использовать подсистему «Инструменты разработчика». В ней алгоритм поиска и замены дублей работает значительно эффективнее стандартных обработок от 1С, особенно при обработке больших массивов данных в БГУ.

Проблема нумерации и префиксов документов

Если вы переносите документы за весь текущий год (например, РКО, Счета-фактуры выданные), вы неизбежно столкнетесь с нарушением уникальности номеров. В БГУ 1.0 за этим следит не только механизм платформы, но и специализированные регистры контроля.

Рассмотрим, как избежать конфликтов нумерации:

Пример логики для перенумерации документов программным способом:


Выборка = Документы.РКО.Выбрать(ДатаНачала, ДатаКонца);
Пока Выборка.Следующий() Цикл
    Объект = Выборка.ПолучитьОбъект();
    // Добавляем префикс организации к текущему номеру
    Объект.Номер = Объект.Организация.Префикс + Объект.Номер;
    Объект.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;

Завершающие этапы после слияния

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

Выполним следующие шаги в режиме Конфигуратор:

  1. Запустим процедуру Тестирование и исправление (ТиИ).
  2. Обязательно выберем пункты: «Проверка логической целостности», «Проверка ссылочной целостности» и «Реиндексация таблиц».
  3. В режиме Предприятие выполним полный пересчет итогов (через меню «Операции» — «Управление итогами»). В БГУ 1.0 при массовых загрузках через XML итоги по забалансовым счетам часто отображаются неверно до тех пор, пока не будет сделан полный пересчет.

Подводя итог, отметим, что наиболее безопасным способом объединения остается использование Конвертации данных 2.0 (КД 2) с написанием четких правил синхронизации по кодам или уникальным полям. Однако, если слияние уже произошло через XML, вышеописанные методы помогут вам восстановить работоспособность системы и избавиться от критических ошибок проведения.

← На главную