При настройке правил обмена в конфигурации «Конвертация данных 2» между 1С:Предприятием 8 и 1С:Предприятием 7.7 разработчики часто сталкиваются с проблемой сопоставления счетов бухгалтерского учета. В ручном режиме через вкладку «Конвертация значений» сопоставление работает, однако при попытке настроить автоматический поиск по коду возникают ошибки (например, ошибка о недопустимом свойстве НПП или получение пустого значения при загрузке обработки V77Imp.ert).
Разберем причины такого поведения и пошагово настроим корректный перенос и сопоставление счетов без ручного сопоставления каждого значения.
Проанализируем ключевые различия между платформами, которые вызывают сбои при стандартной выгрузке:
Порядок или НПП — номер по порядку). В 1С 7.7 объект Счет встроен в платформу и не содержит подобных реквизитов. Если при автоматической генерации правил в ПКО попадают все свойства объекта 8.x, обработка загрузки 7.7 пытается записать несуществующее свойство НПП и выдает ошибку.60.1 или 60.01). Если код из восьмерки передается в другом формате, стандартный механизм СчетПоКоду() не находит объект и возвращает пустое значение.Рассмотрим по шагам, как правильно сконфигурировать правило конвертации объекта (ПКО) для плана счетов, чтобы сопоставление выполнялось только по коду без попыток перезаписи структуры 7.7:
Код. Обязательно исключим выгрузку НПП, Порядок, Наименование и Вид.Код установим флаг Поиск.01 в 8.x соответствуют 1 в 7.7), настроим приведение кода к формату приемника в обработчике ПКС Код Перед выгрузкой:
// Пример нормализации кода субсчета под маску 1С 7.7
Значение = СтрЗаменить(Источник.Код, "01", "1");
Если стандартный механизм поиска все равно дает сбои из-за особенностей маски в 7.7, переопределим алгоритм поиска непосредственно через встроенную функцию СчетПоКоду(). Для этого в ПКО плана счетов перейдем в обработчик Поля поиска и пропишем следующий код:
СсылкаНаОбъект = СчетПоКоду(СвойстваПоиска.Получить("Код"));
ПрекратитьПоиск = Истина;
Этот подход гарантирует прямой поиск счета средствами платформы 7.7 по переданной строке кода.
Поскольку план счетов в базе-приемнике 7.7 является условно-постоянным справочником, создавать для него отдельное ссылочное ПКО не всегда целесообразно. Рассмотрим альтернативный вариант передачи счетов напрямую в правилах документов:
СчетУчета, СчетДт или СчетКт) снимем указание ПКО и настроим выгрузку значения как обычной строки.
Значение = Источник.СчетУчета.Код;
Объект.СчетУчета = СчетПоКоду(Значение);
Такой способ полностью исключает передачу лишних служебных реквизитов и избавляет от необходимости заполнять таблицу соответствия значений вручную.