Проверка подписки ИТС

17.03.20

База данных - Администрирование СУБД

Проверка подписки ИТС по регистрационным номерам, логинам. Практическое применение API по интеграции с Порталом 1С:ИТС.

Скачать исходный код

Наименование Файл Версия Размер
Проверка подписки ИТС:
.epf 8,35Kb
21
.epf 8,35Kb 21 Скачать

Обработка позволяет проверить как кой статус у договора 1С:ИТС на текущий момент (Договор 1С:ИТС не оформлен, Срок действия договора 1С:ИТС завершился, Договор 1С:ИТС оформлен), а так же получить информацию о договорах 1С:ИТС по логину пользователя (Пользователь с таким логином не найден, Для данного пользователя проверка 1С:ИТС не предусмотрена, Срок действия договора 1С:ИТС завершился и т.д.)

Для получения информации достаточно просто указать рег.номер или логин ИТС. Для доступа к API вам потребуется Логин и Пароль- как их получить можно прочитать тут:
https://portal.1c.ru/partner/faq#subscription

В результате проверки выводится сообщение с информацией: какой рег.номер, статус, код статуса, описание статуса, описание ошибки (если были), дата начала и окончания договора получены с портала ИТС.

Весь код отработки открыт и так же прилагается ниже
Протестировано на платформе 1С:Предприятие 8.3 (8.3.16.1063) в файловом и клиент серверном режимах.

Наверное аналогия //infostart.ru/public/1104962/ (но проверить не могу- так как там нужно покупать).

&НаСервере
Процедура ПроверитьИТСПоРегНомеруНаСервере()

    МестоположениеWSDL = "https://partner-api.1c.ru/api/ws/subscription/v2?wsdl";
    URIПространстваИмен = "http://api.repository.onec.ru/v2";
    ИмяСервиса = "PartnerSubscriptionApiV2ServiceImplService";
    ИмяТочкиПодключения = "PartnerSubscriptionApiV2ServiceImplPort";
    ОписаниеОшибки = "";

    Прокси = ПроксиСервиса(МестоположениеWSDL, URIПространстваИмен, ИмяСервиса, ИмяТочкиПодключения, ОписаниеОшибки);

    // Можно проверять по 100 рег номеров.
    МассивРегистрационныхНомеров = Новый Массив;
    МассивРегистрационныхНомеров.Добавить(РегистрационныйНомер);

    Если ПустаяСтрока(ОписаниеОшибки) Тогда

        ФабрикаXDTOСервиса = Прокси.ФабрикаXDTO;

        ВходныеПараметры = ФабрикаXDTOСервиса.Создать(Прокси.ФабрикаXDTO.Тип(URIПространстваИмен, "checkItsByRegNum"));

        // Передача списка рег.номеров.
        ТипregNumList = ФабрикаXDTOСервиса.Тип(URIПространстваИмен, "regNumList");
        ОбъектregNumList = ФабрикаXDTOСервиса.Создать(ТипregNumList);
        Для Каждого РегНомер Из МассивРегистрационныхНомеров Цикл 
            ОбъектregNumList.regNumList.Добавить(РегНомер);
        КонецЦикла;    

        ВходныеПараметры.regNumList = ОбъектregNumList;            

        Попытка
            ОбъектXDTO = Прокси.checkItsByRegNum(ВходныеПараметры);
        Исключение
            ИнформацияОбОшибке = ИнформацияОбОшибке();
            ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
        КонецПопытки;
    КонецЕсли;

    ПараметрыОтвета = ПараметрыОтветаСервисаПроверкиИТС();

    Если ПустаяСтрока(ОписаниеОшибки) Тогда 
        Для Каждого ОбъектXDTOreturn Из ОбъектXDTO.return Цикл 

            ПараметрыОтвета.РегНомер = ОбъектXDTOreturn.element;

            // AgreementNotExists     101     Договор 1С:ИТС не оформлен
            // OldContract             104     Срок действия договора 1С:ИТС завершился
            // Success                 1         Договор 1С:ИТС оформлен
            ПараметрыОтвета.КодСтатуса = ОбъектXDTOreturn.code;
            ПараметрыОтвета.Статус = ОбъектXDTOreturn.status;
            ПараметрыОтвета.ОписаниеСтатуса = ОбъектXDTOreturn.description;

            // Список ошибок.
            Для Каждого ОбъектXDTOsubscriptionInfoList Из ОбъектXDTOreturn.subscriptionInfoList Цикл 
                ПараметрыОтвета.ОписаниеОшибки = ОбъектXDTOsubscriptionInfoList.description;
                ПараметрыОтвета.ДатаНачала = ОбъектXDTOsubscriptionInfoList.startDate;
                ПараметрыОтвета.ДатаОкончания = ОбъектXDTOsubscriptionInfoList.endDate;
            КонецЦикла;    
        КонецЦикла;    
    КонецЕсли;    

    Для Каждого Параметр Из ПараметрыОтвета Цикл 
        Сообщить(Параметр.Ключ + " / " + Параметр.Значение);
    КонецЦикла;    

