Интеграция с WEB-регистратором Калуга Астрал

14.11.25

Интеграция - WEB-интеграция

Удобный инструмент партнёров 1С, помогающий с выполнением сверки, составлением плана продления и ведением дополнительного учета по продлениям лицензий и сертификатов клиентов. Отлично подходит для встраивания в свой собственный сервис деск.

Бесплатные

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

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Интеграция с WEB-регистратором Калуга Астрал
.cfe 22,74Kb
16 Скачать бесплатно
Интеграция с WEB-регистратором Калуга Астрал (исправлен):
.cfe 23,17Kb
2 Скачать бесплатно

Расширение содержит ряд запросов, которые далее парсятся на записи регистра. Записи регистра содержат данные начала и окончания лицензии и сертификата. Это основа, далее можно расписать дополнительный функционал (автоматические рассылки данных по продлениям клиентам, дописать функционал по выполнению одобрений заявлений прям из программы, проверка состава заявления и т.д.).

Написал эту обработку, чтобы контролировать продления в своём френче) Буду рад, если кому-то тоже поможет.

Для подключения обработки рекомендуется использовать платформу не ниже 8.3.23.1739, так как обработка содержит некоторые функции по конвертации JSON. Для использования необходимо нажать кнопку "Получить данные" в регистре сведений "Астрал Отчетность Сведения", после получения данных рекомендуется воспользоваться отчетом, встроенным в обработку для проверки полученных сведений.

Для авторизации в Web-регистраторе требуется Запрос1 и Запрос2 (в Запрос 2 передаются логин и пароль):

