База знаний Одина — Одинэсника › Форумы › 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
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 и реагировать на их снижение.