Имя: Пароль:
1C
1С v8
Синхронизация подразделений и подразделений организации
0 anikulnikova
 
24.06.16
11:22
Добрый день всем, делаю обработку, которая переносит подразделения из справочника ПодразделенияОрганизации в Подразделения, элементы переносит все, а вот на удаление не ставит, хотя в регл справочнике есть такие элементы Подскажите, что не так?

Процедура КнопкаВыполнитьНажатие(Кнопка)
    ВыборкаПодразделений = Справочники.ПодразделенияОрганизаций.Выбрать();
    Пока ВыборкаПодразделений.Следующий() Цикл
        ТекПодразделение = Справочники.Подразделения.НайтиПоКоду(ВыборкаПодразделений.Код);
        Если ТекПодразделение.Пустая() Тогда
            НовПодразделение = Справочники.Подразделения.СоздатьЭлемент();
            НовПодразделение.Наименование = ВыборкаПодразделений.Наименование;
            НовПодразделение.Код = ВыборкаПодразделений.Код;            
            НовПодразделение.Записать();
        ИначеЕсли ВыборкаПодразделений.ПометкаУдаления  Тогда
            НовПодразделение =  ВыборкаПодразделений.Ссылка.ПолучитьОбъект();
            НовПодразделение.УстановитьПометкуУдаления(Истина);
            НовПодразделение.Записать();              
        КонецЕсли;              
    КонецЦикла;
КонецПроцедуры
1 Nuobu
 
24.06.16
11:27
Если ТекПодразделение.Пустая() Тогда
            НовПодразделение = Справочники.Подразделения.СоздатьЭлемент();
            НовПодразделение.Наименование = ВыборкаПодразделений.Наименование;
            НовПодразделение.Код = ВыборкаПодразделений.Код;            
            НовПодразделение.Записать();
        КонецЕсли;
Если ВыборкаПодразделений.ПометкаУдаления  Тогда
            НовПодразделение =  ВыборкаПодразделений.Ссылка.ПолучитьОбъект();
            НовПодразделение.УстановитьПометкуУдаления(Истина);
            НовПодразделение.Записать();              
        КонецЕсли;
2 anikulnikova
 
24.06.16
11:31
(1) А разница? =)
Нет изменений...
3 Nuobu
 
24.06.16
11:35
(2) Сорян.
НовПодразделение =  ВыборкаПодразделений.Ссылка.ПолучитьОбъект();

Ты этой строкой получаешь подразделение ОРГАНИЗАЦИИ.
Получи простое подразделение.
4 anikulnikova
 
24.06.16
11:41
Процедура КнопкаВыполнитьНажатие(Кнопка)
    ВыборкаПодразделений = Справочники.ПодразделенияОрганизаций.Выбрать();
    Пока ВыборкаПодразделений.Следующий() Цикл
        ТекПодразделение = Справочники.Подразделения.НайтиПоКоду(ВыборкаПодразделений.Код);
        Если ТекПодразделение.Пустая() Тогда
            НовПодразделение = Справочники.Подразделения.СоздатьЭлемент();
            НовПодразделение.Наименование = ВыборкаПодразделений.Наименование;
            НовПодразделение.Код = ВыборкаПодразделений.Код;            
            НовПодразделение.Записать();
        ИначеЕсли ВыборкаПодразделений.ПометкаУдаления  Тогда
            НовПодразделение =  Справочники.Подразделения.Выбрать();
            ПодразделениеПредприятия = НовПодразделение.Ссылка.ПолучитьОбъект();
            ПодразделениеПредприятия.УстановитьПометкуУдаления(Истина);
            ПодразделениеПредприятия.Записать();              
        КонецЕсли;              
    КонецЦикла;
КонецПроцедуры        

Пишет ошибку. Значение не является значением объектного типа. не так делаю?
5 Nuobu
 
24.06.16
11:42
Если ВыборкаПодразделений.ПометкаУдаления  Тогда
            НовПодразделение =  Справочники.Подразделения.НайтиПоКоду(ВыборкаПодразделений.Код).ПолучитьОбъект();
            НовПодразделение.УстановитьПометкуУдаления(Истина);
            НовПодразделение.Записать();              
        КонецЕсли;
6 anikulnikova
 
24.06.16
12:03
(5) Спасибо, так подошло =) Сразу не подумала так сделать =)) А подскажите пожалуйста, а как синхронизировать их чтоб они были по группам, т.е. учитывать, что у какого-то подразделения может быть родитель?
7 Nuobu
 
24.06.16
12:04
(6) Создать родителей. Присвоить родителей друг друг с помощью ссылок.
8 anikulnikova
 
24.06.16
12:11
(7) Родители уже есть. А дальше че-то не понимаю как делать ))
9 Nuobu
 
24.06.16
12:19
(8) Как родители справочника "Подразделения" синхронизированы с родителями справочника "Подразделения Организаций"?
10 anikulnikova
 
24.06.16
13:03
Ранее синхронизированы были, а сейчас, не знаю, возможно еще группы были созданы, т.к. не переносили больше подразделения.
Программист всегда исправляет последнюю ошибку.