Что делать, если задвоился план счетов в 1С:БГУ 1.0 при выгрузке-загрузке данных?

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

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

Почему возникают дубли предопределенных счетов?

Для начала проанализируем ситуацию и выясним причину возникновения дублей. Несмотря на то, что конфигурации исходной и новой базы абсолютно идентичны, каждый объект в системе 1С имеет свой уникальный внутренний идентификатор — UUID (GUID). В «чистой» базе 1С:БГУ план счетов ЕПСБУ создается автоматически при первом запуске. Идентификаторы этих счетов могут не совпадать с идентификаторами в старой базе.

Рассмотрим механизм работы обработки ВыгрузкаЗагрузкаДанныхXML: она пытается сопоставить объекты именно по UUID. Если обработка не находит в новой базе счет с точно таким же идентификатором, какой был в старой, она создает новый элемент, даже если код (например, «101.34») и наименование полностью совпадают. В итоге в справочнике появляются два счета 101.34: один — «родной» для этой базы, другой — «пришлый» из выгрузки. Оба они могут иметь признак предопределенности, так как при загрузке XML-данных переносится и свойство ИмяПредопределенныхДанных.

Чем опасны дубли в плане счетов?

Наличие дублей в плане счетов — это не просто эстетическая проблема. Это ведет к серьезным последствиям:

  1. Ошибки в регистрах сведений: Основные средства могут ссылаться на «новые» счета в регистре Учетные данные объекта ОС, в то время как типовые отчеты и документы будут ожидать использования «родных» счетов.
  2. Некорректная отчетность: Оборотно-сальдовая ведомость может двоить итоги или вообще не подтягивать данные по одному из счетов.
  3. Блокировка обновления: При обновлении конфигурации наличие двух элементов с одинаковым ИменемПредопределенныхДанных может вызвать критический сбой.

Шаг 1: Программное снятие признака предопределенности

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


// Сначала найдем ссылку на "неправильный" счет (тот, что был загружен)
// В консоли запросов или через поиск ссылок определите UUID дубля
СсылкаНаДубль = ПланыСчетов.ЕПСБУ.НайтиПоКоду("101.34"); // Будьте осторожны, метод найдет только один из них

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

После выполнения этого кода элемент перестанет быть системным. На иконке счета в плане счетов исчезнет «желтый кружок», и его можно будет пометить на удаление (Del). Однако просто удалить его нельзя — на него уже ссылаются справочники ОС и регистры. Переходим к следующему этапу.

Шаг 2: Использование обработки «Поиск и замена значений»

Разберем, как корректно перебросить все ссылки с «неправильного» счета на «правильный». Для этого нам понадобится стандартная обработка «Поиск и замена значений» (часто входит в состав диска ИТС или консоли инструментов администратора).

Проанализируем алгоритм действий:

  1. В поле «Что заменять» выбираем загруженный дубль счета.
  2. В поле «На что заменять» выбираем «родной» счет конфигурации (тот, который был в базе изначально).
  3. Нажимаем кнопку «Найти ссылки». Вы увидите список всех объектов, где успел «наследить» неправильный счет (например, в справочнике Основные средства или регистре Учетные данные объекта ОС).
  4. Нажимаем «Выполнить замену».

Важный нюанс: Если в результате загрузки задвоились и группы счетов (например, группа 101), процедуру замены нужно провести и для групп, и для всех вложенных счетов.

Шаг 3: Тестирование и исправление (ТиИ)

Посмотрим на ситуацию со стороны базы данных. После массовых правок в плане счетов рекомендуется выполнить Тестирование и исправление в конфигураторе. Рассмотрим настройки, которые могут быть полезны:

Как избежать проблемы в будущем?

Выясним, что было сделано не так при первоначальной выгрузке. Использование ВыгрузкаЗагрузкаДанныхXML для переноса справочников между базами с разной историей (пусть и одной конфигурации) — это всегда риск. Рассмотрим более надежные альтернативы:

Вариант А: Использование «Конвертации данных»

Вместо простого XML-обмена лучше использовать обработку Универсальный обмен данными в формате XML. В правилах обмена, созданных в «1С:Конвертация данных», для плана счетов нужно установить правило поиска «По коду», а не по внутреннему идентификатору. В этом случае система увидит, что счет с кодом 101.34 уже существует, и просто установит ссылку на него, не создавая дублей.

Вариант Б: Ограничение состава выгрузки

При использовании ВыгрузкаЗагрузкаДанныхXML можно было поступить иначе: снять флажок с плана счетов и справочника План счетов. В этом случае при загрузке основных средств система попытается найти счета по ссылкам. Если счета в базах имеют одинаковые UUID, они подцепятся. Если нет — объекты ОС загрузятся с пустыми счетами, которые потом проще заполнить групповой обработкой, чем бороться с дублями в системном справочнике.

Резюме действий для исправления

  1. Обязательно сделайте резервную копию базы перед началом работ!
  2. Идентифицируйте «родные» счета и загруженные дубли (у дублей дата создания или изменения будет совпадать с моментом загрузки).
  3. С помощью внешней обработки программно очистите ИмяПредопределенныхДанных у дублей.
  4. Используйте «Поиск и замена значений» для переноса ссылок со всех ОС и регистров на оригинальные счета.
  5. Пометьте дубли на удаление и выполните Удаление помеченных объектов.
  6. Выполните тестирование и исправление информационной базы.
  7. Очистите кэш на рабочих местах пользователей, так как план счетов часто кэшируется локально, и «фантомы» удаленных счетов могут отображаться в интерфейсе.

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

← На главную