Jump to content

Recommended Posts

При попытке создания События из 1С вылетает ошибка..

 

при выполнении строки кода:

Соединение.ОтправитьДляОбработки(ФайлОтправкиСобытие, "/events", ФайлРезультата, ЗаголовокHTTP);

 

Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции '/events': Ошибка работы с Интернет: Ошибка доступа к ресурсу. Путь не найден: (400). <HTML><HEAD><TITLE>400 - Bad Request</TITLE></HEAD><BODY><H1>400 - Bad Request</H1><P>Unexpected character in stream: �</P></BODY></HTML> : Ошибка работы с Интернет: Ошибка доступа к ресурсу. Путь не найден: (400)

 

линия 6.9.6

 

в чем может быть проблема?.. событие из интерфейса Линия 6.9.6 создать получается, а из 1с нет

Share this post


Link to post
Share on other sites

По ошибке видно, что проблема с адресом или строкой запроса: Путь не найден

Вы пробуете интегрировать 1С с Линией ? Какой код генерируете и после чего появляется ошибка ?

 

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

 

Для более детальной помощи нам нужны максимальные подробности. 

Share this post


Link to post
Share on other sites

Да, пробую интегрировать. Я понял, это пример создания обработки. По этому примеру пишу свою обработку, в своей уже могу подключиться к видеосерверу, получить список камер, вывести строку на видеопоток, убрать ее. А при создании события, вылетает эта ошибка, так же она вылетает если использовать пример вашей обработки...
Выполняю код процедуры: ОтправитьИнформациюОСобытии(ФормаОбработки)

Если ПолучитьСоединениеССервером() Тогда
Сообщить("Не установлено соединение с сервером");
Возврат;
КонецЕсли;

ТекущаяКамера = ФормаОбработки.ЭлементыФормы.СписокКамер.Значение;

Если Не ЗначениеЗаполнено(ТекущаяКамера) Тогда
Сообщить("Не выбрана камера");
Возврат;
КонецЕсли;

ТекущаяКамера = СтрЗаменить(ТекущаяКамера, "/cameras/", "");

ФайлРезультата = ПолучитьИмяВременногоФайла();
ФайлОтправкиСобытие = КаталогВременныхФайлов() + "post.json";


СтрокаСобытие = "{""time"" : """ + Формат(ВремяНачалаСобытия, "ДФ=yyyy-MM-ddTЧЧ:мм:сс") + """, ""endtime"" : """ + Формат(ВремяОкончанияСобытия, "ДФ=yyyy-MM-ddTЧЧ:мм:сс") + """, ""source"" : """ + ИсточникСобытия + """, ""name"" : """ + ИмяСобытия + """, ""device"" : " + ТекущаяКамера + ", ""data"" : """ + ДанныеСобытия + """}";
УдалитьФайлы(ФайлОтправкиСобытие);
ЗаписьТекста = Новый ЗаписьТекста(ФайлОтправкиСобытие,,, Истина, Символы.ПС);
ЗаписьТекста.Записать(СтрокаСобытие);
ЗаписьТекста.Закрыть();

Попытка

ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/json");

Соединение.ОтправитьДляОбработки(ФайлОтправкиСобытие, "/events", ФайлРезультата, ЗаголовокHTTP);

ПоказатьОтветСервера(ФайлРезультата);

Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;


и при выполнении строки: Соединение.ОтправитьДляОбработки(ФайлОтправкиСобытие, "/events", ФайлРезультата, ЗаголовокHTTP);
вываливается ошибка..

Share this post


Link to post
Share on other sites

Он же вам пишет

>Unexpected character in stream:

Станьте варшарком и приложите сюда отправляемый запрос

Где-то при формировании пост запроса лишний символ

Share this post


Link to post
Share on other sites

{"time" : "2016-07-18T10:23:50", "endtime" : "", "source" : "", "name" : "Тест111", "device" : 1, "data" : ""}

Уважаемый, Лазер, мне нужен кусок данных реально отправляемых серверу.

Прошу установите варшарк(warshark)

Временно в Линии уберите пароли пользователю.

Убедитесь что нет другого взаимодействия кроме как клиента 1с и нашего сервера.

Запустите сбор сведений варшарком

Запустите вашу обработку до момента ошибки.

Сохраните данные полученные варшарком в файл и приложите его сюда(заархивируйте).

 

В присланном вами участке кода особого криминала не вижу(не указаны миллисекунды и возможно нужно скобки экранировать-но это нужно знать как 1с формирует запрос, а я даже рядом с 1с не стоял).

До того как отправить мне варшарк, сами попробуйте создать событие с помощью CURL - тема:

http://www.devline.ru/forum/index.php?showtopic=2644&p=12460

Share this post


Link to post
Share on other sites

"Начиная с версии 7.0.8 есть возможность настроить в реакциях запуск «.exe»..." У меня версия 6.9.6 . Если будет полезно, то создать событие из "Наблюдательный пост" и отфильтровать архив по этому событию, могу...
готовлю сбор сведений варшарком.

Share this post


Link to post
Share on other sites

"Начиная с версии 7.0.8 есть возможность настроить в реакциях запуск «.exe»..." У меня версия 6.9.6 . Если будет полезно, то создать событие из "Наблюдательный пост" и отфильтровать архив по этому событию, могу...

готовлю сбор сведений варшарком.

Варшарк посмотрел, ответил в личку, прошу сообщить сюда результат

Из темы про exe хотел чтобы вы курлом запросы составили и сравнили что не так...

Share this post


Link to post
Share on other sites

\357\273\277{"time" : "", "endtime" : "", "source" : "test source", "name" : "test name", "device" : 0, "data" : "test data"}

 

\357\273\277 - вот это левый мусор.

\357\273\277 - вот это левый мусор - "BOM"

 

"Текстовый файл сохраняемый как UTF-8 с сигнатурой BOM в начале имеет 3 байта с значениями: EF, BB, BF(Скрин варшарка во вложении). Сигнатура BOM - метка порядка байтов (Byte Order Mark, BOM). Часто, BOM называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature). Признак BOM определяет, является ли файл закодированным в UTF-8. Не все программы могут корректно работать с файлами с сигнатурой BOM."

 

При создании события из 1С, ваша обработка работает, если версия платформы 8.1 (Создается UTF-8 без BOM). У меня версия платформы 8.3 , в ней создается текстовый файл сохраняемый как UTF-8 с BOM, что в итоге вело к моей ошибке(лишний символ при формировании пост запроса).

 

Проблему решил используя код, приведенный ниже:

 

// Как записать файл в кодировке UTF-8 без BOM

функция ЗаписатьФайлВформате_UTF8_без_BOM(текст,полноеИмяФайла)

 

// записываем в файл с символами BOM в начале файле

ТекстовыйФайлUTF8_Bom = Новый ТекстовыйДокумент();

ТекстовыйФайлUTF8_Bom.ДобавитьСтроку(текст);

ТекстовыйФайлUTF8_Bom.Записать(полноеИмяФайла,"UTF-8");

 

// открываем файл и считываем символы после символов BOM

Данные = Новый ДвоичныеДанные(полноеИмяФайла);

Строка64=Base64Строка(Данные);

Строка64=Прав(Строка64,СтрДлина(Строка64)-4);

ДанныеНаЗапись=Base64Значение(Строка64);

ДанныеНаЗапись.Записать(полноеИмяФайла); // записываем

 

КонецФункции

 

 

Всем спасибо за помощь.

 

post-5761-0-66251300-1468992717_thumb.png

Share this post


Link to post
Share on other sites

Здравствуйте!
Спасибо, что сообщили о результате

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By orange3912
      Доброго времени суток! А помогите разобраться с системой событий.
      1.) Как они вприципе работают ? Будет надпись на видео ? Где-то должен быть список событий ?
      2.) Не планиурется ли в 7ой версии выпилить интеграцию с 1с? В частности, создание событий Линии из 1с?
       
      Попробовал сейчас на версии 6.9.6 поработать с линией из 1С, скачал у вас обработку из 1С, ввел параметры.
      Список камер получил
      Кадр получил
      Надпись на камере установил
      Попробовал создать событие - ошибок никаких не вылезло, но и в линии событий нигде не увидел.
      Затем попробовал из самой линии создать событие, создал, никаких ошибок. Перешёл в архив -  нигде событий не вижу. Прикладываю логи.
       
    • By Димон
      Станислав подскажите пожалуйсто! У нас ведется захват кадра в 1С из линии 5, 6-я Линия сильно изменилась???
      Не придется переписывать функцию для захвата кадра???
    • By Cin-i
      Есть сервер с установленной системой "Линия", есть ПК с 1С версий 8.1
      Не получается "подружить". Как я понял на ПК с 1с должен быть установлен локально клиент линии?
      При получении списка камер выдает такую ошибку см. скриншоты.

      Порты открыты. Логин\пароль правильные, пробовали так же под админской учеткой в линии.






×