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

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

Автор okthxnzbb, 28 фев 2022, 15:52

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

okthxnzbb

Добрый день, пишу http расширение для 1с чтобы выгружал данные из документов на сайт.
Столкнулся с ошибкой {ВыгрузкаWEB ОбщийМодуль.Расш2_ОбщийМодуль1.Модуль(21)}: Ошибка при вызове метода контекста (Выполнить)
и больше никакой информации нет.
Прошу у вас помощи

Код модуля

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

   ЗаписьJSON = Новый ЗаписьJSON;
   ЗаписьJSON.УстановитьСтроку();
   ЗаписатьJSON(записьJSON, структура, новый НастройкиСериализацииJSON ,"ФункцияПреобразованияЗаписи");
   сериализованнаяСтрока = записьJSON.Закрыть();
   
   возврат сериализованнаяСтрока;
   
КонецФункции   

Код модуля http сервиса

Функция GetInfo(Запрос)
   Ответ = Новый HTTPСервисОтвет(200);
   НачальнаяДатаСтрока = Запрос.ПараметрыURL["beginDate"];
   КонечнаяДатаСтрока  = Запрос.ПараметрыURL["endDate"];
   НачальнаяДата = Дата(НачальнаяДатаСтрока);
   КонечнаяДата = Дата(КонечнаяДатаСтрока);   
   СтрокаJSON = Расш2_ОбщийМодуль1.ПолучитьJSONСтрокуДокументов(НачальнаяДата, КонечнаяДата);
   Ответ.УстановитьТелоИзСтроки(СтрокаJSON,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.Использовать);
   Возврат Ответ;
КонецФункции


LexaK

okthxnzbb, ну да, у вас запрос какой то, очень странный! а вы его в консоли запросов выполняли? попробуйте!

а что бы была более подробная информация по ошибке, попробуйте выполнить команду в попытке


......
Попытка
Результат = Запрос.Выполнить();
Исключение
лкОшибка = ОписаниеОшибки();
Сообщить(лкОшибка);
Возврат Неопределено;
КонецПопытки;

если помогло нажмите: Спасибо!

okthxnzbb

LexaK, Да, выполнял только без полей  |ИТОГИ ПО |   Ссылка";

Команду вставил, но доп информации не появилось

LexaK

okthxnzbb, а так?
Попытка
Результат = Запрос.Выполнить();
 Исключение
  лкОшибка = ОписаниеОшибки();
ВызватьИсключение лкОшибка;
 КонецПопытки;
если помогло нажмите: Спасибо!

okthxnzbb

Помогло, теперь новая проблема
т.к я беру данные из 2х таблиц, не могу понять как это сделать
Дал имя переменным Ссылка и Ссылка1, но выдаёт ошибку
{ВыгрузкаWEB ОбщийМодуль.Расш2_ОбщийМодуль1.Модуль(38)}: {ВыгрузкаWEB ОбщийМодуль.Расш2_ОбщийМодуль1.Модуль(35)}: Ошибка при вызове метода контекста (Выбрать): Измерение не найдено в родительских выборках "Ссылка1"


Функция ПолучитьJSONСтрокуДокументов(НачалоПериода, КонецПериода)экспорт
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
   Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));
   Запрос.Текст =
   "ВЫБРАТЬ
   |   АР_ДокументыНачисленияИОплатыПоДоговорамДоходнойАренды.Ссылка КАК Ссылка,
   |   Документ.ПоступлениеНаРасчетныйСчет.Ссылка КАК Ссылка1,
   |   Документ.ПоступлениеНаРасчетныйСчет.НазначениеПлатежа КАК НазначениеПлатежа,
   |   АР_ДокументыНачисленияИОплатыПоДоговорамДоходнойАренды.Дата КАК Дата,
   |   АР_ДокументыНачисленияИОплатыПоДоговорамДоходнойАренды.Контрагент КАК Контрагент,
   |   АР_ДокументыНачисленияИОплатыПоДоговорамДоходнойАренды.СуммаДокумента КАК СуммаДокумента
   |ИЗ
   |      Документ.ПоступлениеНаРасчетныйСчет,
   |      ЖурналДокументов.АР_ДокументыНачисленияИОплатыПоДоговорамДоходнойАренды КАК АР_ДокументыНачисленияИОплатыПоДоговорамДоходнойАренды
   |    ГДЕ
   |АР_ДокументыНачисленияИОплатыПоДоговорамДоходнойАренды.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   |ИТОГИ ПО
   |   Ссылка,
   |   Ссылка1"
 
   ;
     Попытка
    Результат = Запрос.Выполнить();
 Исключение
     лкОшибка = ОписаниеОшибки();
    ВызватьИсключение лкОшибка;
 КонецПопытки;
   Попытка
    выборкаСсылка = результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Ссылка", "Ссылка1")
 Исключение
     лкОшибка = ОписаниеОшибки();
    ВызватьИсключение лкОшибка;
КонецПопытки;

   Массив = Новый Массив;
   Пока ВыборкаСсылка.Следующий()Цикл
      структураДок = Новый Структура;
      структураДок.Вставить("НазначениеПлатежа", выборкаСсылка.Ссылка1.НазначениеПлатежа);
      структураДок.Вставить("Дата", выборкаСсылка.Ссылка.Дата);
      структураДок.Вставить("Контрагент", выборкаСсылка.Ссылка.Контрагент);
      структураДок.Вставить("СуммаДокумента", строка(выборкаСсылка.Ссылка.СуммаДокумента()));
      массив.Добавить(структураДок);
   конецЦикла;
   структура = новый Структура("Документы");
   структура.документы = массив;

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск