Здравствуйте,
да, действительно данная ситуация возникает, когда в Альфа-Авто у корневого предопределенного подраздления
указана одна организация, а у подчиненных подразделений другая. При загрузке организация у подразделения
переносится именно та, что указана в Альфе. Но в бухгалтерии предприятия в списке элементов справочника Подразделения Организации по умолчанию установлен отбор по Организации (а т.к. у корненого подразделения организация отличается от
организаций подчиненных элементов, то они и не попадают в список).
Правильным решением является ведение подразделений по своим организациям. Для этого в обработке загрузки данных в Бухгалтерию предприятия (ЗагрузкаДанныхБух1.6.epf) в обработчике загрузки ЗагрузитьСправочник_ПодразделенияКомпании()
необходимо добавить строки:
Код |
---|
...
РодительОбъекта = ПолучитьОбъект(ИдентификаторРодителя, "Справочник.ПодразделенияОрганизаций");
Если РодительОбъекта = Неопределено Тогда
ПереместитьЗапись = Истина;
Возврат;
КонецЕсли;
//Проконтроллируем, чтобы владелец родителя совпадал с владельцем
//текущего элемента.
ЗапросПоРодителю = Новый Запрос();
ЗапросПоРодителю.Текст = "ВЫБРАТЬ
| ПодразделенияОрганизаций.Ссылка КАК Ссылка
|ИЗ
| Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
|ГДЕ
| ПодразделенияОрганизаций.Владелец = &Владелец
| И ПодразделенияОрганизаций.Наименование = &Наименование
| И ПодразделенияОрганизаций.КПП = &КПП";
ЗапросПоРодителю.УстановитьПараметр("Владелец", ТекОрганизация);
ЗапросПоРодителю.УстановитьПараметр("Наименование", РодительОбъекта.Наименование);
ЗапросПоРодителю.УстановитьПараметр("КПП", РодительОбъекта.КПП);
ВыборкаРодителя = ЗапросПоРодителю.Выполнить().Выбрать();
Если ВыборкаРодителя.Следующий() Тогда
РодительОбъекта = ВыборкаРодителя.Ссылка;
Иначе
РодительОбъект = РодительОбъекта.ПолучитьОбъект();
Если РодительОбъект<>Неопределено Тогда
КопияРодителя = РодительОбъект.Скопировать();
УстановитьРеквизит(КопияРодителя, "Владелец", ТекОрганизация);
Попытка
КопияРодителя.Записать();
РодительОбъекта = КопияРодителя.Ссылка;
Исключение КонецПопытки;
КонецЕсли;
КонецЕсли;
ТекОбъект = СпрМенеджер.НайтиПоНаименованию(ПолучитьЗначениеРеквизита("_1С_Наименование"),Истина,РодительОбъекта);
...
|
Т.е. при загрузке подразделения будем учитывать, чтобы организация элемента совпадала с организацией родителя.