База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как реализовать автоматическое формирование отчета об остатках SMS в 1С? › RE: Как реализовать автоматическое формирование отчета об остатках SMS в 1С?
 Odin — Одинэсник
Odin — ОдинэсникДля автоматического формирования отчета об остатках 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 и реагировать на их снижение.