КонецПроцедуры
&НаСервере
Процедура ПроверитьИТСПоЛогинуНаСервере()

    МестоположениеWSDL = "https://partner-api.1c.ru/api/ws/subscription/v2?wsdl";
    URIПространстваИмен = "http://api.repository.onec.ru/v2";
    ИмяСервиса = "PartnerSubscriptionApiV2ServiceImplService";
    ИмяТочкиПодключения = "PartnerSubscriptionApiV2ServiceImplPort";
    ОписаниеОшибки = "";

    Прокси = ПроксиСервиса(МестоположениеWSDL, URIПространстваИмен, ИмяСервиса, ИмяТочкиПодключения, ОписаниеОшибки);

    Если ПустаяСтрока(ОписаниеОшибки) Тогда

        ФабрикаXDTOСервиса = Прокси.ФабрикаXDTO;

        ВходныеПараметры = ФабрикаXDTOСервиса.Создать(Прокси.ФабрикаXDTO.Тип(URIПространстваИмен, "checkItsByLogin"));

        // Передача списка логинов.
        ТипloginList = ФабрикаXDTOСервиса.Тип(URIПространстваИмен, "loginList");
        ОбъектloginList = ФабрикаXDTOСервиса.Создать(ТипloginList);

        // Так же можно проверять и массив как сделано в ПроверитьИТСПоРегНомеруНаСервере
        ОбъектloginList.loginList.Добавить(РегистрационныйНомер);

        ВходныеПараметры.loginList = ОбъектloginList;            

        Попытка
            ОбъектXDTO = Прокси.checkItsByLogin(ВходныеПараметры);
        Исключение
            ИнформацияОбОшибке = ИнформацияОбОшибке();
            ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
        КонецПопытки;
    КонецЕсли;

    ПараметрыОтвета = ПараметрыОтветаСервисаПроверкиИТС();

    Если ПустаяСтрока(ОписаниеОшибки) Тогда 
        Для Каждого ОбъектXDTOreturn Из ОбъектXDTO.return Цикл 

            // LoginNotFound    102    Пользователь с таким логином не найден
            // IsNotUser        103    Для данного пользователя проверка 1С:ИТС не предусмотрена
            // OldContract        104    Срок действия договора 1С:ИТС завершился
            // NoContract        105    У пользователя нет действующего договора 1С:ИТС
            // Success            1    Договор 1С:ИТС оформлен            
            ПараметрыОтвета.КодСтатуса = ОбъектXDTOreturn.code;
            ПараметрыОтвета.Статус = ОбъектXDTOreturn.status;
            ПараметрыОтвета.ОписаниеСтатуса = ОбъектXDTOreturn.description;

            // Список ошибок.
            Для Каждого ОбъектXDTOsubscriptionInfoList Из ОбъектXDTOreturn.subscriptionInfoList Цикл 
                ПараметрыОтвета.ОписаниеОшибки = ОбъектXDTOsubscriptionInfoList.description;
                ПараметрыОтвета.ДатаНачала = ОбъектXDTOsubscriptionInfoList.startDate;
                ПараметрыОтвета.ДатаОкончания = ОбъектXDTOsubscriptionInfoList.endDate;
            КонецЦикла;    
        КонецЦикла;    
    КонецЕсли;

    Для Каждого Параметр Из ПараметрыОтвета Цикл 
        Сообщить(Параметр.Ключ + " / " + Параметр.Значение);
    КонецЦикла;    

КонецПроцедуры
#Область СлужебныеПроцедурыИФункции

Функция ПроксиСервиса(URLМестоположенияWSDL, URIПространстваИмен, ИмяСервиса, ИмяТочкиПодключения, ОписаниеОшибки)

    Прокси = Неопределено;

    ПараметрыПодключения = ОбщегоНазначения.ПараметрыПодключенияWSПрокси();
    ПараметрыПодключения.АдресWSDL           = URLМестоположенияWSDL;
    ПараметрыПодключения.URIПространстваИмен = URIПространстваИмен;
    ПараметрыПодключения.ИмяСервиса          = ИмяСервиса;
    ПараметрыПодключения.ИмяТочкиПодключения = ИмяТочкиПодключения;
    ПараметрыПодключения.ИмяПользователя     = ЛогинAPI;
    ПараметрыПодключения.Пароль              = ПарольAPI;
    ПараметрыПодключения.Таймаут             = 60;

    Попытка
        Прокси = ОбщегоНазначения.СоздатьWSПрокси(ПараметрыПодключения);
    Исключение
        ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
    КонецПопытки;

    Возврат Прокси;

КонецФункции

