Постановка задачи
В конфигурации "1С: ERP. Управление предприятием, ред. 2.4" (далее "Источник") ведется оперативный учет. Формирование бухгалтерской отчетности осуществляется в конфигурации "1С: Бухгалтерия предприятием, ред. 3.0" (далее "Приемник"). Обмен данными между Источником и Приемником односторонний. При переносе требуется формировать номенклатурные позиции Приемника как совокупность номенклатуры и характеристики (если ведется учет по характеристикам) Источника:
Источник | Приемник | |||
---|---|---|---|---|
Номенклатура | Характеристика | Номенклатура | ||
код | наименование | наименование | код | наименование |
ЦБ-00006158 | Кирпич | гладкий белый | 00061580001 | Кирпич, гладкий белый |
ЦБ-00006158 | Кирпич | желтый | 00061580002 | Кирпич, желтый |
Решение задачи
1. Так как "конечной точкой" трансформации рассматриваемых объектов Источника является справочник "Номенклатура", необходимо обеспечить последовательную нумерацию элементов справочника "Характеристики номенклатуры" (реквизит "Код" отсутствует в Источнике). Один из вариантов решения проблемы: добавление реквизита "БИТ_Код" для справочника "ХарактеристикиНоменклатуры" Источника. Заполнение реквизита (в том числе автоинкремент) оформляем путем расширения метода ПриЗаписи(). В общем случае, значение реквизита формируется как код номенклатурной позиции без используемого префикса ("ЦБ-00006158" ---> "0006158") и номер по порядку используемой в связке с номенклатурой характеристики ("0001"). Длина номера (11 символов) соответствует параметрам кодов Приемника.
Наименования элементов справочника Применика формируются путем конкатенации наименования номенклатуры и наименования характеристики.
2. Расширяем процедуры менеджера обмена через универсальный формат (редакция 1.6).
2.1. Правила обмена практически всех документов конфигурации Источника, имеющие в табличных частях набор реквизитов "Номенклатура и характеристика", ссылаются на процедуру ЗаполнитьХарактеристикуСтрокиТЧ. Изменим процедуру таким образом, чтобы вместо ссылки на элемент справочника "Номенклатура" передавалась структура, аналогичная ссылке, но со значениями реквизитов, которые нам необходимы (код, наименование, GUID):
2.2. Изменим правила обработки данных для справочника "Номенклатура":
2.3. При выгрузке документов Источника все "подчиненные" объекты передаются как ссылки (только ключевые свойства), даже если сами элементы справочника "Номенклатура" и были выгружены. Таким образом, наши номенклатурные позиции "потеряют" ряд необходимых свойств (вид номенклатуры, ставка НДС и т.п.). Исправим подобное поведение. Выгрузим полные сведения о номенклатурных позициях с характеристиками. Для этого проанализируем состав выгруженных данных и дополним файл обмена с помощью принудительного вызова ОбменДаннымиXDTOСервер.ВыгрузкаОбъектаВыборки(...):
3. Готово!