Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 05:11

Ошибка при вызове метода контекста Выполнить()

Автор jediAlex1985, 12 сен 2024, 11:42

0 Пользователей и 1 гость просматривают эту тему.

jediAlex1985

Здравствуйте. В общем модуле расширения для конфигураци 1С РМ (Управление проектами) сделал функцию для вывода данных:
Функция GetProjectTeam(GUID)Экспорт
// Возвращает таблицу участников проекта.
ЗапросДанных=Новый Запрос;
ЗапросДанных.Текст ="ВЫБРАТЬ
                    | Проекты.упоУчастникиПроекта.(
                    | ВЫРАЗИТЬ(Проекты.упоУчастникиПроекта.Роль.Наименование КАК СТРОКА(50)) КАК Role,
                    | ВЫРАЗИТЬ(Проекты.упоУчастникиПроекта.Подразделение.Наименование КАК СТРОКА(50)) КАК Department,
                    | ВЫРАЗИТЬ(Проекты.упоУчастникиПроекта.Ответственный.Наименование КАК СТРОКА(50)) КАК Responsible,
                    | ВЫРАЗИТЬ(Проекты.упоУчастникиПроекта.Ответственный.Код КАК СТРОКА(20)) КАК ResponsibleID
                    | ) КАК упоУчастникиПроекта
                    |ИЗ
                    | Справочник.Проекты КАК Проекты
                    |ГДЕ
                    | Проекты.Код = &GUID
                    | И НЕ Проекты.ЭтоГруппа";
ЗапросДанных.УстановитьПараметр("GUID",GUID);
Результат=ЗапросДанных.Выполнить().Выбрать();
Массивданных=новый массив;
Пока результат.Следующий() цикл
СтруктураДанных=новый структура("Role,Department,Responsible,ResponsibleID");
ЗаполнитьЗначенияСвойств(СтруктураДанных,Результат); 
Массивданных.Добавить(СтруктураДанных);
КонецЦикла;
ЗаписьJSON=новый ЗаписьJSON;
 ЗаписьJSON.УстановитьСтроку();
 ЗаписатьJSON(ЗаписьJSON,Массивданных);
 СтрокаJSON=ЗаписьJSON.Закрыть();
 Возврат СтрокаJSON;
Эта функция необходима для метода HTTP сервиса. Далее в модуле сервиса прописан обработчик метода:

Функция GetProjectTeam(Запрос)
Ответ = Новый HTTPСервисОтвет(200);
GUID=Запрос.ПараметрыURL.Получить("GUID");
СтрокаJSON=Витро_МодульДляОбменаДанными.GetProjectTeam(GUID);
Ответ.УстановитьТелоИзСтроки(СтрокаJSON);
Возврат Ответ;
КонецФункции
Настройки сервиса прилагаю. Проблема выходит  при тестировании: {ГИАП_ДанныеДляВитроПланер ОбщийМодуль.Витро_МодульДляОбменаДанными.Модуль(160)}: Ошибка при вызове метода контекста (Выполнить)
Что не так с методом "Выполнить"? Помогите пожалуйста. "упоУчастникиПроекта" -ТЧ справочника "Проекты" Сервис основные.png

wise

(0) и КАКАЯ из Вашей настройки строка160 ??

>>{ГИАП_ДанныеДляВитроПланер ОбщийМодуль.Витро_МодульДляОбменаДанными.Модуль(160)}
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

antoneus

А так?

ЗапросДанных.Текст ="ВЫБРАТЬ
                    |        ВЫРАЗИТЬ(ПроектыупоУчастникиПроекта.Роль.Наименование КАК СТРОКА(50)) КАК Role,
                    |        ВЫРАЗИТЬ(ПроектыупоУчастникиПроекта.Подразделение.Наименование КАК СТРОКА(50)) КАК Department,
                    |        ВЫРАЗИТЬ(ПроектыупоУчастникиПроекта.Ответственный.Наименование КАК СТРОКА(50)) КАК Responsible,
                    |        ВЫРАЗИТЬ(ПроектыупоУчастникиПроекта.Ответственный.Код КАК СТРОКА(20)) КАК ResponsibleID
                    |ИЗ
                    |    Справочник.Проекты.упоУчастникиПроекта КАК ПроектыупоУчастникиПроекта
                    |ГДЕ
                    |    ПроектыупоУчастникиПроекта.Ссылка.Код = &GUID
                    |    И НЕ ПроектыупоУчастникиПроекта.Ссылка.ЭтоГруппа";

