1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-12 11:15:07 +02:00
This commit is contained in:
Anton 2024-03-30 14:13:28 +03:00
commit d5fd301337
8 changed files with 1702 additions and 1528 deletions

View File

@ -467,7 +467,7 @@
Если ЗначениеЗаполнено(Файл) Тогда
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
СоответствиеФайла.Вставить(Файл, MIME);
КонецЕсли;

View File

@ -43,6 +43,8 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ПолучитьИнформациюБота(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
URL = "api.telegram.org/bot" + Токен + "/getMe";
Ответ = OPI_Инструменты.Get(URL);
@ -60,6 +62,8 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ПолучитьОбновления(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
URL = "api.telegram.org/bot" + Токен + "/getUpdates";
Ответ = OPI_Инструменты.Get(URL);
Возврат Ответ;
@ -77,6 +81,9 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция УстановитьWebhook(Знач Токен, Знач URL) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
Параметры_ = Новый Структура;
Параметры_.Вставить("url", URL);
@ -97,6 +104,8 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция УдалитьWebhook(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
URL = "api.telegram.org/bot" + Токен + "/deleteWebHook";
Ответ = OPI_Инструменты.Get(URL);
Возврат Ответ;
@ -120,6 +129,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ОтправитьТекстовоеСообщение(Знач Токен, Знач IDЧата, Знач Текст, Знач Клавиатура = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
OPI_Инструменты.ЗаменитьСпецСимволы(Текст);
Параметры_ = Новый Структура;
@ -253,10 +267,15 @@
// Типы: audio, document, photo, video
// Нельзя замешивать разные типы!
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
URL = "api.telegram.org/bot" + Токен + "/sendMediaGroup";
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
СтруктураФайлов = Новый Структура;
Медиа = Новый Массив;
@ -290,6 +309,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ОтправитьМестоположение(Знач Токен, Знач IDЧата, Знач Широта, Знач Долгота, Знач Клавиатура = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Широта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Долгота);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
URL = "api.telegram.org/bot" + Токен + "/sendLocation";
@ -322,14 +347,20 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ОтправитьКонтакт(Знач Токен, Знач IDЧата, Знач Имя, Знач Фамилия, Знач Телефон, Знач Клавиатура = "") Экспорт
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Фамилия);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Телефон);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
URL = "api.telegram.org/bot" + Токен + "/sendContact";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("first_name" , Имя);
Параметры_.Вставить("last_name" , Фамилия);
Параметры_.Вставить("phone_number", Строка(Телефон));
Параметры_.Вставить("phone_number", Телефон);
Параметры_.Вставить("reply_markup", Клавиатура);
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
@ -356,14 +387,18 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ОтправитьОпрос(Знач Токен, Знач IDЧата, Знач Вопрос, Знач МассивОтветов, Знач Анонимный = Истина) Экспорт
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
Ответы = OPI_Инструменты.JSONСтрокой(МассивОтветов);
URL = "api.telegram.org/bot" + Токен + "/sendPoll";
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вопрос);
OPI_ПреобразованиеТипов.ПолучитьСтроку(МассивОтветов, Истина);
OPI_ПреобразованиеТипов.ПолучитьБулево(Анонимный);
URL = "api.telegram.org/bot" + Токен + "/sendPoll";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("question" , Вопрос);
Параметры_.Вставить("options" , Ответы);
Параметры_.Вставить("options" , МассивОтветов);
Если Не Анонимный Тогда
Параметры_.Вставить("is_anonymous", Ложь);
@ -390,11 +425,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ПереслатьСообщение(Знач Токен, Знач IDОригинала, Знач ОткудаID, Знач КудаID) Экспорт
URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
IDОригинала = OPI_Инструменты.ЧислоВСтроку(IDОригинала);
ОткудаID = OPI_Инструменты.ЧислоВСтроку(ОткудаID);
КудаID = OPI_Инструменты.ЧислоВСтроку(КудаID);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОригинала);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ОткудаID);
OPI_ПреобразованиеТипов.ПолучитьСтроку(КудаID);
URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("from_chat_id", ОткудаID);
Параметры_.Вставить("message_id" , IDОригинала);
@ -423,9 +459,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция Бан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
URL = "api.telegram.org/bot" + Токен + "/banChatMember";
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
IDПользователя = OPI_Инструменты.ЧислоВСтроку(IDПользователя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
URL = "api.telegram.org/bot" + Токен + "/banChatMember";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
@ -450,9 +488,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция Разбан(Знач Токен, Знач IDЧата, Знач IDПользователя) Экспорт
URL = "api.telegram.org/bot" + Токен + "/unbanChatMember";
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
IDПользователя = OPI_Инструменты.ЧислоВСтроку(IDПользователя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
URL = "api.telegram.org/bot" + Токен + "/unbanChatMember";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
@ -484,9 +524,13 @@
, Знач ДатаИстечения = ""
, Знач ЛимитПользователей = 0) Экспорт
URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink";
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ЛимитПользователей);
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаИстечения);
URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
@ -516,11 +560,12 @@
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ЗакрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
URL = "api.telegram.org/bot" + Токен + "/pinChatMessage";
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
IDСообщения = OPI_Инструменты.ЧислоВСтроку(IDСообщения);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения);
URL = "api.telegram.org/bot" + Токен + "/pinChatMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
@ -544,11 +589,12 @@
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ОткрепитьСообщение(Знач Токен, Знач IDЧата, Знач IDСообщения) Экспорт
URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage";
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
IDСообщения = OPI_Инструменты.ЧислоВСтроку(IDСообщения);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения);
URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
@ -571,9 +617,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ПолучитьЧислоУчастников(Знач Токен, Знач IDЧата) Экспорт
URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount";
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
@ -598,6 +645,9 @@
// Соответствие из Строка - Обработанные данные с признаком достоверности
Функция ОбработатьДанныеTMA(Знач СтрокаДанных, Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаДанных);
СтрокаДанных = РаскодироватьСтроку(СтрокаДанных, СпособКодированияСтроки.КодировкаURL);
СтруктураДанных = OPI_Инструменты.ПараметрыЗапросаВСоответствие(СтрокаДанных);
Ключ = "WebAppData";
@ -665,6 +715,8 @@
// Соответствие Из КлючИЗначение - Ключ > ID, Значение > Emoji
Функция ПолучитьСписокИконокАватаров(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Result = "result";
URL = "api.telegram.org/bot" + Токен + "/getForumTopicIconStickers";
Ответ = OPI_Инструменты.Get(URL);
@ -795,7 +847,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ИзменитьИмяГлавнойТемыФорума(Знач Токен, Знач IDЧата, Знач Заголовок) Экспорт
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
Параметры_ = Новый Структура;
Параметры_.Вставить("chat_id", IDЧата);
Параметры_.Вставить("name" , Заголовок);
@ -819,8 +874,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
Функция ОчиститьСписокЗакрепленныхСообщенийТемы(Знач Токен, Знач IDЧата, Знач IDТемы = "") Экспорт
IDТемы = OPI_Инструменты.ЧислоВСтроку(IDТемы);
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDТемы);
Параметры_ = Новый Структура;
Параметры_.Вставить("chat_id", IDЧата);
@ -858,6 +915,10 @@
, Знач ПодСообщением = Ложь
, Знач ОднаПодОдной = Истина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(ПодСообщением);
OPI_ПреобразованиеТипов.ПолучитьБулево(ОднаПодОдной);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКнопок);
Если ОднаПодОдной Тогда
Строки = СоздатьВысокуюКлавиатуру(МассивКнопок);
Иначе
@ -888,7 +949,12 @@
Функция ОтправитьФайл(Знач Токен, Знач IDЧата, Знач Текст, Знач Файл, Знач Вид, Знач Клавиатура)
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
Расширение = "";
Метод = "";
@ -898,7 +964,7 @@
Если Не ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
ТекущийФайл = Новый Файл(Файл);
Расширение = ?(Вид = "document" Или Вид = "animation", ТекущийФайл.Расширение, "");
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
КонецЕсли;
Расширение = СтрЗаменить(Расширение, ".", "___");
@ -926,8 +992,10 @@
, Знач IDИконки = Неопределено
, Знач IDТемы = "")
IDТемы = OPI_Инструменты.ЧислоВСтроку(IDТемы);
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDТемы);
Параметры_ = Новый Структура;
Параметры_.Вставить("name" , Заголовок);
@ -950,6 +1018,10 @@
Функция УправлениеСостояниемТемыФорума(Знач Токен, Знач IDЧата, Знач Статус, Знач IDТемы = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDТемы);
Если ЗначениеЗаполнено(IDТемы) Тогда
Форум = "Forum";
Иначе
@ -975,7 +1047,9 @@
Функция УправлениеВидимостьюГлавнойТемыФорума(Знач Токен, Знач IDЧата, Знач Скрыть)
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьБулево(Скрыть);
Если Скрыть Тогда
Метод = "/hideGeneralForumTopic";
@ -1047,22 +1121,31 @@
Процедура СформироватьМассивМедиа(Знач СоответствиеФайлов, Знач Текст, СтруктураФайлов, Медиа)
Счетчик = 0;
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
Для Каждого ТекущийФайл Из СоответствиеФайлов Цикл
Если Не ТипЗнч(ТекущийФайл.Ключ) = Тип("ДвоичныеДанные") Тогда
ДД = OPI_Инструменты.ПолучитьДвоичныеДанные(ТекущийФайл.Ключ);
Двоичные = ТекущийФайл.Ключ;
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Двоичные);
ЭтотФайл = Новый Файл(ТекущийФайл.Ключ);
ИмяМедиа = ТекущийФайл.Значение + Строка(Счетчик) + ?(ТекущийФайл.Значение = "document",
ЭтотФайл.Расширение, "");
ИмяМедиа = ТекущийФайл.Значение + Строка(Счетчик)
+ ?(ТекущийФайл.Значение = "document", ЭтотФайл.Расширение, "");
ПолноеИмяМедиа = СтрЗаменить(ИмяМедиа, ".", "___");
Иначе
ДД = ТекущийФайл.Ключ;
Двоичные = ТекущийФайл.Ключ;
ИмяМедиа = ТекущийФайл.Значение + Строка(Счетчик);
ПолноеИмяМедиа = ИмяМедиа;
КонецЕсли;
СтруктураФайлов.Вставить(ПолноеИмяМедиа, ДД);
СтруктураФайлов.Вставить(ПолноеИмяМедиа, Двоичные);
СтруктураМедиа = Новый Структура;
СтруктураМедиа.Вставить("type", ТекущийФайл.Значение);

