Имя: Пароль:
1C
1С v8
УНФ. РИБ. Первичная выгрузка валится при при попытке записи пользователя
0 Иешуа
 
18.12.13
13:25
Есть последний УНФ. В нее встроил РИБ по аналогии с УТ (http://infostart.ru/public/156559/). Первичная выгрузка создается, но при загрузке в режим Предприятия валится по ошибке:

{ОбщийМодуль.Пользователи.Модуль(621)}: Ошибка при вызове метода контекста (Записать)
    Пользователь.Записать();
по причине:
Не удалось записать: "Пользователь"!

Прошелся отладчиком по всему обработчику создания нового пользователя - нигде явно не валится и исключений не вызывает, но записаться не может... Соответственно я не могу открыть периферийку.

Справочник пользователей не мигрирует как и в УТ. Все настройки пользователей соответственно тоже.

Может кто-то сталкивался с РИБ в УНФ и решал подобную же проблемку?
1 Kvestin
 
18.12.13
13:53
Если пишет, что не удалось записать, значит либо в модуле объекта есть Отказ = Истина или в подписке.
При этом ты можешь туда не попадать, если не включен отладка на сервере.
2 Иешуа
 
18.12.13
15:22
ага! точно... протупил.

нашел место, где валится:

// Процедура дополняет список узлов-получателей объекта переданными значениями
//
// Параметры:
//  Объект – объект, для которого выполняется правило регистрации
//  Узлы   – Массив – узлы плана обмена, которые необходимо добавить в список узлов-получателей объекта
//
Процедура ДополнитьПолучателей(Объект, Узлы) Экспорт
    
    Для Каждого Элемент Из Узлы Цикл
        
        Попытка
            Объект.ОбменДанными.Получатели.Добавить(Элемент);
        Исключение
            ИмяПланаОбмена = Элемент.Метаданные().Имя;
            ОбъектМетаданных = Объект.Метаданные();
            СтрокаСообщения = НСтр("ru = 'Для состава плана обмена [ИмяПланаОбмена] не указана регистрация объекта [ПолноеИмя]'");
            СтрокаСообщения = СтрЗаменить(СтрокаСообщения, "[ИмяПланаОбмена]", ИмяПланаОбмена);
            СтрокаСообщения = СтрЗаменить(СтрокаСообщения, "[ПолноеИмя]",      ОбъектМетаданных.ПолноеИмя());
            ВызватьИсключение СтрокаСообщения;
        КонецПопытки;
        
    КонецЦикла;
    
КонецПроцедуры


Но справочник пользователей как бы и не должен быть в обмене... Но строка исключения явно говорит, что "Для состава плана обмена Полный не указана регистрация объекта Справочник.Пользователи"

В чем косяк? В УТ этот справочник не включен в обмен и все работает
3 Kvestin
 
18.12.13
17:40
Эта фраза значит, что ты пытаешься добавить в список получателей объекта (это список узлов на котором должно зарегистрироваться изменение) узел плана обмена В КОТОРЫЙ ОН НЕ ВХОДИТ.
Тут два варианта:
- либо включай справочник Пользователи в состав плана обмена, узел которого и вызывает исключение
- либо разбирайся почему ссылка на этот узел оказалась в переданном массиве [Узлы]

Я точно не помню, как этот массив формируется.
Скорее всего по правилам регистрации, которые привязаны к обмену, о возможно я ошибаюсь.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой