Имя: Пароль:
1C
1С v8
Не работает рассылка отчетов при запросе через HTTP-сервис.
0 dark70
 
29.03.22
07:24
Есть отчет,  в нем формируется текст запроса, выполняется в текущей базе и точно такой же отправляется на HTTP-сервис удаленной базы, а оттуда получает результат.
Если этот отчет формировать вручную, все работает.
Если же через рассылку, то выдает ошибку, что отчет не сформирован.
Хотя логин и пароль при подключении к удаленной базе вбиты в самом модуле отчета и не меняются хоть вручную подключаюсь, хоть через рассылку.
Методом научного тыка дошел до строки
ОтветHTTP = Соединение2.ОтправитьДляОбработки(Запрос);
Если эту строку закомментировать и все, что дальше, то рассылка отрабатывает. Понятно, что отчет не получил данные из удаленной базы.
Не могу понять, что этой рассылке нужно ? Вручную работает отчет, через рассылку валится на запросе к удаленной базе.
Но ведь подключение к ней идет с одними и теми же логином и паролем.
1 dark70
 
29.03.22
08:03
Странно, что даже не заходит в отладчике в HTTP-сервис удаленной базы.
Валится вот на этой строке
Соединение2.ОтправитьДляОбработки(Запрос);
2 acht
 
29.03.22
08:42
(0) > подключение к ней идет
С разных физических машин, с разными настройками сети, из под разных пользователей ОС.
3 dark70
 
29.03.22
08:58
Все делается на локальном домашнем компе.
Базы файловые, лежат на одном диске.
4 Лирик
 
29.03.22
10:15
Стесняюсь спросить, а какой тип имеет переменная "Запрос"?
5 dark70
 
29.03.22
10:24
Запрос = Новый HTTPЗапрос;
Запрос.УстановитьТелоИзСтроки(СтрокаJSON, "UTF-8");

Суть проблемы в том, что если этот же отчет формировать интерактивно, то все нормально.
Если же его подключить к рассылке, то валится.
6 acht
 
29.03.22
10:39
(5) > валится
Текст ошибки секретен?
7 dark70
 
29.03.22
11:05
Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок.
8 acht
 
29.03.22
11:07
(7) Это Соединение2.ОтправитьДляОбработки(Запрос) такую ошибку пишет?
9 dark70
 
29.03.22
11:23
Соединение2.ОтправитьДляОбработки(Запрос) никакой ошибки не пишет.
Я же уже писал
"ОтветHTTP = Соединение2.ОтправитьДляОбработки(Запрос);
Если эту строку закомментировать и все, что дальше, то рассылка отрабатывает"

"Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок."
это в ЖР.
10 Kassern
 
29.03.22
11:23
(5) ну так интерактивно вы под собой запускаете и имеете нужные права, а рассылка уже не под вами скорее всего запускается и нет прав
11 Kassern
 
29.03.22
11:24
(9) под кем запускается рассылка?
12 dark70
 
29.03.22
11:27
(10) Нет.
Подключение к удаленной базе под одним и тем же пользователем. Все параметры жестко прописаны в самом модуле отчета.

ИмяКомпьютера       = "localhost";
    Пользователь        = "Администратор";
    Пароль              = "1111";
    Запрос = Новый HTTPЗапрос;
    Запрос.АдресРесурса = "/GetAnyRequest";  //адрес ресурса HTTP-сервиса в конфигураторе;
    Запрос.УстановитьТелоИзСтроки(СтрокаJSON, "UTF-8");
    ИмяHTTP_сервиса     = "Exchange";
    ПутьКБазе           = "Buh" ;
    
    Соединение2 = Новый HTTPСоединение(ИмяКомпьютера+"/"+ПутьКБазе+"/hs/"+ИмяHTTP_сервиса+"",,Пользователь,
    Пароль);
    
    ОтветHTTP = Соединение2.ОтправитьДляОбработки(Запрос);
13 dark70
 
29.03.22
11:30
(11) Я сижу под Администратором в текущей базе. Открываю из дополнительных свой отчет. Кликаю по "Сформировать".
Все нормально работает.
Тут же, не выходя из базы кликаю по "Выполнить сейчас". В ответ "Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок."
14 Kassern
 
29.03.22
11:38
(13) вы не поняли меня... Вы когда нажили "Сформировать" вы это сделали под юзером Админ, с полными правами. А когда жмякнули "Выполнить сейчас" это уже запускается фоновое/регламентное задание, которое не факт что от админа запускается.
15 Kassern
 
29.03.22
11:40
в скульных базах регламентные задания еще и под юзвером службы агента 1с запускаются, если мне не изменяет память, а для него может и не быть права стучаться по http и что-то там запрашивать.
16 Kassern
 
29.03.22
11:42
как там в файловых базах организовано уже не помню, давно с ними не возился
17 Kassern
 
29.03.22
11:43
текст ошибки хоть какой?
18 acht
 
29.03.22
11:45
(9) > эту строку закомментировать и все, что дальше,
Ну начинается...
И что там еще закоммиентировано "все, что дальше"?
19 dark70
 
29.03.22
11:46
(17) Как таковой ошибки при выполнении нет. Есть только сообщение , что отчет не отправлен и запись в журнале регистраций.
"Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок."
20 dark70
 
29.03.22
11:46
(18) спасибо, что поднимаете тему :)
21 Kassern
 
29.03.22
11:48
(19) И что в записи журнала регистрации?
22 Kassern
 
29.03.22
11:49
если там ничего не найдете, то сами оберните в попытку исключение эту строчку с ошибкой и зафиксируйте куда нибудь текст ошибки.
23 acht
 
29.03.22
11:56
(20) Давай-ка ты дальше сам
24 dark70
 
29.03.22
12:15
(21) В ЖР.
Пользователь Админ
Фоновое задание
Событие Рассылка отчетов. Запуск по требованию
Комментарий Рассылка отчетов не выполнена, так как отчеты пустые или не сформированы из-за ошибок.
25 Kassern
 
29.03.22
12:40
26 dark70
 
29.03.22
14:43
Добрался до ошибки.
Значение не является значением объектного типа (ПолучитьТелоКакСтроку)
Ошибка в HTTP-методе POST
JSON_Struktura = Запрос.ПолучитьТелоКакСтроку("UTF-8");

Сам HTTP-сервис находится в расширении удаленной базы.
27 dark70
 
29.03.22
16:01
(25) почитал. На компе я один пользователь, права админские. Антивируса нет, только виндовый брандмауэр с настройками по умолчанию. Прокси нет.
Понятно, что надо как-то с правами решать, но не пойму куда лезть.
28 dark70
 
29.03.22
17:23
Все, победил :)
Не работало если был адрес localhost. Переделал на 127.0.0.1 и все наладилось.