View File

@ -304,7 +304,8 @@
Для Каждого ФайлОтправки Из МассивФайлов Цикл
ФайлОтправки = OPI_Инструменты.ПолучитьДвоичныеДанные(ФайлОтправки);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ФайлОтправки);
IDМедиа = ЗагрузитьМедиафайл(ФайлОтправки, ТипВложений, Параметры_)[MIS];
МассивМедиа.Добавить(IDМедиа);
@ -324,6 +325,8 @@
Функция ЗагрузитьМедиафайл(Знач Файл, Знач Тип, Знач Параметры)
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
ProcessingInfo = "processing_info";
MediaKey = "media_key";
MIS = "media_id_string";
@ -336,8 +339,7 @@
СоответствиеMIME.Вставить("tweet_image", "image/jpeg");
СоответствиеMIME.Вставить("tweet_video", "video/mp4");
СоответствиеMIME.Вставить("tweet_gif" , "image/gif");
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
URL = "https://upload.twitter.com/1.1/media/upload.json";
Размер = Файл.Размер();

View File

@ -50,8 +50,10 @@
// Строка - URL, по которому необходимо перейти в браузере
Функция СоздатьСсылкуПолученияТокена(Знач App_id) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(App_id);
// access_token нужно будет забрать из параметра в строке адреса браузера
Возврат "https://oauth.vk.com/authorize?client_id=" + OPI_Инструменты.ЧислоВСтроку(App_id)
Возврат "https://oauth.vk.com/authorize?client_id=" + App_id
+ "&scope=offline,wall,groups,photos,stats,stories,ads,market"
+ "&v=5.131&response_type=token&redirect_uri=https://api.vk.com/blank.html";
@ -82,6 +84,10 @@
, Знач СсылкаПодЗаписью = ""
, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(СсылкаПодЗаписью);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКартинок);
OPI_ПреобразованиеТипов.ПолучитьБулево(Рекламный);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
СтрокаВложений = "";
@ -134,8 +140,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция УдалитьПост(Знач IDПоста, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("post_id", OPI_Инструменты.ЧислоВСтроку(IDПоста));
Параметры_.Вставить("post_id", IDПоста);
Ответ = OPI_Инструменты.Get("api.vk.com/method/wall.delete", Параметры_);
@ -156,6 +164,9 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция СоздатьОпрос(Знач Вопрос, Знач МассивОтветов, Знач Картинка = "", Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вопрос);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивОтветов);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.getPhotoUploadServer", Параметры_);
Response = "response";
@ -166,11 +177,11 @@
Параметры_.Вставить("upload_url", URL);
Если Не Картинка = "" Тогда
Если ЗначениеЗаполнено(Картинка) Тогда
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
Путь = Картинка;
Картинка = OPI_Инструменты.ПолучитьДвоичныеДанные(Картинка);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
Иначе
Путь = ("image.jpeg");
КонецЕсли;
@ -240,6 +251,9 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция СоздатьАльбом(Знач Наименование, Знач Описание = "", Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("title" , Наименование);
@ -263,6 +277,8 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция УдалитьАльбом(Знач IDАльбома, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDАльбома);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("album_id", OPI_Инструменты.ЧислоВСтроку(IDАльбома));
@ -283,7 +299,9 @@
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция СоздатьИсторию(Знач Картинка, Знач URL = "", Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("link_text" , "more");
Параметры_.Вставить("link_url" , URL);
@ -307,9 +325,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция СохранитьКартинкуВАльбом(Знач IDАльбома, Знач Картинка, Знач Описание = "", Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDАльбома);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("album_id", OPI_Инструменты.ЧислоВСтроку(IDАльбома));
Параметры_.Вставить("album_id", IDАльбома);
Параметры_.Вставить("caption" , Описание);
Возврат ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Альбом");
@ -327,8 +348,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция УдалитьКартинку(Знач IDКартинки, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКартинки);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("photo_id", OPI_Инструменты.ЧислоВСтроку(IDКартинки));
Параметры_.Вставить("photo_id", IDКартинки);
Ответ = OPI_Инструменты.Get("api.vk.com/method/photos.delete", Параметры_);
@ -352,6 +375,9 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция СоздатьОбсуждение(Знач Наименование, Знач ТекстПервогоСообщения, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстПервогоСообщения);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("title", Наименование);
Параметры_.Вставить("text" , ТекстПервогоСообщения);
@ -374,8 +400,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ЗакрытьОбсуждение(Знач IDОбсуждения, Знач УдалитьПолностью = Ложь, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОбсуждения);
OPI_ПреобразованиеТипов.ПолучитьБулево(УдалитьПолностью);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("topic_id", OPI_Инструменты.ЧислоВСтроку(IDОбсуждения));
Параметры_.Вставить("topic_id", IDОбсуждения);
Метод = ?(УдалитьПолностью, "deleteTopic", "closeTopic");
Ответ = OPI_Инструменты.Get("api.vk.com/method/board." + Метод, Параметры_);
@ -395,8 +424,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ОткрытьОбсуждение(Знач IDОбсуждения, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОбсуждения);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("topic_id", OPI_Инструменты.ЧислоВСтроку(IDОбсуждения));
Параметры_.Вставить("topic_id", IDОбсуждения);
Ответ = OPI_Инструменты.Get("api.vk.com/method/board.openTopic", Параметры_);
@ -416,8 +447,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция НаписатьВОбсуждение(Знач IDОбсуждения, Знач Текст, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОбсуждения);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("topic_id", OPI_Инструменты.ЧислоВСтроку(IDОбсуждения));
Параметры_.Вставить("topic_id", IDОбсуждения);
Параметры_.Вставить("message" , Текст);
Ответ = OPI_Инструменты.Get("api.vk.com/method/board.createComment", Параметры_);
@ -442,9 +476,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ПоставитьЛайк(Знач IDПоста, Знач IDСтены = "", Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСтены);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
IDСтены = ?(ЗначениеЗаполнено(IDСтены), IDСтены, Параметры_["owner_id"]);
ОбъектВК = "wall" + OPI_Инструменты.ЧислоВСтроку(IDСтены) + "_" + OPI_Инструменты.ЧислоВСтроку(IDПоста);
ОбъектВК = "wall" + IDСтены + "_" + OPI_Инструменты.ЧислоВСтроку(IDПоста);
Параметры_.Вставить("type" , "post");
Параметры_.Вставить("object" , ОбъектВК);
@ -476,18 +513,20 @@
, Знач Рекламный = Ложь
, Знач Параметры = "") Экспорт
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Источник = ?(ЗначениеЗаполнено(IDСтены)
, OPI_Инструменты.ЧислоВСтроку(IDСтены)
, OPI_Инструменты.ЧислоВСтроку(Параметры_["owner_id"]));
Приемник = ?(ЗначениеЗаполнено(ЦелеваяСтена)
, СтрЗаменить(OPI_Инструменты.ЧислоВСтроку(ЦелеваяСтена), "-", "")
, OPI_Инструменты.ЧислоВСтроку(Параметры_["group_id"]));
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
GroupId = Параметры_["group_id"];
OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСтены);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ЦелеваяСтена);
OPI_ПреобразованиеТипов.ПолучитьБулево(Рекламный);
Источник = ?(ЗначениеЗаполнено(IDСтены), IDСтены, GroupId);
Приемник = ?(ЗначениеЗаполнено(ЦелеваяСтена), ЦелеваяСтена, GroupId);
Параметры_.Вставить("object" , "wall" + Источник + "_" + OPI_Инструменты.ЧислоВСтроку(IDПоста));
Параметры_.Вставить("group_id" , Приемник);
Параметры_.Вставить("group_id" , СтрЗаменить(Приемник, "-", ""));
Параметры_.Вставить("mark_as_ads" , ?(Рекламный, 1, 0));
Ответ = OPI_Инструменты.Get("api.vk.com/method/wall.repost", Параметры_);
@ -514,11 +553,16 @@
, Знач Клавиатура = ""
, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Communitytoken);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("access_token", Communitytoken);
Параметры_.Вставить("user_id" , OPI_Инструменты.ЧислоВСтроку(IDПользователя));
Параметры_.Вставить("peer_id" , OPI_Инструменты.ЧислоВСтроку(IDПользователя));
Параметры_.Вставить("user_id" , IDПользователя);
Параметры_.Вставить("peer_id" , IDПользователя);
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("random_id" , 0);
Параметры_.Вставить("message" , Текст);
@ -545,17 +589,24 @@
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция НаписатьКомментарий(Знач IDПоста, Знач IDСтены, Знач Текст, Знач Параметры = "") Экспорт
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
GroupId = Параметры_["group_id"];
Параметры_.Вставить("owner_id" , OPI_Инструменты.ЧислоВСтроку(IDСтены));
Параметры_.Вставить("from_group" , OPI_Инструменты.ЧислоВСтроку(Параметры_["group_id"]));
Параметры_.Вставить("post_id" , OPI_Инструменты.ЧислоВСтроку(IDПоста));
OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСтены);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
Параметры_.Вставить("owner_id" , IDСтены);
Параметры_.Вставить("from_group" , GroupId);
Параметры_.Вставить("post_id" , IDПоста);
Параметры_.Вставить("message" , Текст);
Параметры_.Удалить("group_id");
Ответ = OPI_Инструменты.Get("api.vk.com/method/wall.createComment", Параметры_);
Ответ = OPI_Инструменты.Get("api.vk.com/method/wall.createComment", Параметры_);
Возврат Ответ;
@ -572,6 +623,8 @@
// Строка - Сокращенный URL
Функция СократитьСсылку(Знач URL, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
Response = "response";
Параметры_ = Новый Структура;
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
@ -599,6 +652,9 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ПолучитьСтатистику(Знач ДатаНачала, Знач ДатаОкончания, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаНачала);
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаОкончания);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
ДатаНачала = Формат(ДатаНачала - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
@ -627,6 +683,8 @@
// Массив из Произвольный - Массив данных статистики по постам
Функция ПолучитьСтатистикуПостов(Знач МассивИДПостов, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивИДПостов);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
МассивОтветов = Новый Массив;
МассивНабора = Новый Массив;
@ -685,9 +743,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция СоздатьРекламнуюКампанию(Знач IDКабинета, Знач Наименование, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("account_id", OPI_Инструменты.ЧислоВСтроку(IDКабинета));
Параметры_.Вставить("account_id", IDКабинета);
МассивСтруктур = Новый Массив;
ДатаСтарт = Формат(ТекущаяДата - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
@ -735,14 +796,21 @@
, Знач Параметры = "") Экспорт
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Линк = "https://vk.com/wall-"
+ Параметры_["group_id"]
+ "_"
+ OPI_Инструменты.ЧислоВСтроку(IDПоста);
GroupId = Параметры_["group_id"];
OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерКампании);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ДневнойЛимит);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерКатегории);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоста);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
Линк = "https://vk.com/wall-" + GroupId + "_" + IDПоста;
МассивСтруктур = Новый Массив;
СтруктураКампании = Новый Структура;
СтруктураКампании.Вставить("campaign_id" , OPI_Инструменты.ЧислоВСтроку(НомерКампании));
СтруктураКампании.Вставить("campaign_id" , НомерКампании);
СтруктураКампании.Вставить("ad_format" , 9);
СтруктураКампании.Вставить("conversion_event_id" , 1);
СтруктураКампании.Вставить("autobidding" , 1);
@ -751,9 +819,9 @@
СтруктураКампании.Вставить("ad_platform" , "all");
СтруктураКампании.Вставить("publisher_platforms" , "vk");
СтруктураКампании.Вставить("publisher_platforms_auto" , "1");
СтруктураКампании.Вставить("day_limit" , OPI_Инструменты.ЧислоВСтроку(ДневнойЛимит));
СтруктураКампании.Вставить("day_limit" , ДневнойЛимит);
СтруктураКампании.Вставить("all_limit" , "0");
СтруктураКампании.Вставить("category1_id" , OPI_Инструменты.ЧислоВСтроку(НомерКатегории));
СтруктураКампании.Вставить("category1_id" , НомерКатегории);
СтруктураКампании.Вставить("age_restriction" , 0);
СтруктураКампании.Вставить("status" , 1);
СтруктураКампании.Вставить("name" , "Объявление");
@ -761,10 +829,10 @@
МассивСтруктур.Добавить(СтруктураКампании);
JSONДата = OPI_Инструменты.JSONСтрокой(МассивСтруктур);
OPI_ПреобразованиеТипов.ПолучитьСтроку(МассивСтруктур, Истина);
Параметры_.Вставить("data" , JSONДата);
Параметры_.Вставить("account_id" , OPI_Инструменты.ЧислоВСтроку(IDКабинета));
Параметры_.Вставить("data" , МассивСтруктур);
Параметры_.Вставить("account_id" , IDКабинета);
Ответ = OPI_Инструменты.Get("api.vk.com/method/ads.createAds", Параметры_);
@ -784,21 +852,24 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ПриостановитьРекламноеОбъявление(Знач IDКабинета, Знач IDОбъявления, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDОбъявления);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("account_id", OPI_Инструменты.ЧислоВСтроку(IDКабинета));
Параметры_.Вставить("account_id", IDКабинета);
МассивСтруктур = Новый Массив;
СтруктураКампании = Новый Структура;
СтруктураКампании.Вставить("ad_id" , OPI_Инструменты.ЧислоВСтроку(IDОбъявления));
СтруктураКампании.Вставить("ad_id" , IDОбъявления);
СтруктураКампании.Вставить("status" , 0);
МассивСтруктур.Добавить(СтруктураКампании);
JSONДата = OPI_Инструменты.JSONСтрокой(МассивСтруктур);
OPI_ПреобразованиеТипов.ПолучитьСтроку(МассивСтруктур, Истина);
Параметры_.Вставить("data", JSONДата);
Параметры_.Вставить("data", МассивСтруктур);
Ответ = OPI_Инструменты.Get("api.vk.com/method/ads.updateAds", Параметры_);
@ -867,13 +938,15 @@
// Соответствие Из КлючИЗначение - Массив соответствий товаров
Функция ПолучитьСписокТоваров(Знач Подборка = "", Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("count" , 200);
Параметры_.Вставить("extended" , 1);
Параметры_.Вставить("with_disabled", 1);
Если ЗначениеЗаполнено(Подборка) Тогда
Параметры_.Вставить("album_id", OPI_Инструменты.ЧислоВСтроку(Подборка));
Параметры_.Вставить("album_id", Подборка);
КонецЕсли;
МассивТоваров = Новый Массив;
@ -896,6 +969,8 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ПолучитьТоварыПоИД(Знач Товары, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Товары);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
СтрокаТоваров = "";
Owner = "owner_id";
@ -1000,7 +1075,7 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция УдалитьТовар(Знач Товар, Знач Параметры = "") Экспорт
Товар = OPI_Инструменты.ЧислоВСтроку(Товар);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Товар);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("item_id", Товар);
@ -1024,6 +1099,9 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция СгруппироватьТовары(Знач МассивТоваров, Знач СуществующаяГруппа = "", Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(СуществующаяГруппа);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивТоваров);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
МассивТоваров_ = Новый Массив;
@ -1036,7 +1114,7 @@
Параметры_.Вставить("item_ids", Товары);
Если ЗначениеЗаполнено(СуществующаяГруппа) Тогда
Параметры_.Вставить("item_group_id", OPI_Инструменты.ЧислоВСтроку(СуществующаяГруппа));
Параметры_.Вставить("item_group_id", СуществующаяГруппа);
КонецЕсли;
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.groupItems", Параметры_);
@ -1126,6 +1204,8 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ПолучитьПодборкиПоИД(Знач Подборки, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Подборки);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
СтрокаПодборок = "";
@ -1213,23 +1293,17 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ДобавитьТоварВПодборку(Знач МассивТоваров, Знач Подборка, Знач Параметры = "") Экспорт
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
МассивТовар_ = Новый Массив;
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивТоваров);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
Если Не ТипЗнч(МассивТоваров) = Тип("Массив") Тогда
Товар = МассивТоваров;
МассивТовар = Новый Массив;
МассивТовар.Добавить(Товар);
КонецЕсли;
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
МассивТоваров_ = Новый Массив;
Для Каждого Товар Из МассивТовар Цикл
МассивТовар_.Добавить(OPI_Инструменты.ЧислоВСтроку(Товар));
Для Каждого Товар Из МассивТоваров Цикл
МассивТоваров_.Добавить(OPI_Инструменты.ЧислоВСтроку(Товар));
КонецЦикла;
СписокТоваров = СтрСоединить(МассивТовар_, ",");
СписокТоваров = СтрСоединить(МассивТоваров_, ",");
Параметры_.Вставить("item_ids" , СписокТоваров);
Параметры_.Вставить("album_ids", Подборка);
@ -1252,10 +1326,13 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция УдалитьТоварИзПодборки(Знач Товар, Знач Подборка, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Товар);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
Параметры_.Вставить("item_id" , OPI_Инструменты.ЧислоВСтроку(Товар));
Параметры_.Вставить("item_id" , Товар);
Параметры_.Вставить("album_ids", Подборка);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.removeFromAlbum", Параметры_);
@ -1275,7 +1352,7 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция УдалитьПодборку(Знач Подборка, Знач Параметры = "") Экспорт
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("album_id", Подборка);
@ -1321,6 +1398,8 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция СоздатьСвойствоТовара(Знач Название, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Название);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("title", Название);
@ -1342,9 +1421,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ИзменитьСвойствоТовара(Знач Название, Знач Свойство, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Название);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Свойство);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("title" , Название);
Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство));
Параметры_.Вставить("property_id", Свойство);
Параметры_.Вставить("type" , "text");
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editProperty", Параметры_);
@ -1364,8 +1446,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция УдалитьСвойствоТовара(Знач Свойство, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Свойство);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство));
Параметры_.Вставить("property_id", Свойство);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deleteProperty", Параметры_);
@ -1385,8 +1469,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ДобавитьВариантСвойстваТовара(Знач Значение, Знач Свойство, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Свойство);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство));
Параметры_.Вставить("property_id", Свойство);
Параметры_.Вставить("title" , Значение);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addPropertyVariant", Параметры_);
@ -1407,9 +1494,13 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция ИзменитьВариантСвойстваТовара(Знач Значение, Знач Свойство, Знач Вариант, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Свойство);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вариант);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("property_id", OPI_Инструменты.ЧислоВСтроку(Свойство));
Параметры_.Вставить("variant_id" , OPI_Инструменты.ЧислоВСтроку(Вариант));
Параметры_.Вставить("property_id", Свойство);
Параметры_.Вставить("variant_id" , Вариант);
Параметры_.Вставить("title" , Значение);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editPropertyVariant", Параметры_);
@ -1429,8 +1520,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
Функция УдалитьВариантСвойстваТовара(Знач Вариант, Знач Параметры = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вариант);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("variant_id", OPI_Инструменты.ЧислоВСтроку(Вариант));
Параметры_.Вставить("variant_id", Вариант);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deletePropertyVariant", Параметры_);
@ -1551,13 +1644,12 @@
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
КлючКартинка = СтрЗаменить(Картинка, ".", "___");
ЗначениеКартинка = OPI_Инструменты.ПолучитьДвоичныеДанные(Картинка);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
Иначе
КлючКартинка = "image___jpeg";
ЗначениеКартинка = Картинка;
КонецЕсли;
Файлы.Вставить(КлючКартинка, ЗначениеКартинка);
Файлы.Вставить(КлючКартинка, Картинка);
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
URL = Ответ[Response]["upload_url"];
@ -1635,16 +1727,19 @@
Функция УправлениеТоваром(Знач ОписаниеТовара, Знач ИДТовара = "", Знач Подборка = "", Знач Параметры = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДТовара);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеТовара);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("v", "5.199");
Response = "response";
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
ЗаполнитьПоляЗапросаТовара(ОписаниеТовара, Параметры_);
Если ЗначениеЗаполнено(ИДТовара) Тогда
Параметры_.Вставить("item_id", OPI_Инструменты.ЧислоВСтроку(ИДТовара));
Параметры_.Вставить("item_id", ИДТовара);
Метод = "edit";
Иначе
Метод = "add";
@ -1654,7 +1749,7 @@
Если Не ЗначениеЗаполнено(ИДТовара) Тогда
ИДТовара = Ответ[Response]["market_item_id"];
ИДТовара = OPI_Инструменты.ЧислоВСтроку(ИДТовара);
ИДТовара = ИДТовара;
КонецЕсли;
Если ЗначениеЗаполнено(Подборка) Тогда
@ -1672,6 +1767,12 @@
, Знач Скрытая = Ложь
, Знач Параметры = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Название);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДПодборки);
OPI_ПреобразованиеТипов.ПолучитьБулево(Основная);
OPI_ПреобразованиеТипов.ПолучитьБулево(Скрытая);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
PhotoID = "photo_id";
Response = "response";
@ -1680,7 +1781,7 @@
Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Товар");
ИДФото = Ответ[Response][PhotoID];
ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДФото);
Параметры_.Вставить(PhotoID, ИДФото);
@ -1693,7 +1794,7 @@
Если Не Подборки.Количество() = 0 Тогда
ИДФото = Подборки[0]["photo"]["id"];
ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДФото);
Параметры_.Вставить(PhotoID, ИДФото);
КонецЕсли;
@ -1706,7 +1807,7 @@
Параметры_.Вставить("is_hidden" , ?(Скрытая, 1, 0));
Если ЗначениеЗаполнено(ИДПодборки) Тогда
Параметры_.Вставить("album_id", OPI_Инструменты.ЧислоВСтроку(ИДПодборки));
Параметры_.Вставить("album_id", ИДПодборки);
Метод = "editAlbum";
Иначе
Метод = "addAlbum";

View File

@ -265,9 +265,10 @@
// Строка, Произвольный, ДвоичныеДанные, HTTPОтвет, Неопределено - Ответ сервера Yandex
Функция ЗагрузитьФайл(Знач Токен, Знач Путь, Знач Файл, Знач Перезаписывать = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
Заголовки = ЗаголовокАвторизации(Токен);
Href = "href";
Файл = OPI_Инструменты.ПолучитьДвоичныеДанные(Файл);
Href = "href";
Файл = Новый Структура("file", Файл);
Параметры = Новый Структура;

View File

@ -118,16 +118,12 @@
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_Token");
IDЧата = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_ChatID");
IDКанала = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_ChannelID");
Тема = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_TopicID");
Форум = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_ForumID");
ЧатТема = Форум + "*" + Тема;
Текст = "Сообщение из автоматического теста";
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, ЧатТема, Текст));
IDСообщения = OPI_Инструменты.ЧислоВСтроку(МассивРезультатов[1]["result"]["message_id"]);
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Telegram_ChannelMessageID", IDСообщения);
@ -151,9 +147,7 @@
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_Token");
IDЧата = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_ChatID");
IDКанала = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_ChannelID");
Тема = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_TopicID");
Форум = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_ForumID");
ЧатТема = Форум + "*" + Тема;
Текст = "Сообщение из автоматического теста";
Картинка = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
ИВФ = ПолучитьИмяВременногоФайла("png");
@ -161,7 +155,6 @@
МассивРезультатов = Новый Массив;
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКартинку(Токен, IDЧата , Текст, Картинка));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКартинку(Токен, ЧатТема , Текст, Картинка));
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКартинку(Токен, IDКанала, Текст, ИВФ));
Для Каждого Результат Из МассивРезультатов Цикл
@ -581,7 +574,9 @@
Ok_ = "ok";
Result = "result";
ТипСоответствие = Тип("Соответствие");
Текст = "Сообщение из автоматического теста";
Картинка = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_Token");
Чат = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Telegram_ForumID");
Имя = "Тестовая тема";
@ -599,7 +594,23 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Ok_]).Равно(Истина);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Result]["name"]).Равно(Имя);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Result]["icon_custom_emoji_id"]).Равно(Иконка);
ЧатТема = Чат + "*" + Тема;
Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, ЧатТема, Текст);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["text"]).Равно(Текст);
Результат = OPI_Telegram.ОтправитьКартинку(Токен, ЧатТема , Текст, Картинка);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие") .Заполнено();
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["caption"]).Равно(Текст);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["photo"]).ИмеетТип("Массив");
Результат = OPI_Telegram.ИзменитьТемуФорума(Токен, Чат, Тема, НовоеИмя, НовяИконка);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьТемуФорума");

View File

@ -272,40 +272,6 @@
КонецФункции
Функция ПолучитьДвоичныеДанные(Знач Значение) Экспорт
Попытка
Если ТипЗнч(Значение) <> Тип("ДвоичныеДанные") Тогда
Файл = Новый Файл(Значение);
Если Файл.Существует() Тогда
Возврат Новый ДвоичныеДанные(Значение);
Иначе
ИВФ = ПолучитьИмяВременногоФайла();
КопироватьФайл(Значение, ИВФ);
Двоичные = Новый ДвоичныеДанные(ИВФ);
УдалитьФайлы(ИВФ);
Возврат Двоичные;
КонецЕсли;
Иначе
Возврат Значение;
КонецЕсли;
Исключение
ВызватьИсключение "Ошибка получения данных файла из параметра";
КонецПопытки
КонецФункции
#КонецОбласти
#КонецОбласти

File diff suppressed because it is too large Load Diff