Перенос справочника подразделение из 7,7 в 8.3

1. SpiritAT 06.02.14 16:03 Сейчас в теме
столкнулся с такой проблемой при переносе справочник подразделения в 8.3 кидает ошибку
{Форма.Форма.Форма(239)}: Ошибка при вызове метода контекста (СоздатьГруппу)
НовыйЭлемент = Справочники.ПодразделенияОрганизаций.СоздатьГруппу();
по причине:
Данный справочник не может содержать группы!
подскажите как быть((
вот код
СпрПодр = v7.CreateObject("Справочник.Подразделения");

СпрПодр.ВыбратьЭлементы();
Пока СпрПодр.ПолучитьЭлемент()=1 Цикл
ОбработкаПрерыванияПользователя();

Если Справочники.ПодразделенияОрганизаций.НайтиПоКоду(СпрПодр.Код) = Справочники.ПодразделенияОрганизаций.ПустаяСсылка() Тогда
Если СпрПодр <> Справочники.ПодразделенияОрганизаций.ПустаяСсылка() Тогда

НовыйЭлемент = Справочники.ПодразделенияОрганизаций.СоздатьЭлемент();
НовыйЭлемент.Наименование = СпрПодр.Наименование;
НовыйЭлемент.Код = СОКРЛП(СпрПодр.Код);
Добавлена = ИСТИНА;
КонецЕсли;

НовыйЭлемент = Справочники.ПодразделенияОрганизаций.СоздатьГруппу();
НовыйЭлемент.Наименование = СпрПодр.Наименование;
НовыйЭлемент.Код = СОКРЛП(СпрПодр.Код);
Добавлена = ИСТИНА;
Иначе
НовыйЭлемент = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(СОКРЛП(СпрПодр.Код)).ПолучитьОбъект();
Добавлена = ЛОЖЬ;
КонецЕсли;


НовыйЭлемент.Владелец = Организация;
Если СпрПодр.Родитель.Выбран() = 1 Тогда
Если СпрПодр.Родитель.Наименование = "Не используемые" Тогда
НовыйЭлемент.Актуальность = Ложь;
Иначе
НовыйЭлемент.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(СпрПодр.Родитель.Наименование).Ссылка;
КонецЕсли;
КонецЕсли;
НовыйЭлемент.КодПоОКАТО = СпрПодр.КодПоОКАТО.Код;
НовыйЭлемент.КПП = СпрПодр.КПП;
НовыйЭлемент.Записать();
Если Добавлена Тогда
Сообщить("Добавлено новое подразделение организации "+ СпрПодр.Наименование);
КонецЕсли;

КонецЦикла;
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. пользователь 06.02.14 16:06
Сообщение было скрыто модератором.
...
3. PetrS 06.02.14 16:57 Сейчас в теме
В 8-ке родителями могут быть не только группы но и элементы, в вашем случае скорее всего в конфигураторе на закладке "Иерархия" у справочника "ПодразделенияОрганизации" стоит "Иерархия элементов". Вам надо вместо группы при переносе создавать элемент и ему подчинять все входящие в него подразделения.
4. SpiritAT 07.02.14 07:50 Сейчас в теме
делал так но тогда он при переносе где то на 5 строчки он мне пишет зацикливание уровней и выкидывает((
5. SpiritAT 07.02.14 08:32 Сейчас в теме
Вот это ошибка
{Форма.Форма.Форма(260)}: Ошибка при вызове метода контекста (Записать)
НовыйЭлемент.Записать();
по причине:
Зацикливание уровней!
6. SpiritAT 07.02.14 09:11 Сейчас в теме
я разобрался почему идет зацикливание но не знаю как исправить. он находит код в 7 и сравнивает в 8 в справочник есть ли он. и скаковото перепуга считает что он там есть хотя я справочник почистил и его там нету((
7. PetrS 07.02.14 09:40 Сейчас в теме
Зацикливание возникает из-за того, что родителем назначается либо сам себе элемент, либо подчиненный уже ему элемент. Поиск родителей у вас идет по наименованию, вполне возможно что некоторые подразделения имеют одинаковые названия и из-за этого родителем не тот элемент справочника берется.
8. SpiritAT 07.02.14 10:04 Сейчас в теме
сп за помощь я разобрался сам)). зацикливание шло из за того что в 7 код состоит из 11 символов а в 8 из 9 символов и при НовыйЭлемент.Код = СОКРЛП(СпрПодр.Код); он у резался и становился из 999999999991 в 999999999. а так как я искал по коду я его и находил.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот