|   |   | 
| 
 | Не удаётся программно измент владельца элемента справочника | ☑ | ||
|---|---|---|---|---|
| 0
    
        NikePopov 01.02.13✎ 10:52 | 
        Доброго всем дня.
  Столкнулся с проблемой: БГУ 8(1.0.15.4), требуется массово изменить организацию для ЦМО(владелец справочника ЦМО - Организации). Код простой: Процедура ИзменитьОрганизациюЭлемента(Элемент) Если НЕ Элемент.Пустая() Тогда ОбъектЭлемента = Элемент.ПолучитьОбъект(); ОбъектЭлемента.Владелец = Организация; Попытка ОбъектЭлемента.Записать(); Сообщить("Элемент справочника """ + Элемент.Метаданные().Синоним + """ удачно записан(""" + Элемент.Наименование + """)"); Исключение Сообщить("Элемент справочника """ + Элемент.Метаданные().Синоним + """ не удалось записать(""" + Элемент.Наименование + """)"); Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецПроцедуры Но вход процедуры подаётся элемент справочника "ЦМО". Организация - реквизит Обработки. Но при выполнении такой незамысловатой операции Получаю такое сообщение: {ВнешняяОбработка.ИзменитьВладельцевЦМОИСотрудников.МодульОбъекта(6)}: Ошибка при вызове метода контекста (Записать): Значение поля "Владелец" не заполнено или заполнено неверно Сразу исключаю варианты: 1. Организация - 100% заполненный реквизит. 2. Элемент - не пустой элемент справочника ЦМО(у которого Владелец - Справочник "Организации"). Перед "Записать()" останавливался в отладчике значение "Владелец" изменено на нужную мне. Есть у кого-нибудь идеи? Я все свои исчерпал. | |||
| 1
    
        salvator 01.02.13✎ 10:53 | 
        Ссылку точно пихаешь? Не объект?     | |||
| 2
    
        NikePopov 01.02.13✎ 10:54 | 
        Да, точно. "СправочникСсылка.Организации"     | |||
| 3
    
        Godofsin 01.02.13✎ 10:54 | 
        (0) Ну и как, скажи мне, у тебя ошибка выходит, если ты запись в попытку запихал?     | |||
| 4
    
        Godofsin 01.02.13✎ 10:55 | 
        а все, туплю =)     | |||
| 5
    
        Godofsin 01.02.13✎ 10:57 | 
        проверь отладчиком перед записью, что у тебя во Владелец     | |||
| 6
    
        salvator 01.02.13✎ 10:57 | 
        (5) В (0) написано, что все ок     | |||
| 7
    
        NikePopov 01.02.13✎ 10:59 | 
        Забыл написать. В Процедуре "ПередЗаписью" в модуле объекта Справочника "ЦМО" никаких подвохов нет. Там нет проверки.     | |||
| 8
    
        NikePopov 01.02.13✎ 11:00 | 
        Там есть проверки, но на другие реквизиты     | |||
| 9
    
        NikePopov 01.02.13✎ 11:00 | 
        Вообщем "ПередЗаписью" Отказ = Ложь, что хорошо     | |||
| 10
    
        NikePopov 01.02.13✎ 11:01 | 
        И чтобы задачка была ещё интереснее, Групповая обработка объектов возвращает тот же результат.     | |||
| 11
    
        salvator 01.02.13✎ 11:02 | 
        А нужно изменить принципиально этой обработкой? Групповое изменение спр и док не катит?     | |||
| 12
    
        salvator 01.02.13✎ 11:02 | 
        (10) Опередил. Ха, прикольно.     | |||
| 13
    
        NikePopov 01.02.13✎ 11:02 | 
        (11) Не забываю написать (10). С неё то всё и началось.     | |||
| 14
    
        НЕА123 01.02.13✎ 11:02 | 
        (10)
  ПриЗаписи() Отказ = Ложь ? | |||
| 15
    
        NikePopov 01.02.13✎ 11:02 | 
        Тьфу, то есть забываю     | |||
| 16
    
        NikePopov 01.02.13✎ 11:03 | 
        (14) Да.     | |||
| 17
    
        BlackJack 01.02.13✎ 11:04 | 
        В отладчике по F11 до самого конца правильный владелец? Может какая-то подписка на события портит?     | |||
| 18
    
        NikePopov 01.02.13✎ 11:05 | 
        Само БГУ без подвохов. Самая обычная, не включена возможность изменений.     | |||
| 19
    
        NikePopov 01.02.13✎ 11:06 | 
        (17)Проходил. Нет. Он переходит(подписка на событие "ПередЗаписьюЭлементаСправочника"), но там в первом же "Если" выходит из процедуры без каких-либо изменений.     | |||
| 20
    
        Godofsin 01.02.13✎ 11:07 | 
        чудеса, чо. А создай еще одного и попробуй ему владельца сменить     | |||
| 21
    
        BlackJack 01.02.13✎ 11:07 | 
        В свойствах реквизита никаких условий не наложено?     | |||
| 22
    
        NikePopov 01.02.13✎ 11:10 | 
        (20) С новым Элементом(Только что созданным и записанным) отработал корректно - заменил владельца.     | |||
| 23
    
        NikePopov 01.02.13✎ 11:10 | 
        (21) Проверка на заполненное значение - но это условие выполняется.     | |||
| 24
    
        Godofsin 01.02.13✎ 11:11 | 
        (22) ТиИ?     | |||
| 25
    
        cw014 01.02.13✎ 11:13 | 
        Попробуй Объект.ОбменДанными.Загрузка = Истина;     | |||
| 26
    
        NikePopov 01.02.13✎ 11:14 | 
        (25) Благодарю. Странно, что не удалось отследить отладчиком где он на это натыкается. Теперь отлично работает. Всем огромное спасибо.     | |||
| 27
    
        Мимо Проходил 01.02.13✎ 11:15 | 
        Проверь, нет ли проверки на наличие движений по данному элементу перед записью.     | |||
| 28
    
        NikePopov 01.02.13✎ 11:16 | 
        (27) Это уже вторая часть работы.     | |||
| 29
    
        Мимо Проходил 01.02.13✎ 11:18 | 
        Это из модуля справочника "ДоговорыКонтрагентов" БП
  Процедура ПередЗаписью(Отказ) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; ПроверитьПередЗаписью(Отказ, Истина); КонецПроцедуры // ПередЗаписью() | |||
| 30
    
        BlackJack 01.02.13✎ 11:44 | 
        (25) Понятно, что так скорее всего заработает. Но корректно ли это будет? Всё таки где-то проверка есть и она не проходит.     | |||
| 31
    
        lordmb 01.02.13✎ 12:08 | 
        (30) Подписка на событие     | |||
| 32
    
        NikePopov 01.02.13✎ 17:27 | 
        (30) Это понятно. В целом конечно требуется искать "корень зла", но для текущей задачи это не обязательно. В данном случае МОЛы были перегружены из другой программы с одной организацией. Требуется раскидать их по некому принципу по нужным. Учёта никакого нет не текущий момент. Все попутные справочники переходят в организацию вместе с ЦМО.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |