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

17.03.20

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Проверка подписки ИТС:
.epf 8,35Kb
26
26 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

 

См. также

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

В рамках мастер-класса мы запустим нагрузочный тест на 3К пользователей и посмотрим, как будет вести себя PostgreSQL при такой нагрузке.

11.12.2024    1265    Tantor    1    

6

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

Много вариантов определения номера собственного процесса самого 1С8. В ходе поиска, опираясь на общедоступную информацию, дополнил алгоритм, но с учетом определения ИД запущенного приложения.

09.12.2024    586    artly2000    6    

4

Администрирование СУБД Системный администратор Программист

В крупных компаниях, где много типовых и сильно доработанных баз с режимом работы 24/7, переход с MS SQL на PostgreSQL затягивается. Получается гетерогенная структура – когда прод уже на PostgreSQL, а разработка и тестирование – пока на MS SQL. О том, какие варианты помогут постепенно перевести прод с несколькими базами MS SQL на PostgreSQL, не сломав среду тестирования и разработки, пойдет речь в статье.

21.11.2024    3561    a.doroshkevich    8    

15

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

Мы исследуем проблему долгого выполнения запросов PostgreSQL при использовании конструкции VALUES: когда она возникает, как на нее можно повлиять, а главное, почему ее продуманная отработка важна для более быстрого функционирования решений на базе 1С

12.11.2024    1365    Tantor    20    

17

HighLoad оптимизация Администрирование СУБД Механизмы платформы 1С Программист Платформа 1С v8.3 ИТ-компания Россия Бесплатно (free)

В данной статье мы рассмотрим, как работает механизм временных таблиц на postgres на платформе 8.3.23 и что изменилось в нем при добавлении новых возможностей в платформе 8.3.25. А также на примере покажу, как понимание работы платформы позволяет оптимизировать СУБД для работы с 1С.

29.10.2024    4474    Tantor    38    

37

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

CDC - очень мощный механизм, который можно использовать во многих сценариях, возможность развернуть его в Docker показывает простоту и лёгкость данной технологии.

08.10.2024    1301    AlexSvoykin    2    

7

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

Анализ и решение ошибок СУБД. Во время реиндексации базы Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения. Во время проверки целостности Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Недопустимое имя объекта "dbo._RefSInf21806".

19.09.2024    5762    Xershi    10    

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