jediAlex1985

Сделал так:
Функция GetProjectTeam(GUID)Экспорт
   // Возвращает таблицу участников проекта.
ЗапросДанных=Новый Запрос;
ЗапросДанных.Текст ="ВЫБРАТЬ
                    |   Проекты.упоУчастникиПроекта.(
                    |      ВЫРАЗИТЬ(Проекты.упоУчастникиПроекта.Роль.Наименование КАК СТРОКА(50)) КАК Role,
                    |      ВЫРАЗИТЬ(Проекты.упоУчастникиПроекта.Подразделение.Наименование КАК СТРОКА(50)) КАК Department,
                    |      ВЫРАЗИТЬ(Проекты.упоУчастникиПроекта.Ответственный.Наименование КАК СТРОКА(50)) КАК Responsible,
                    |      ВЫРАЗИТЬ(Проекты.упоУчастникиПроекта.Ответственный.Код КАК СТРОКА(20)) КАК ResponsibleID
                    |   ) КАК упоУчастникиПроекта
                    |ИЗ
                    |   Справочник.Проекты КАК Проекты
                    |ГДЕ
                    |   Проекты.Код = &GUID
                    |   И НЕ Проекты.ЭтоГруппа";
ЗапросДанных.УстановитьПараметр("GUID",GUID);
Результат=ЗапросДанных.Выполнить();
Выборка=Результат.Выбрать();
Массивданных=новый массив;
Пока Выборка.Следующий() цикл
СтруктураДанных=новый структура("Role,Department,Responsible,ResponsibleID");
ЗаполнитьЗначенияСвойств(СтруктураДанных,Выборка); 
Массивданных.Добавить(СтруктураДанных);   
КонецЦикла;   
ЗаписьJSON=новый ЗаписьJSON;
 ЗаписьJSON.УстановитьСтроку();
 ЗаписатьJSON(ЗаписьJSON,Массивданных);
 СтрокаJSON=ЗаписьJSON.Закрыть();
 Возврат СтрокаJSON;    
КонецФункции

Ошибка та же

antoneus


jediAlex1985

{ГИАП_ДанныеДляВитроПланер ОбщийМодуль.Витро_МодульДляОбменаДанными.Модуль(160)}: Ошибка при вызове метода контекста (Выполнить)
Сообщение в браузере такое при попытке протестировать сервис. Строка 160:Результат=ЗапросДанных.Выполнить();Как в отладке можно посмотреть, что происходит? СТавлю точку останова, пытаюсь вычислить значение "ЗапросДанных.Выполнить()" - пустой результат.К отладке сервиса это не имеет отношения... Сама база опубликована на веб сервере

antoneus

Ну в консоли попробовать этот запрос выполнить.

jediAlex1985

Вот запрос в консоли и результат

jediAlex1985

Вставил этот запрос в функцию общего модуля:
Функция GetProjectTeam(GUID)Экспорт
// Возвращает таблицу участников проекта.
ЗапросДанных=Новый Запрос;
ЗапросДанных.Текст ="ВЫБРАТЬ
                    | Проекты.упоУчастникиПроекта.(
                    | Роль.Наименование КАК Role,
                    | Подразделение.Наименование КАК Department,
                    | Ответственный.Код КАК ResponsibleID,
                    | Ответственный.Наименование КАК Responsible
                    | ) КАК упоУчастникиПроекта
                    |ИЗ
                    | Справочник.Проекты КАК Проекты
                    |ГДЕ
                    | Проекты.Код = &GUID";
ЗапросДанных.УстановитьПараметр("GUID",GUID);
Результат=ЗапросДанных.Выполнить();
Выборка=Результат.Выбрать();
Массивданных=новый массив;
Пока Выборка.Следующий() цикл
СтруктураДанных=новый структура("Role,Department,Responsible,ResponsibleID");
ЗаполнитьЗначенияСвойств(СтруктураДанных,Выборка); 
Массивданных.Добавить(СтруктураДанных);
КонецЦикла;
ЗаписьJSON=новый ЗаписьJSON;
 ЗаписьJSON.УстановитьСтроку();
 ЗаписатьJSON(ЗаписьJSON,Массивданных);
 СтрокаJSON=ЗаписьJSON.Закрыть();
 Возврат СтрокаJSON;
КонецФункции 

jediAlex1985

мля... отработал....
[
{
«Роль»: ноль,
«Отдел»: ноль,
«Ответственный»: ноль,
"ResponsibleID": null
}
]
Что не так было????

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск