Имя: Пароль:
1C
1С v8
Ошибка записи в регистр сведений из модуля web сервиса.
,
0 mozed
 
11.09.18
11:12
Добрый день.

Нужна помощь.
Платформа: 8.3.10.2580. Конфигурация: Охрана труда, версия 10 (10.0.3.1).

Есть web-сервис, который при получении входящего сообщения должен создавать запись в регистре сведений. Регистр независимый и непериодический с одним измерением UID (с типом Уникальный идентификатор)

Этого не происходит. Когда в отладке доходит до шага Записать() возвращается следующая ошибка:
{WebСервис.ION.Модуль(26)}: Ошибка при вызове метода контекста (Записать): Не удалось записать: "Документы интеграции"!

Что проверено:
У пользователя, под которым выполняется операция web-сервиса есть права на запись в регистр. Проверял путем запуска Обработки, выполняющей создание такой же записи в регистр под этим же пользователем.

Код функции записи:

Функция ЗаписатьВРегистрИнтеграции(ТипДокумента, Данные, Представление)    
    Результат = "Успешно";
    Попытка
        //Рег = РегистрыСведений.IntegrationServiceDocuments.СоздатьМенеджерЗаписи();
        //
        //Рег.UID = Новый УникальныйИдентификатор();
        //Рег.ДатаДокумента = ТекущаяДата();
        //Рег.ТипДокумента = ТипДокумента;
        //Рег.СтатусДокумента = Перечисления.IntegrationDocumentStatus.Новый;
        //Рег.Данные = Данные;
        //Рег.Результат = "Новый!";
        //Рег.Представление = Представление;
        //
        //Рег.Записать();
        
        Рег = РегистрыСведений.IntegrationServiceDocuments.СоздатьМенеджерЗаписи();
    
        Рег.UID = Новый УникальныйИдентификатор();
        Рег.ДатаДокумента = ТекущаяДата();
        Рег.ТипДокумента = Перечисления.IntegrationDocumentType.Организация;
        Рег.СтатусДокумента = Перечисления.IntegrationDocumentStatus.Новый;
        Рег.Данные = "";
        Рег.Результат = "";
        Рег.Представление = "";
        
        Рег.Записать();

    Исключение
        Результат = ОписаниеОшибки();
    КонецПопытки;
    Возврат Результат;
КонецФункции
1 hhhh
 
11.09.18
11:35
(0) копайте процедуры ПередЗаписью и приЗаписи
2 Кац
 
11.09.18
11:36
установите привилегированный режим
3 Вафель
 
11.09.18
11:37
попробуй без попытки. будет истинная ошибка или в жр посмотри
4 Остап Сулейманович
 
11.09.18
11:44
(3) +100500.
Зачем запись в регистр делать в попытке?
5 catena
 
11.09.18
12:16
(4)Чтобы WS возвращал внятный ответ?
6 mozed
 
11.09.18
12:28
(5) Именно!
(2) Попробовал, результат тот же:

Функция ЗаписатьВРегистрИнтеграции(ТипДокумента, Данные, Представление)    
    Результат = "Успешно";
    //Попытка
        
        Рег = РегистрыСведений.IntegrationServiceDocuments.СоздатьМенеджерЗаписи();
    
        Рег.UID = Новый УникальныйИдентификатор();
        Рег.ДатаДокумента = ТекущаяДата();
        Рег.ТипДокумента = Перечисления.IntegrationDocumentType.Организация;
        Рег.СтатусДокумента = Перечисления.IntegrationDocumentStatus.Новый;
        Рег.Данные = "";
        Рег.Результат = "";
        Рег.Представление = "";
        
        УстановитьПривилегированныйРежим(Истина);
        Рег.Записать();
        УстановитьПривилегированныйРежим(Ложь);
    //Исключение
        //Результат = ОписаниеОшибки();
    //КонецПопытки;
    Возврат Результат;
КонецФункции

(3) В ЖР ошибка не фиксируется.
7 catena
 
11.09.18
12:55
Ошибка странная, там в модуле регистра ничего лишнего не накидано?
8 s03
 
11.09.18
13:02
(6) а ЖР настроен как, только на запись ошибок или на все события?
9 mozed
 
11.09.18
13:12
(8) в настройках ЖР последний пункт "Регистрировать ошибки, предупреждения, информацию, примечания"
(7) более чем странная. Та же модель интеграции в конфигурации БП работает без проблем. Переносил через сравнение объединение с конфигурацией из файла. Все объекты привязаны к одной подсистеме.
А в модуле регистра вообще пустота.
Могут быть какие-то ограничения на уровне конфигурации?
10 hhhh
 
11.09.18
13:17
(9) посмотрите в подписках на событие регистра
11 mozed
 
11.09.18
13:30
(10) На мой регистр подписок нет. Нашел только подписку "ПолныеПраваРегистры" для источника РегистрСведенийНаборЗаписей и события "ПередЗаписью" она заблокирована для изменения и обработчик на который она ссылается без исходного кода - видимо искать нужно в этом направлении?
12 s03
 
11.09.18
13:37
(11) вполне возможно. Посмотри в других РС в модуле набора записей и в модуле менеджера, нет ли каких процедур/функций, которые есть в каждом из регистров? (ну раз без обработчик исходного кода и надо искать методом тыка)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший