Имя: Пароль:
1C
 
Вопрос про Telegram и 1с , но больше про telegram
0 Velik2k
 
10.02.25
22:25
Пытаюсь редактировать сообщения, с inline_keyboard , использую editMessageReplyMarkup, но клавиатура не меняется пропадает, хотя код отрабатывает. Может кто-то сможет помочь и сталкивался с таким.
отправляю в начале(выводятся) тут все ок.
Преф = "ААИРК";
			МассивКнопокInline = ПолучитьКонтрагентов(10);
			ОтветСистемы = "Выберите контрагента для отчета ""Анализ активности и рейтинг клиентов"":";
			//++Создание кнопок для отправки их в сообщении
			СтрокиInline = Новый Массив;
			Для каждого КнопкаInline ИЗ МассивКнопокInline Цикл
				КнопкиInline = Новый Массив;
				GUID = КнопкаInline.УникальныйИдентификатор();
				ТекстCallback_query = Строка(GUID);
				КнопкиInline.Добавить(Новый Структура("text, callback_data", КнопкаInline.Наименование, ТекстCallback_query));
				СтрокиInline.Добавить(КнопкиInline);
			КонецЦикла;
			МассивКнопокInline = Новый Массив;
			МассивКнопокInline.Добавить(">");
			Для каждого КнопкаInline ИЗ МассивКнопокInline Цикл
				КнопкиInline = Новый Массив;
				КнопкиInline.Добавить(Новый Структура("text, callback_data", КнопкаInline, Преф+"Стр2"));
				СтрокиInline.Добавить(КнопкиInline);
			КонецЦикла;

//--Создание кнопок для отправки их в сообщении
//++гасим мигающую кнопку на которую нажал пользователь
			Приемник = "bot" + СтруктураНастроек.token + "/answerCallbackQuery?callback_query_id=" + СтруктураСообщения.callback_query.id;
			HTTPЗапрос = Новый HTTPЗапрос(Приемник);
			Ответ = HTTPСоединение.Получить(HTTPЗапрос);
			//--гасим мигающую кнопку на которую нажал пользователь
			
			КнопкиJsInline = ЗаписатьJS(Новый Структура("inline_keyboard", СтрокиInline));//После отправки кнопок inline_keyboard он ждет ответа от пользователя callback_query
			
Приемник = "bot" + СтруктураНастроек.token + "/sendMessage?chat_id=" + СтрЗаменить(Формат(СтруктураСообщения.callback_query.message.chat.id, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text=" + ОтветСистемы + "&reply_markup="+КнопкиJsInline;
			HTTPЗапрос = Новый HTTPЗапрос(Приемник);
			Ответ = HTTPСоединение.Получить(HTTPЗапрос);

Пытаюсь поменять содержимое кнопок:
Преф = "ААИРК";
			message_id = ПолучитьПоследнийMessageID(СтруктураНастроек.Ссылка,СтруктураСообщения.callback_query.from.id);
			МассивКнопокInline = ПолучитьКонтрагентов(20);
			МассивУдаления = новый Массив;
			Индекс = 0;
			Пока Индекс <=9 Цикл
				МассивУдаления.Добавить(МассивКнопокInline[Индекс]);
				Индекс = Индекс +1;
			КонецЦикла; 
			Для каждого Строка Из МассивКнопокInline Цикл
				 Для каждого СтрокаУдаления ИЗ МассивУдаления Цикл
				 	НайденныйЭлемент = МассивКнопокInline.Найти(СтрокаУдаления);
				 	Если НайденныйЭлемент <> Неопределено Тогда
						МассивКнопокInline.Удалить(НайденныйЭлемент);
					КонецЕсли; 
				 КонецЦикла; 
			КонецЦикла; 
			ОтветСистемы = "Выберите контрагента для отчета ""Анализ активности и рейтинг клиентов"":";
			
			//++Создание кнопок для отправки их в сообщении
			СтрокиInline = Новый Массив;
			Для каждого КнопкаInline ИЗ МассивКнопокInline Цикл
				КнопкиInline = Новый Массив;
				GUID = КнопкаInline.УникальныйИдентификатор();
				ТекстCallback_query = Строка(GUID);
				КнопкиInline.Добавить(Новый Структура("text, callback_data", КнопкаInline.Наименование, ТекстCallback_query));
				СтрокиInline.Добавить(КнопкиInline);
			КонецЦикла;
			МассивКнопокInline = Новый Массив;
			МассивКнопокInline.Добавить(">");
			Для каждого КнопкаInline ИЗ МассивКнопокInline Цикл
				КнопкиInline = Новый Массив;
				КнопкиInline.Добавить(Новый Структура("text, callback_data", КнопкаInline, Преф+"Стр3"));
				СтрокиInline.Добавить(КнопкиInline);
			КонецЦикла;

			//СтрокиInline.Добавить(КнопкиInline);
			//--Создание кнопок для отправки их в сообщении
			//++гасим мигающую кнопку на которую нажал пользователь
			Приемник = "bot" + СтруктураНастроек.token + "/answerCallbackQuery?callback_query_id=" + СтруктураСообщения.callback_query.id;
			HTTPЗапрос = Новый HTTPЗапрос(Приемник);
			Ответ = HTTPСоединение.Получить(HTTPЗапрос);
			//--гасим мигающую кнопку на которую нажал пользователь
			
			КнопкиJsInline = ЗаписатьJS(Новый Структура("inline_keyboard", СтрокиInline));//После отправки кнопок inline_keyboard он ждет ответа от пользователя callback_query
			Приемник = "bot" + СтруктураНастроек.token + "/editMessageReplyMarkup?chat_id=" + СтрЗаменить(Формат(СтруктураСообщения.callback_query.message.chat.id, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "")+"&message_id="message_id + "&reply_markup="+КнопкиJsInline;
			HTTPЗапрос = Новый HTTPЗапрос(Приемник);
			Ответ = HTTPСоединение.Получить(HTTPЗапрос);
1 Velik2k
 
10.02.25
22:32
все я разобрался
2 Kongo2019
 
10.02.25
22:34
(1) А нам рассказать?
3 Velik2k
 
10.02.25
22:35
добавил формат.
"&message_id="+ Формат(message_id, "ЧДЦ = 0;ЧГ = ")
4 Волшебник
 
10.02.25
22:41
красавчег!