Как настроить поиск и сопоставление счетов бухгалтерского учета по коду при переносе из 1С 8 в 1С 7.7?

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При настройке правил обмена в конфигурации «Конвертация данных 2» между 1С:Предприятием 8 и 1С:Предприятием 7.7 разработчики часто сталкиваются с проблемой сопоставления счетов бухгалтерского учета. В ручном режиме через вкладку «Конвертация значений» сопоставление работает, однако при попытке настроить автоматический поиск по коду возникают ошибки (например, ошибка о недопустимом свойстве НПП или получение пустого значения при загрузке обработки V77Imp.ert).

Разберем причины такого поведения и пошагово настроим корректный перенос и сопоставление счетов без ручного сопоставления каждого значения.

Выясним причины ошибок при переносе плана счетов

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

  1. Различия в структуре метаданных: В платформе 8.x план счетов является полноценным объектом метаданных со служебными полями (такими как Порядок или НПП — номер по порядку). В 1С 7.7 объект Счет встроен в платформу и не содержит подобных реквизитов. Если при автоматической генерации правил в ПКО попадают все свойства объекта 8.x, обработка загрузки 7.7 пытается записать несуществующее свойство НПП и выдает ошибку.
  2. Несовпадение формата и маски кода счета: В 1С 7.7 код счета жестко привязан к системной маске плана счетов (например, 60.1 или 60.01). Если код из восьмерки передается в другом формате, стандартный механизм СчетПоКоду() не находит объект и возвращает пустое значение.

Способ 1. Настройка специализированного ПКО для Плана счетов

Рассмотрим по шагам, как правильно сконфигурировать правило конвертации объекта (ПКО) для плана счетов, чтобы сопоставление выполнялось только по коду без попыток перезаписи структуры 7.7:

  1. Откроем правило конвертации объекта (ПКО) для плана счетов.
  2. Удалим все правила конвертации свойств (ПКС), оставив только реквизит Код. Обязательно исключим выгрузку НПП, Порядок, Наименование и Вид.
  3. В оставшемся ПКС Код установим флаг Поиск.
  4. В свойствах самого ПКО включим флаги «Не создавать новые объекты в приемнике» и «Не замещать существующие объекты». Это исключит попытки модификации плана счетов в базе 7.7.
  5. Если формат кодов счетов в 8.x и 7.7 отличается (например, субсчета 01 в 8.x соответствуют 1 в 7.7), настроим приведение кода к формату приемника в обработчике ПКС Код Перед выгрузкой:

// Пример нормализации кода субсчета под маску 1С 7.7
Значение = СтрЗаменить(Источник.Код, "01", "1");

Способ 2. Явный поиск счета в обработчике «Поля поиска»

Если стандартный механизм поиска все равно дает сбои из-за особенностей маски в 7.7, переопределим алгоритм поиска непосредственно через встроенную функцию СчетПоКоду(). Для этого в ПКО плана счетов перейдем в обработчик Поля поиска и пропишем следующий код:


СсылкаНаОбъект = СчетПоКоду(СвойстваПоиска.Получить("Код"));
ПрекратитьПоиск = Истина;

Этот подход гарантирует прямой поиск счета средствами платформы 7.7 по переданной строке кода.

Способ 3. Передача кода счета строкой в документах (без отдельного ПКО)

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

  1. В ПКС реквизита документа (например, СчетУчета, СчетДт или СчетКт) снимем указание ПКО и настроим выгрузку значения как обычной строки.
  2. В обработчике ПКС Перед выгрузкой передадим строковый код счета: Значение = Источник.СчетУчета.Код;
  3. В обработчике ПКС Перед загрузкой (на стороне 7.7) выполним поиск и подстановку объекта: Объект.СчетУчета = СчетПоКоду(Значение);

Такой способ полностью исключает передачу лишних служебных реквизитов и избавляет от необходимости заполнять таблицу соответствия значений вручную.

← На главную