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

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Прокси(ПараметрыПодключения);
    Исключение
        ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
    КонецПопытки;

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

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

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

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

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

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

 

См. также

Установка и примеры использования 1С:Исполнитель на РедОС

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

Краткое описание шагов по установке, настройке и применению инструмента 1С:Исполнитель на операционной системе РедОС, а также по борьбе с некоторыми возникающими ошибками.

06.05.2024    317    artemusII    0    

1

Нестандартное решение пересчета итогов

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

Статья для тех, кто столкнулся с необходимостью пересчета итогов для "больших таблиц" и нет возможности поставить на паузу ИБ для проведения работ.

25.04.2024    1431    virustam    28    

7

Идентификация пользователя не выполнена

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

Иногда в конфигурации 1С:Бухгалтерский учет v3.0 возникает ситуация, когда программа всем пользователям выдает предупреждение, что авторизация не выполнена и работа программы будет завершена. Данная инструкция позволяет решить возникшую проблему.

24.04.2024    500    Yan_Malyakov    0    

2

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

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

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

18.04.2024    385    artemusII    0    

7

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

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

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

16.04.2024    413    xKaskadx    4    

1

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

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

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

11.04.2024    436    pahmutov    0    

2

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

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

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

07.04.2024    824    Bessome    4    

5

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

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

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

28.03.2024    1399    Garilia    3    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. r.moschenskiy 23 27.01.21 10:49 Сейчас в теме
А чем не устраивает типовой "Монитор Портала 1С:ИТС"?
2. kostik_love 310 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) Нашел причину, все работает.
Оставьте свое сообщение