Armtek. Сервис поиска

1. Zixxx 11.06.19 11:00 Сейчас в теме
Не получается получить нужный ответ от сервиса
В ответе написано что не установлена сбытовая организация
Вероятно неправильно передаю параметры в тело запроса
Тестирование сервиса возвращает результат http://ws.armtek.ru/test/test/generate/Ws_search/search_post
Сверял запросы в Fiddler
Параметры в тело запроса передавал структурой и строкой (которую брал по аналогии из Fiddler)

Может кто увидит ошибку или подскажет что неправильно делаю?

	СтруктураПараметров = Новый Структура;
	СтруктураПараметров.Вставить("VKORG",				"5000");
	СтруктураПараметров.Вставить("KUNNR_RG",			"id");
	СтруктураПараметров.Вставить("PIN",					"C110");
	
	// Сериализатор
	ЗаписьJSON			= Новый ЗаписьJSON;
	ПараметрыЗаписиJSON	= Новый ПараметрыЗаписиJSON(, Символы.Таб);
	ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
	ЗаписатьJSON(ЗаписьJSON, СтруктураПараметров);
	СтрокаJSON = ЗаписьJSON.Закрыть();
	
	// POST
	HTTPЗапрос = Новый HTTPЗапрос();
	
	АдресРесурса	= "/api/ws_search/search?format=json";
					
	HTTPЗапрос.АдресРесурса = АдресРесурса;
	
	Соединение		= Новый HTTPСоединение("ws.armtek.ru", , "email", "password", Новый ИнтернетПрокси, ,);
	
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);
	
	ОтветHTTP		= Соединение.ОтправитьДляОбработки(HTTPЗапрос);
	
	Тело			= ОтветHTTP.ПолучитьТелоКакСтроку();
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(Тело);
	Данные = ПрочитатьJSON(ЧтениеJSON);
