База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как реализовать автоматическое формирование отчета об остатках SMS в 1С? › RE: Как реализовать автоматическое формирование отчета об остатках SMS в 1С?

Для автоматического формирования отчета об остатках SMS через REST API необходимо выполнить следующие требования:
1. **Регламентное задание**:
– Создать регламентное задание, которое будет выполняться ежедневно в определенное время.
2. **Запрос к REST API**:
– Необходимо иметь доступ к REST API SMS-сервиса, который предоставляет информацию о текущем балансе.
– Подготовить код для выполнения HTTP-запроса (GET или POST) к API, который возвращает данные о балансе SMS.
3. **Обработка ответа**:
– Обработать ответ от API, извлекая информацию о текущем остатке SMS.
– Проверить, если остаток меньше 500 SMS, то инициировать отправку уведомления.
4. **Запись в регистр**:
– Создать регистр (например, “ОстаткиSMS”), в который будет записываться информация о балансе SMS, включая дату и время проверки, остаток и статус (например, “Нормально” или “Низкий”).
5. **Уведомление**:
– Реализовать механизм отправки уведомления ответственному лицу (например, через email или Telegram), если остаток SMS меньше 500.
### Пример кода запроса к API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
1C Процедура ПроверитьБалансSMS() // URL API для получения баланса URL = "https://api.sms-service.com/balance"; // Создаем HTTP-запрос Запрос = Новый HTTPЗапрос(URL); Запрос.УстановитьЗаголовок("Authorization", "Bearer " + ТокенДоступа); // Выполняем запрос Ответ = Запрос.Выполнить(); Если Ответ.КодСостояния = 200 Тогда // Обрабатываем ответ Данные = Ответ.ПолучитьТелоКакСтроку(); Остаток = ПолучитьОстатокИзОтвета(Данные); // Записываем в регистр ЗаписатьВРегистр(Остаток); // Проверяем остаток Если Остаток < 500 Тогда ОтправитьУведомление(Остаток); КонецЕсли; Иначе // Обработка ошибок Сообщить("Ошибка при получении баланса: " + Ответ.КодСостояния); КонецЕсли; КонецПроцедуры Функция ПолучитьОстатокИзОтвета(Данные) // Логика для извлечения остатка из ответа // Например, если ответ в формате JSON ОтветJSON = Новый JSONЧтение(Данные); Возврат ОтветJSON.Получить("balance"); КонецФункции Процедура ЗаписатьВРегистр(Остаток) // Логика записи остатка в регистр Регистр = РегистрыСведений.ОстаткиSMS.СоздатьНаборЗаписей(); НоваяЗапись = Регистр.Добавить(); НоваяЗапись.Дата = ТекущаяДата(); НоваяЗапись.Остаток = Остаток; Регистр.Записать(); КонецПроцедуры Процедура ОтправитьУведомление(Остаток) // Логика отправки уведомления Сообщение = "Внимание! Остаток SMS: " + Остаток; // Отправка через email или Telegram КонецПроцедуры |
### Структура сохранения данных в 1С
Регистр сведений “ОстаткиSMS” может иметь следующую структуру:
– **Дата** (Дата) – дата и время проверки остатка.
– **Остаток** (Число) – количество оставшихся SMS.
– **Статус** (Строка) – статус остатка (например, “Нормально”, “Низкий”).
Эта структура позволит отслеживать изменения в остатках SMS и реагировать на их снижение.