Функция ПараметрыОтветаСервисаПроверкиИТС()

    ПараметрыОтвета = Новый Структура;
    ПараметрыОтвета.Вставить("РегНомер", "");
    ПараметрыОтвета.Вставить("КодСтатуса", "");
    ПараметрыОтвета.Вставить("Статус", "");
    ПараметрыОтвета.Вставить("ОписаниеСтатуса", "");
    ПараметрыОтвета.Вставить("ОписаниеОшибки", "");
    ПараметрыОтвета.Вставить("ДатаНачала", "");
    ПараметрыОтвета.Вставить("ДатаОкончания", "");
    Возврат ПараметрыОтвета;

КонецФункции // ПараметрыОтветаСервисаПроверкиИТС()

#КонецОбласти

 

См. также

Устранение ошибки выполнения скрипта "Создать сервис RAGENT" в ЦКК

Администрирование СУБД Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В статье показано, как устранить ошибку выполнения скрипта "Создать сервис RAGENT" в системах 1С:Центр контроля качества или в 1С:Центр автоматизации. Будет полезна администраторам ЦКК и ЦА, которые только начали знакомство с этими системами.

вчера в 17:30    135    artemusII    0    

4

Долгая реструктуризация, замеры времени и очистка Ветис. Розница 2.3

HighLoad оптимизация Администрирование СУБД Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Бесплатно (free)

При подготовке к обновлению возникли проблемы на стадии тестирования и исправления базы данных, также при создании файлов РИБ для магазинов.

16.04.2024    247    xKaskadx    4    

0

Установка и получение лицензии на базовую конфигурацию 1С на Mac OS

Администрирование СУБД Платформа 1С v8.3 Бесплатно (free)

Установить купленную базовую конфигурацию 1С и получить лицензию на MAC OS не так просто, как кажется на первый взгляд и как хотелось бы. Официально в системных требованиях на базовую конфигурации 1С пишет всякие виндовсы и пару-тройку линуксов. МакОс там нет. В статье расскажу, как все-таки поставить на Мак базовую конфигурацию 1С.

11.04.2024    344    pahmutov    0    

2

Установка тонкого клиента 1С на Rasbian (Raspberry Pi 5)

Администрирование СУБД Платформа 1С v8.3 Бесплатно (free)

После приобретения Raspberry Pi 5 решил проверить, есть ли возможность использования устройства для организации тонкого клиента. В результате столкнулся с особенностью установки 1С: Предприятие 8.3.23 на Raspbian, решением которой я хочу поделиться с сообществом.

07.04.2024    607    Bessome    3    

5

Порционный шринк базы

Администрирование СУБД Бесплатно (free)

Скрипт позволяет высвобождать место в операционную систему, занятое файлом базы MS SQL в итерациях с заданным количеством мегабайт

28.03.2024    1271    Garilia    3    

15

Создаем сценарии обслуживания SQL в Центре Контроля Качества 1С (Центр Администрирования)

Администрирование СУБД Платформа 1С v8.3 Бесплатно (free)

Данная статья научит вас, как создавать скрипты обслуживания MS SQL для Центра Контроля Качества (ЦКК) или Центра Администрирования (ЦА).

20.03.2024    742    Silenser    0    

5

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    5911    dsdred    53    

83

Инструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация

Администрирование СУБД Платформа 1С v8.3 Бесплатно (free)

В Postgres достаточно подробная документация, и, видимо, поэтому при инсталляции Postgres для 1С большинство параметров приходится выставлять самим. Параметров в Postgres много, а составить эффективную комбинацию не так просто. Все упрощается, если рассмотреть профиль нагрузки, например, 1С это прежде всего профиль OLTP нагрузки – так устроены его метаданные (объекты). Если сосредоточиться на оптимизации профиля OLTP, понимание Postgres сразу упростится.

15.02.2024    2541    1CUnlimited    14    

28
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. r.moschenskiy 23 27.01.21 10:49 Сейчас в теме
А чем не устраивает типовой "Монитор Портала 1С:ИТС"?
2. kostik_love 309 28.01.21 11:21 Сейчас в теме
(1) всем устраивает- вот только проблема- если нужно сделать проверку не в типовой конфигурации- тащить туда БИП и монитор портала не будет верным решением, да и в результате мы получаем разную доп.информацию
но если у вас есть документация по API- который использует монитор портала- поделитесь)
3. evgeniy-m1979 29.10.22 06:35 Сейчас в теме
(2) Обработка не работает

При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://api.repository.onec.ru/v2}:PartnerSubscriptionApiV2ServiceImplService:checkItsByLogin()
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: AuthorizationFailedException: Некорректная авторизация
Код ошибки: Server
Техническая информация:
<detail xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<ns1:AuthorizationFailedException xmlns:ns1="http://api.repository.onec.ru/v2"/>
</detail>
4. evgeniy-m1979 29.10.22 07:08 Сейчас в теме
(3) Нашел причину, все работает.
Оставьте свое сообщение