Показать
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Isa816 64 11.06.19 11:30 Сейчас в теме
Нужно описание сервиса, пока вижу что то не передаются параметры авторизации, они вроде должны передаваться в заголовках.
Соединение = Новый HTTPСоединение("ws.armtek.ru", , "email", "password", Новый ИнтернетПрокси, ,); Вот тут вы используете прокси? Оно у вас есть? или это попытка передать логин и пароль в запрос?
Так же можно попробовать переделать вот это
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);
Не всегда сервисы это понимают, можно попробовать через временныйФайл и уже его отправить для обработки.
5. Zixxx 11.06.19 11:50 Сейчас в теме
(2) Прокси можно убрать, смысл от этого не поменяется
Описание сервиса здесь: http://ws.armtek.ru/?page=service&alias=search
6. Isa816 64 11.06.19 12:00 Сейчас в теме
(5) Способ авторизации: Basic Authentication
Basic Authentication — клиент указывает свой логин и пароль для для получения доступа к REST сервису. Логин и пароль передаются по сети как незашифрованный текст кодированный простым Base64 и может быть легко декодирован любым пользователем.
Нужно логин и пароль шифровать через Base64 и скорее всего передавать в Head вот только непонятно куда, но точно не через прокси (прокси лучше убрать если он не используется, он нужен только в том случае если подключение ВАШЕГО интернета идёт через прокси сервер с логином и паролем.
Данные пользователя:
username = email
password = password
Вот эти хеды можно попробовать передать Вот пример
Заголовки = Новый Соответствие;
	Заголовки.Вставить("Authorization","AccessToken "+ Authorization); 
	Заголовки.Вставить("X-User-Authorization","Basic "+ XUserAuthorization);   
	Заголовки.Вставить("Content-Type", "application/json;charset=UTF-8");
	
	HTTPЗапрос = Новый HTTPЗапрос(Запрос, Заголовки);


Это первое.
А второе нужно смотреть на передачу данных,
Array
(
    [VKORG] => 0000
    [KUNNR_RG] => 000
    [PIN] => 000
    [BRAND] => 
    [QUERY_TYPE] => 
    [PROGRAM] => 
    [KUNNR_ZA] => 
    [VBELN] => 
)
Показать

Вот тут указан массив, а вы в JSON передаете структуру. Возможно в этом ошибка
9. Zixxx 11.06.19 13:34 Сейчас в теме
(6) Если использую заголовки, то пишет ошибка авторизации пользователя

Заголовки = Новый Соответствие; 
Заголовки.Вставить("Authorization","AccessToken "+ email ); 
Заголовки.Вставить("X-User-Authorization","Basic "+ password); 
Заголовки.Вставить("Content-Type", "application/json;charset=UTF-8");


Но мне кажется дело не в авторизации. Так как в моем примере он уже ругается на незаполненный параметр, значит авторизация прошла.

По поводу второго, пробовал передавать и массив со значениями "[VKORG] => 5000"
И просто строку "API_USER_LOGIN=login&API_USER_PASSSWORD=password&VKORG=5000­&KUNNR_RG=id&PIN=C110&BRAND=&QUERY_TYPE=&PROGRAM=&KUNNR_ZA=&­VBELN=""

Но ничего не проходит, не заполнена сбытовая организация это первый параметр VKORG=5000
Причем строку брал такую как получилась в fiddler при отправке тестового запроса с сайта armtek
21. Isa816 64 11.06.19 14:53 Сейчас в теме
(9) Какие заголовки я дал это пример использовал в другом АПИ, как их передавать надо выяснить, свяжитесь с ТП я думаю они вам помогут.
22. Zixxx 11.06.19 14:56 Сейчас в теме
(21) С Basic авторизацией разобрался, передаю кодированную строку, там все ок, если передаю левую строку то ругается. Т.е. остается проблема именно с передачей параметров
23. Isa816 64 11.06.19 14:58 Сейчас в теме
(22) По поводу второго, пробовал передавать и массив со значениями "[VKORG] => 5000" Это скорее всего не верно, попробуйте так
Массив = Новый массив;

Структура = Новый структура;
Структура.Вставить("VKORG", 5000)
Массив.Добавить(Структура)
26. Zixxx 11.06.19 15:00 Сейчас в теме
(23) Так я тоже передавал, сначала структуру что по примеру выше, потом ее в массив помещал, но ничего

{
	"VKORG": "5000",
	"KUNNR_RG": "id",
	"PIN": "C110"
}
28. Isa816 64 11.06.19 15:02 Сейчас в теме
(26) А если взять просто текст из примера
Array
(
    [VKORG] => 5000
    [KUNNR_RG] => 000
    [PIN] => 000
    [BRAND] => 
    [QUERY_TYPE] => 
    [PROGRAM] => 
    [KUNNR_ZA] => 
    [VBELN] => 
)
Показать

И запихнуть его в файл и отправить, так срабатывает?
29. Zixxx 11.06.19 15:04 Сейчас в теме
31. Isa816 64 11.06.19 15:06 Сейчас в теме
(29) https://www.getpostman.com/downloads/ Вот есть программка, через неё можно отладить запросы. Посмотрите что она будет выдавать.
34. Zixxx 11.06.19 15:11 Сейчас в теме
(31) Я почти точь в точь такой же и пробую, один интерфейс, возвращает тоже самое что и через 1с
35. Isa816 64 11.06.19 15:16 Сейчас в теме
(34) Ну значит проблема на стороне сервиса. Если вы передаете туда правильные данные, а приходит ошибка то значит ошибка где то еще.
36. tvm 11.06.19 15:17 Сейчас в теме
(35) не факт что правильно передается. Автор как раз и не может понять в каком виде нужно отправлять
37. tvm 11.06.19 15:43 Сейчас в теме
(34) попробуйте тут посмотреть
38. Zixxx 11.06.19 15:45 Сейчас в теме
(37) Он тоже вернет что не может получить параметры
39. tvm 11.06.19 15:51 Сейчас в теме
(38) кто вернет? я имел ввиду попробовать способами как там написано
25. Isa816 64 11.06.19 15:00 Сейчас в теме
(22) Ну и как говорил попробуйте двумя способами, записывать JSON в файл и отправлять его и отправлять его внутри POST запроса
30. Zixxx 11.06.19 15:04 Сейчас в теме
(25)
вать JSON в файл и отправлять его и отправлять его внутри POST запрос

УстановитьИмяФайлаТела тоже пробовал
33. tvm 11.06.19 15:09 Сейчас в теме
(30) а у них нет какого-нибудь логина/пароля пробного?
27. Zixxx 11.06.19 15:01 Сейчас в теме
(21) Манагер говорит нет у них техподдержки, весь мануал у них на сайте и типо никогда ни у кого вопросов не возникало
3. tvm 11.06.19 11:42 Сейчас в теме
(0) нужно скорее всего передавать с помощью УстановитьТелоИзСтроки
4. Zixxx 11.06.19 11:49 Сейчас в теме
(3) А разве у меня по другому?
7. tvm 11.06.19 12:00 Сейчас в теме
8. tvm 11.06.19 12:39 Сейчас в теме
(0) попробуйте вместо
HTTPЗапрос = Новый HTTPЗапрос();
    
    АдресРесурса    = "/api/ws_search/search?format=json";

сделать
 АдресРесурса    = "/api/ws_search/search?format=json"
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса)
10. Zixxx 11.06.19 13:39 Сейчас в теме
(8) Тоже самое не видит параметры которые я передаю
11. tvm 11.06.19 14:14 Сейчас в теме
(10) а если отправить через
УстановитьИмяФайлаТела
?
12. Zixxx 11.06.19 14:26 Сейчас в теме
(11)
УстановитьИмяФайлаТела

Так а в файле то что написать? В описании не нашел
13. tvm 11.06.19 14:28 Сейчас в теме
(12) то что в json записываете.
ЗЫ. А чем тестировали сервис? Postman-om?
15. Zixxx 11.06.19 14:29 Сейчас в теме
(13)
Postman-om

Что значить Postman-om?
16. tvm 11.06.19 14:30 Сейчас в теме
(15) это программа такая. Postman
17. Zixxx 11.06.19 14:31 Сейчас в теме
(16) У них на сайте есть веб форма для тестирования

http://ws.armtek.ru/test/test/generate/Ws_search/search_post
14. Zixxx 11.06.19 14:28 Сейчас в теме
(11) Попробовал так
   [VKORG] => 5000
    [KUNNR_RG] => 123
    [PIN] => С110
    [BRAND] => 
    [QUERY_TYPE] => 
    [PROGRAM] => 
    [KUNNR_ZA] => 
    [VBELN] => 


Тоже самое ругается что не заполнена сбытовая организация, это вот это [VKORG] => 5000
18. tvm 11.06.19 14:39 Сейчас в теме
(17) попробуйте Postman или SoapUI
19. Zixxx 11.06.19 14:50 Сейчас в теме
(18) Я продую через ARC, тоже самое
Не понятно в каком виде в итоге надо передавать параметр
20. tvm 11.06.19 14:52 Сейчас в теме
(19) мож в XML, а в JSON-е только ответ возвращается. В Fiddler в каком виде запрос показывает?
24. Zixxx 11.06.19 14:59 Сейчас в теме
(20) Так в фидлере я вижу только то что мне вернула веб форма а она возвращает html и там типо есть поле в котором так написано

