PropNum.ruPropNum

Сумма прописью в 1С через API PropNum

Получайте сумму прописью в 1С:Предприятие через HTTP-запрос к API PropNum — без установки внешних компонент.

Как подключить

  1. 1Откройте конфигуратор 1С (режим «Конфигуратор»).
  2. 2Создайте общий модуль или добавьте код в существующий.
  3. 3Вставьте функцию ПолучитьСуммуПрописью из примера ниже.
  4. 4Вызывайте функцию из любого места конфигурации.
  5. 5При необходимости кэшируйте результаты для часто используемых сумм.

Функция для 1С:Предприятие 8.x

Используется объект HTTPСоединение для обращения к API. Работает в 1С 8.2 и новее при наличии интернет-подключения.

1С (встроенный язык)
// Общий модуль: ПропИсьюAPI
Функция ПолучитьСуммуПрописью(Сумма, Падеж = "nom") Экспорт
    Попытка
        Адрес = "propnum.ru";
        Соединение = Новый HTTPСоединение(Адрес, 443,,,,,
            Новый ЗащищенноеСоединениеOpenSSL());

        Запрос = Новый HTTPЗапрос(
            "/api/convert/num?amount=" + Формат(Сумма, "ЧДЦ=2; ЧРД=.; ЧН=0") +
            "&case=" + Падеж
        );
        Запрос.Заголовки.Вставить("Content-Type", "application/json");

        Ответ = Соединение.Получить(Запрос);

        Если Ответ.КодСостояния = 200 Тогда
            Данные = ПрочитатьJSON(Ответ.ПолучитьТелоКакСтроку());
            Возврат Данные.result.full;
        КонецЕсли;
    Исключение
        // вернуть пустую строку при ошибке
    КонецПопытки;
    Возврат "";
КонецФункции

Использование в документах

Пример вызова функции при формировании счёта или акта.

1С (встроенный язык)
// В процедуре ПечатьСчета:
СуммаПрописью = ПропИсьюAPI.ПолучитьСуммуПрописью(
    ДокументОбъект.СуммаДокумента
);
// Результат: "Пятьдесят тысяч рублей 00 копеек"

// Родительный падеж (для шапки договора):
СуммаРод = ПропИсьюAPI.ПолучитьСуммуПрописью(
    ДокументОбъект.СуммаДокумента, "gen"
);
// Результат: "пятидесяти тысяч рублей 00 копеек"

Частые вопросы

Работает ли в 1С 7.7?
В 1С 7.7 нет встроенного объекта HTTPСоединение. Используйте COM-объект WinHttp.WinHttpRequest или WSМетаданные для HTTP-запросов.
Как кэшировать результаты в 1С?
Создайте регистр сведений «КэшПрописью» с измерением «Сумма» и ресурсом «ТекстПрописью». Проверяйте кэш перед запросом к API.
Доступен ли API для коробочных установок без интернета?
Пока нет. Для изолированных контуров рассмотрите self-hosted решение — свяжитесь через страницу контактов.

Нужна помощь с интеграцией?

Смотрите полную документацию API или напишите нам — документация API, контакты.