Логин = ЛогинКалуга;
Пароль = ПарольКалуга;
СоединениеАстрал = Новый HTTPСоединение("reg.astralnalog.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
		
Запрос1 = Новый HTTPЗапрос("/Authorisation.aspx");		
Запрос1.Заголовки.Вставить("accept","*/*");
Запрос1.Заголовки.Вставить("User-Agent","PostmanRuntime/7.42.0");
Запрос1.Заголовки.Вставить("cookie","");
Запрос1.Заголовки.Вставить("Accept-Encoding","gzip, deflate, br");
Запрос1.Заголовки.Вставить("keep-alive","keep-alive");    	
Результат1 = СоединениеАстрал.Получить(Запрос1);  	
Куки1 = Результат1.Заголовки.Получить("Set-Cookie");	
Куки1 = СтрЗаменить(Куки1, ",", ";");
		
		
//Устанавливаем в тело запрос логин и пароля для получения тикета	
Запрос2 = Новый HTTPЗапрос("POST"); 
Запрос2.АдресРесурса = "Authorisation.aspx/LogOn";		
ТЕЛО = "{""login"": """ + Логин + """, ""password"": """ +Пароль+ """,""base64SignedData"": null}";		  
Запрос2.Заголовки.Вставить("HOST", "reg.astralnalog.ru");	
Запрос2.Заголовки.Вставить("Content-type", "application/json");	
Запрос2.Заголовки.Вставить("Cookie", (Куки1));	
Запрос2.Заголовки.Вставить("Origin", "https://reg.astralnalog.ru");	
Запрос2.УстановитьТелоИзСтроки(ТЕЛО);
Результат2 = СоединениеАстрал.ВызватьHTTPМетод("POST", Запрос2);
//Куки2 - хранит тикет
Куки2 = Результат2.Заголовки.Получить("Set-Cookie");
Куки2 = СтрЗаменить(Куки2, ",", ";");

//Здесь указывает дату начала и окончания для запроса, дата проставлена статично при необходимости
//нужные реквизиты создадите в форме самостоятельно ;)		
//ДатаФильтраНачало = Формат(ЭтаФорма.Отчет.Период.ДатаНачала, "ДФ=dd.MM.yyyy");
//ДатаФильтраКонец = Формат(ЭтаФорма.Отчет.Период.ДатаОкончания, "ДФ=dd.MM.yyyy");    
ДатаФильтраНачало = Формат(ДатаНачала, "ДФ=dd.MM.yyyy");
ДатаФильтраКонец = Формат(ДатаОкончания, "ДФ=dd.MM.yyyy");   
		
СтраницаТекущая = 1;
ВсегоСтраниц = 2;
		

//В условии была раньше проверка на успешный запрос, но оставлю пока что без проверки... Почему? Потамушта...		
Если Истина Тогда 
	Пока СтраницаТекущая < ВсегоСтраниц Цикл  
        //В запросе записей указано rows - 10 и это максимум, указывать больше смысла нет, а вот меньше указать можно
        //проходимся по страницам, пока не закончатся страницы. получить количество страниц можно через "total"
        ЗапросЗаписей = "{""_search"":false,""nd"":1732556914754,""rows"":10,""page"":" + Строка(СтраницаТекущая) +",""sidx"":""AbonentName"",""sord"":""asc"",""filterContext"":{""currentPageIndex"":" + Строка(СтраницаТекущая) + ",""productTypeFilter"":""4"",""dateFilterType"":""tariffActual"",""beginDate"":""" + ДатаФильтраНачало + """,""endDate"":""" + ДатаФильтраКонец + """,""PartnerNameFilter"":null,""SortOrder"":""asc"",""SortColumn"":""AbonentName""}}";
		Запрос3 = Новый HTTPЗапрос("/ReportModule/GetTariffValidityPeriodReportData"); 
		Запрос3.АдресРесурса = "/ReportModule/GetTariffValidityPeriodReportData";				
		Запрос3.Заголовки.Вставить("HOST", "reg.astralnalog.ru");	
		Запрос3.Заголовки.Вставить("Content-type", "application/json");	
		Запрос3.Заголовки.Вставить("Cookie", (Куки2));	
		Запрос3.Заголовки.Вставить("accept", "application/json, text/javascript, */*; q=0.01");
		Запрос3.УстановитьТелоИзСтроки(ЗапросЗаписей);				
		Результат3 = СоединениеАстрал.ВызватьHTTPМетод("POST", Запрос3);	
		ЭлементыСтрока = Результат3.ПолучитьТелоКакСтроку();		
		МассивЭлементов = ПрочитатьЗначениеJSON(ЭлементыСтрока);	
		ВсегоСтраниц = МассивЭлементов.total;//всего страниц
		СписокАбонентов = МассивЭлементов.rows;// записей на странице, обычно не больше 10
		
        
		//Тут мы получили все записи со страницы и проходимся по ним 
		Для Каждого С1 из СписокАбонентов Цикл   
			с = С1.cell;
			НоваяЗапись = РегистрыСведений.АстралОтчетностьСведения.СоздатьМенеджерЗаписи();
			НоваяЗапись.Период = ТекущаяДата();
					
					
			НоваяЗапись.ДатаНачалаД = (с[4] + " 00:00:00");     
			НоваяЗапись.ДатаНачалаДействияСертификата = Дата(с[7]+ " 00:00:00"); 
			НоваяЗапись.ДатаОкончанияДействияСертификата = Дата(с[8]+ " 00:00:00");
			НоваяЗапись.ДатаНачалаДействияТарифа = Дата(с[5]+ " 00:00:00");
			НоваяЗапись.ДатаОкончанияДействияТарифа = Дата(с[6]+ " 00:00:00");
			НоваяЗапись.ИНН = с[1];
			НоваяЗапись.КПП = с[2];
            //поиск клиента по инн и кпп на уникальность		
			ПроверкаКлиентаПоИННИКПП = "ВЫБРАТЬ
					                         |	Клиенты.Ссылка КАК Ссылка,
					                         |	Клиенты.ИНН КАК ИНН,
					                         |	Клиенты.КПП КАК КПП
					                         |ИЗ
					                         |	Справочник.Клиенты КАК Клиенты
					                         |ГДЕ
					                         |	Клиенты.ИНН = &ИНН
					                         |	И Клиенты.КПП = &КПП";
			ЗапросПроверки = Новый Запрос(ПроверкаКлиентаПоИННИКПП);
			ЗапросПроверки.УстановитьПараметр("ИНН", с[1]);
			ЗапросПроверки.УстановитьПараметр("КПП", с[2]);
			РезультатПроверки = ЗапросПроверки.Выполнить();
            
            //Проверка Результата
			Если РезультатПроверки.Пустой() Тогда 
				новыйЭлемент = Справочники.Клиенты.СоздатьЭлемент(); //Если клиента не существует, то
				новыйЭлемент.Наименование = с[0];                    //Создаётся новый элемент и ему
				новыйЭлемент.ИНН = с[1];                             //прописываются значение реквизитов
				новыйЭлемент.КПП = с[2];                             //
				новыйЭлемент.Записать();                             //
				НоваяЗапись.Клиент = новыйЭлемент.Ссылка;            //
				НоваяЗапись.НаименованиеТарифа = с[9];               //
				НоваяЗапись.Записать(Истина);                        //Потом записывается в регистр сведений
			Иначе            
				РезультатВыборки = РезультатПроверки.Выбрать();      // Тут всё тоже самое, но
				РезультатВыборки.Следующий();                        // Новый клиент не создаётся
				НоваяЗапись.Клиент = РезультатВыборки.Ссылка;	
				НоваяЗапись.НаименованиеТарифа = с[9];  	
				НоваяЗапись.Записать(Истина);	
			КонецЕсли;
		КонецЦикла; 
		СтраницаТекущая = СтраницаТекущая + 1;
	КонецЦикла;                
КонецЕсли;	 

Тестирование проводилось на платформе 8.3.27.1508, но использование обработки доступно с платформы начиная с версии 8.3.23.1739.

 

Если вам пригодился этот код, то прошу лайкнуть статью. Если рейтинг поднимется до 100, то выложу код интеграцию с сервисами ИТС на примере 1С-Облачный архив (получение тикета + авторизация в сервисе). Так же, возможно, выложу коллекцию postman по астралу и ИТС, а так же допишу функционал продлений в веб регистраторе через 1С)

Пишите в личные сообщения, если у вас есть идеи или вы хотите поучаствовать в совместной разработке)

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.25.61, 2.5.23.66
  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.186.16, 3.0.181.10

Вступайте в нашу телеграмм-группу Инфостарт

Обработка 1С-Отчетность Сверка Партнёр Френчайзи

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    22199    32    24    

26

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    4382    22    4    

23

WEB-интеграция Программист Руководитель проекта 1С:Предприятие 8 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    10148    7    5    

11

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разработана для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

12000 руб.

02.02.2021    20957    60    52    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. lihomanov 83 13.08.25 20:36 Сейчас в теме
Добрый день!
Проверьте расширение не рабочее.
Платформа: 8.3.27.1606
Режим совместимости: Версия 8.3.24


Ошибка при вызове метода контекста (АстралОбработкаЗапроса)
{Расширение1 РегистрСведений.АстралОтчетностьСведения1.Команда.Команда1.МодульКоманды(6)}:АстралОбработкаЗапроса(Логин, Пароль, ПараметрыВыполненияКоманды);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка при вызове серверного метода.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ПараметрыВыполненияКоманды'
Прикрепленные файлы:
2. nomadAI 1 15.08.25 09:03 Сейчас в теме
(1) Спасибо за обратную связь! Я проверю и всё поправлю, ожидайте
3. nomadAI 1 19.08.25 08:42 Сейчас в теме
Можете проверять, расширение поправлено
4. lihomanov 83 27.08.25 15:21 Сейчас в теме
(3)
Добрый день
Новая ошибка

Поле объекта не обнаружено (АстралОтчетностьСведения)
{Расширение1 РегистрСведений.АстралОтчетностьСведения1.Команда.Команда1.МодульКоманды(14)}:РегистрыСведений.АстралОтчетностьСведения.ПолучитьСведенияАстралОтчетности(ДатаНачалаЗапроса, ДатаКонцаЗапроса, Логин, Пароль);
{Расширение1 РегистрСведений.АстралОтчетностьСведения1.Команда.Команда1.МодульКоманды(6)}:АстралОбработкаЗапроса(Логин, Пароль);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Прикрепленные файлы:
user2167103; +1 Ответить
7. nomadAI 1 16.11.25 23:04 Сейчас в теме
(4) Добрый вечер, прикрепил исправленный вариант - проверяйте) Проверить полностью не смог, так как нет действующей учетки в веб-регистраторе. Буду ждать обратной связи)
5. FVK 16.10.25 15:16 Сейчас в теме
Добрый день. Расширение нерабочее. При попытке подключения к серверу Астрала выдает ошибку, хотя логин и пароль правильные.
8. nomadAI 1 18.11.25 09:17 Сейчас в теме
6. nomadAI 1 16.11.25 23:02 Сейчас в теме
Добрый вечер, прошу прощения за долгое ожидание, всё не доходили руки как-то. Добавил к публикации исправленный вариант расширения, но проверить нормально не смог, так как нет действующей учетной записи в для веб-регистраторе. Буду ожидать обратной связи)
Для отправки сообщения требуется регистрация/авторизация