Скрытый текст
32. tvm 11.06.19 15:08 Сейчас в теме
(24) так это ответ. На него можно не опираться
40. user625507_Roman54115 19.11.19 21:24 Сейчас в теме
(24) получилось решить проблему?
41. Zixxx 20.11.19 09:13 Сейчас в теме
42. VGKVSR 21.11.19 17:43 Сейчас в теме
(41)Подскажите, как решили в итоге? В каком виде параметры передавать?
43. Neidl 44 12.12.19 21:25 Сейчас в теме
(41)
И все таки поделитесь пожалуйста как решили проблему? Спасибо.
44. user700349_netboy17 17.12.19 21:20 Сейчас в теме
(43) Один мудрый сисадмин сказал мне:
"Добавь в заголовки строку типа:
"HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");"
- и познаешь дзен..."
и добавил я строку, и познал дзен, и ушел просветленный...
45. Neidl 44 19.12.19 10:07 Сейчас в теме
(44) Данный заголовок я в запросе передаю, но результат от этого не меняется.
46. iFFgen 23.12.19 15:51 Сейчас в теме
(45) Листинг, пожалуйста, покажите.
47. Neidl 44 23.12.19 19:14 Сейчас в теме
(46)
//сервис поиска
	HTTPЗаголовки = Новый Соответствие;
	HTTPЗаголовки.Вставить("Content-Type", "application/json");
	
	HTTPЗапрос = Новый HTTPЗапрос(СтруктураПараметров.Search, HTTPЗаголовки);
	
	Запись = Новый ЗаписьJSON;
	ИмяФайлаТела = ПолучитьИмяВременногоФайла("json");
	Запись.ОткрытьФайл(ИмяФайлаТела);
	
	МассивДанных = Новый Массив;
	Данные = Новый Структура;
	Данные.Вставить("VKORG", СтруктураПараметров.VKORG);
	Данные.Вставить("KUNNR_RG", СтруктураПараметров.KUNNR_RG);
	Данные.Вставить("PIN", КодироватьСтроку(СтруктураПараметров.TEXT, СпособКодированияСтроки.КодировкаURL));
	МассивДанных.Добавить(Данные);
	
	ЗаписатьJSON(Запись, МассивДанных, Новый НастройкиСериализацииJSON);
	Запись.Закрыть();
	
	HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаТела);
	
	Ответ = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
	
	ЗначениеОтвета = ЗначениеИзСтрокиJSON(Ответ.ПолучитьТелоКакСтроку());
Показать
48. lame 70 23.12.19 23:58 Сейчас в теме
(46)
у меня возвращает по вашему коду - не установлена сбытовая организация
50. Neidl 44 24.12.19 05:04 Сейчас в теме
(48)
Так и я о том. Пробовал и json данные передавать, и просто строку в виде параметров, результат всегда один.
49. lame 70 24.12.19 00:11 Сейчас в теме
замкнутый круг какой-то (
51. Neidl 44 24.12.19 05:54 Сейчас в теме
В общем, всем ищущим да будет в помощь. Вот рабочий код:

HTTPЗаголовки = Новый Соответствие;
HTTPЗаголовки.Вставить("Content-Type", "application/json");
	
HTTPЗапрос = Новый HTTPЗапрос(СтруктураПараметров.Search, HTTPЗаголовки);
	
Запись = Новый ЗаписьJSON;
ИмяФайлаТела = ПолучитьИмяВременногоФайла("json");
Запись.ОткрытьФайл(ИмяФайлаТела);
	
Данные = Новый Структура;
Данные.Вставить("VKORG", СтруктураПараметров.VKORG);
Данные.Вставить("KUNNR_RG", СтруктураПараметров.KUNNR_RG);
Данные.Вставить("PIN", КодироватьСтроку(СтруктураПараметров.TEXT, СпособКодированияСтроки.КодировкаURL));
Данные.Вставить("format", "json");
	
ЗаписатьJSON(Запись, Данные, Новый НастройкиСериализацииJSON);
Запись.Закрыть();
	
HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаТела);
	
Ответ = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
	
ЗначениеОтвета = ЗначениеИзСтрокиJSON(Ответ.ПолучитьТелоКакСтроку());
Показать


Оказывается еще в самой структуре json надо было передавать параметр "format" со значением "json", о чем в принципе у armtek ни где не сказано.
52. lame 70 24.12.19 07:23 Сейчас в теме
СтруктураПараметров.Search="/api/ws_search/search?format=json"
?
55. Neidl 44 24.12.19 07:49 Сейчас в теме
57. Neidl 44 24.12.19 07:56 Сейчас в теме
(55)
Хотя, беру свои слова обратно, так тоже работает.
53. lame 70 24.12.19 07:25 Сейчас в теме
и на какой платформе есть функция ЗначениеИзСтрокиJSON?
54. lame 70 24.12.19 07:28 Сейчас в теме
о ... точно заработало ..
переделал на окончание на

Ответ = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);

ЗначениеОтвета = Ответ.ПолучитьТелоКакСтроку();
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ЗначениеОтвета);
Данные = ПрочитатьJSON(ЧтениеJSON);


и в данных - все есть
56. Neidl 44 24.12.19 07:50 Сейчас в теме
(54)
Да, это и есть функция ЗначениеИзСтрокиJSON
58. lame 70 24.12.19 07:58 Сейчас в теме
59. lame 70 16.01.20 22:40 Сейчас в теме
А кто нибудь создавал заказ на армтеке.
как туда передать список товаров - в каком формате?
60. lame 70 16.01.20 22:48 Сейчас в теме
на всяк случай.
документация - http://ws.armtek.ru/?page=service&alias=order
метод - создать тестовый заказ.
работаю только по обязатльным полям:

HTTPСоединение =  Новый HTTPСоединение("ws.armtek.ru", , email, password, Новый ИнтернетПрокси, ,);
	HTTPЗаголовки = Новый Соответствие;
	HTTPЗаголовки.Вставить("Content-Type", "application/json");
       HTTPЗапрос = Новый HTTPЗапрос("/api/ws_order/createTestOrder?format=json", HTTPЗаголовки);
	Запись = Новый ЗаписьJSON;
	ИмяФайлаТела = ПолучитьИмяВременногоФайла("json");	
	Запись.ОткрытьФайл(ИмяФайлаТела);  
		
	Данные = Новый Структура;
    Данные.Вставить("VKORG",VKORG);
    Данные.Вставить("KUNNR_RG", KUNNR_RG);
   
   			ITEMS  = Новый Структура();
				ITEMS.Вставить("PIN","WP250110");
				ITEMS.Вставить("BRAND","SFEC");
				ITEMS.Вставить("KWMENG",2);				
    Данные.Вставить("ITEMS",ITEMS);
  	Данные.Вставить("format", "json");
    
	ЗаписатьJSON(Запись, Данные, Новый НастройкиСериализацииJSON);
	Запись.Закрыть();
    
	HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаТела);
    
	Ответ = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
Показать



Ответ постоянный = Ошибка входных параметров


логично что ошибка ... знать бы как надо таблицу товаров формировать
61. lame 70 16.01.20 22:56 Сейчас в теме
там же есть тестилка запросов.

вот я отправляю свой запрос. вот так вот идет кодирование.


Array
(
    [VKORG] => <<Мой_VKORG>>
    [KUNRG] => <<Мой_KUNRG>>
    [KUNWE] => 
    [KUNZA] => 
    [PARNR] => 
    [VBELN] => 
    [TEXT_ORD] => 
    [TEXT_EXP] => 
    [DBTYP] => 
    [ITEMS] => Array
        (
            [0] => Array
                (
                    [PIN] => WP250110
                    [BRAND] => SFEC
                    [KWMENG] => 2
                    [KEYZAK] => 
                    [PRICEMAX] => 
                    [DATEMAX] => 
                    [COMMENT] => 
                )

        )

)


/// тут что шапка запроса идет как Array - где VKORG и др лабуда. - те это структура
что список товаров [ITEMS] => Array - тут ттоже структура
только  потом идет

 [ITEMS] => Array
        (
            [0] => Array
                (
Показать

те каждый товар - описывает отдельная структура что ль ...
62. lame 70 16.01.20 23:03 Сейчас в теме
[ITEMS] => Array
        (
            [0] => Array
                (
                    [PIN] => WP250110
                    [BRAND] => SFEC
                    [KWMENG] => 2
                    [KEYZAK] => 
                    [PRICEMAX] => 
                    [DATEMAX] => 
                    [COMMENT] => 
                )

            [1] => Array
                (
                    [PIN] => WP250111
                    [BRAND] => SFEC
                    [KWMENG] => 4
                    [KEYZAK] => 
                    [PRICEMAX] => 
                    [DATEMAX] => 
                    [COMMENT] => 
                )

        )
Показать
63. lame 70 16.01.20 23:03 Сейчас в теме
массив со структурами - не работает
проверил
64. lame 70 16.01.20 23:07 Сейчас в теме
Делаю в 1С так
ITEMS  = Новый Массив();
				
					TEMS0 =  Новый Структура();
					TEMS0.Вставить("PIN","WP250110");
					TEMS0.Вставить("BRAND","SFEC");
					TEMS0.Вставить("KWMENG",2);
					TEMS0.Вставить("format","json");
					
					TEMS1 =  Новый Структура();
					TEMS1.Вставить("PIN","WP250111");
					TEMS1.Вставить("BRAND","SFEC");
					TEMS1.Вставить("KWMENG",2);
					TEMS1.Вставить("format","json");

				
				ITEMS.Добавить(TEMS0);
				ITEMS.Добавить(TEMS1);

--------
json такой
{
"VKORG": "4150",
"KUNNR_RG": "43220150",
"ITEMS": [
{
"PIN": "WP250110",
"BRAND": "SFEC",
"KWMENG": 2,
"format": "json"
},
{
"PIN": "WP250111",
"BRAND": "SFEC",
"KWMENG": 2,
"format": "json"
}
],
"format": "json"
}
Показать


не але ..
65. lame 70 16.01.20 23:31 Сейчас в теме
[ITEMS] => Array
        (
            [0] => Array
                (
                    [PIN] => WP250110
                    [BRAND] => SFEC
                    [KWMENG] => 2
                    [KEYZAK] => 
                    [PRICEMAX] => 
                    [DATEMAX] => 
                    [COMMENT] => 
                )

Показать


[ITEMS] = массив
[0] => Array -??????
описание товара - структура
66. lame 70 17.01.20 09:56 Сейчас в теме
одним словом. спецаильно для тупых ..или сонных...
те для меня )))

параметр KUNRG !!!!
а не KUNNR_RG


работает так




Данные = Новый Структура;
	Данные.Вставить("format", "json");

    Данные.Вставить("VKORG",VKORG);
    Данные.Вставить("KUNRG", KUNNR_RG);
   
    			ITEMS  = Новый массив();
				
				   
						TEMS0 =  Новый Структура();
						TEMS0.Вставить("PIN","WP250110");
						TEMS0.Вставить("BRAND","SFEC");
						TEMS0.Вставить("KWMENG",2);
				ITEMS.Добавить(TEMS0);
				
				
						TEMS1 =  Новый Структура();
						TEMS1.Вставить("PIN","WP250110");
						TEMS1.Вставить("BRAND","SFEC");
						TEMS1.Вставить("KWMENG",2);
				ITEMS.Добавить(TEMS1);
				
				
    Данные.Вставить("ITEMS",ITEMS);
Показать
67. lame 70 18.01.20 20:14 Сейчас в теме
для тех кто будет искать ..
в (66) варианте всегда в ответе приходит таблица с ответом типа -
Заказать позицию не удалось. По запросу ничего не найдено, измените параметры поиска

служба поддержки херней страдает и не знает ничего
можете не звонить. менегеры т.у.пые.

в шапке ОБЯЗАТЕЛЬНЫЙ параметр для заполнения эт реквизит
DBTYP = 3

те

Данные = Новый Структура;
Данные.Вставить("format", "json");

Данные.Вставить("VKORG",VKORG);
Данные.Вставить("KUNRG", KUNNR_RG);
Данные.Вставить("DBTYP",3);// Тип поиска

ITEMS = Новый массив();


TEMS0 = Новый Структура();
TEMS0.Вставить("PIN","WP250110");
TEMS0.Вставить("BRAND","SFEC");
TEMS0.Вставить("KWMENG",2);
ITEMS.Добавить(TEMS0);


TEMS1 = Новый Структура();
TEMS1.Вставить("PIN","WP250110");
TEMS1.Вставить("BRAND","SFEC");
TEMS1.Вставить("KWMENG",2);
ITEMS.Добавить(TEMS1);


Данные.Вставить("ITEMS",ITEMS);


и ответ уже приходит нормальный.


пока - у меня результат на тестовый запрос приходит без ошибки.

могли бы в описании формата указать - что этот параметр обязательный.

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

успехов
68. tivanitsky 18 06.10.22 07:36 Сейчас в теме
(51) Спасибо огромное. Заработало :-)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот