Загрузка адреса юридического лица из ЕГРЮЛ

21.09.17

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

Обработка позволяет актуализировать адрес контрагента из ЕГРЮЛ. Актуальна в виду вступления в силу Постановления Правительства РФ от 19.08.2017 № 981. Работает с сайтом ИФНС и не требует никаких активных учетных записей. Имеется возможность доработать под себя

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

Наименование Файл Версия Размер
Загрузка адреса юридического лица из ЕГРЮЛ:
.epf 8,25Kb
52
.epf 1.0 8,25Kb 52 Скачать

Обработка позволяет актуализировать адрес контрагента из ЕГРЮЛ. Актуальна в виду вступления в силу Постановления Правительства РФ от 19.08.2017 № 981. Работает с сайтом ИФНС и не требует никаких активных учетных записей. Необходимо участие пользователя для ввода капчи.

Просто интегрируется в вашу систему - достаточно просто скопировать форму из обработки и при открытии передавать в параметрах ИНН. По закрытию форма возвращает полученный адрес.

Пример подключения:

    ПараметрыОткрытия = Новый Структура("ИНН", ИНН);
    АдресЕГРЮЛ = ОткрытьФормуМодально("Справочник.Контрагенты.Форма.ФормаПолученияАдресаИзЕГРЮЛ", ПараметрыОткрытия);
    Если ЗначениеЗаполнено(АдресЕГРЮЛ) Тогда
        Запись = Неопределено;
        Для Каждого ЭлементНабора Из НаборКонтактнойИнформации Цикл
            Если ЭлементНабора.Вид.Наименование = "Адрес ЕГРЮЛ" Тогда
                Запись = ЭлементНабора;
                Прервать;
            КонецЕсли;
        КонецЦикла;
        Если Запись = Неопределено Тогда
            Запись = НаборКонтактнойИнформации.Добавить();
        КонецЕсли;
        Запись.Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Адрес ЕГРЮЛ");
        Запись.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
        Запись.Представление = АдресЕГРЮЛ;
    КонецЕсли;

Для разработчиков на форме есть скрытые поля, для контроля результатов обращения к серверу ИФНС.

Тестировалось на платформе 8.3.10.2561. В конфигурациях "Библиотека стандартных подсистем", редакции 2.3. (2.3.4.45)  и Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1 (5.1.06.04)

ЕГРЮЛ Контрагенты Постановления Правительства РФ от 19.08.2017 № 981

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

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

36000 руб.

03.08.2020    15933    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17888    6    15    

13

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88943    163    216    

318

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25873    9    0    

7

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16479    42    49    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. oldfornit 21.09.17 17:49 Сейчас в теме
потрясающе!
Восхитительная смесь управляемых форм, модальных открытий и совершенно неприспособленного для работы интерфейса.

Бесплатно, то есть даром, дам рабочий код.

//
// Параметры:
//  ИНН     - Строка - ИНН организации
// 
// Возвращаемое значение:
// Структура  - ЮрЛицо, ДатаРегистрации, НаименованиеПолное, НаименованиеКраткое,
//        ОКОПФ, КПП, ОГРН, РуководительДолжность, РуководительФИО, АдресЮридический
//
Функция ДанныеКонтрагентаПоИНН(Знач ИНН) Экспорт
    
    // подробности см https://dadata.ru/api/suggest/
    
    // резервный токен
     Токен = "ваш полученный токен";
    
    Если Неопределено = Токен Тогда
        Возврат Неопределено;
    КонецЕсли; 
    
    АдресСервиса = "https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party";
    
    Ошибка = Ложь;
    Ответ = Неопределено;
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/json");
    Заголовки.Вставить("Authorization", "Token " + Токен);
    Заголовки.Вставить("Accept", "application/json");
    
    ТелоЗапроса = "{""query"" : """ + ИНН + """ }";
    
    ВыполнитьHTTPЗапросPOST(АдресСервиса, 1, Заголовки, ТелоЗапроса, Ответ, Ошибка);
    
    Если Ошибка Тогда
        Возврат Неопределено;
    КонецЕсли;
    
    ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();
    
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(ТекстОтвета);
    
    ДанныеСервиса = ПрочитатьJSON(ЧтениеJSON, Истина);
    ЧтениеJSON.Закрыть();
    
    ПолученныеДанныеСервиса = ДанныеСервиса.Получить("suggestions");
    Если ПолученныеДанныеСервиса = Неопределено Тогда
        Возврат Неопределено;
    КонецЕсли; 
    
    ДанныеКонтрагента = Новый Структура("ЮрЛицо, ДатаРегистрации, НаименованиеПолное, НаименованиеКраткое,
    |ОКОПФ, КПП, ОГРН, РуководительДолжность, РуководительФИО, АдресЮридический");   
    Для каждого ДанныеСервиса Из ПолученныеДанныеСервиса Цикл
        промДанныеКонтрагента = ДанныеСервиса.Получить("data");
        
        Если Неопределено = промДанныеКонтрагента Тогда
            Продолжить;
        КонецЕсли; 
        
        Если Не ЗначениеЗаполнено(промДанныеКонтрагента["state"]["actuality_date"]) Тогда
            Продолжить;
        КонецЕсли;
        
        Если ВРЕГ(промДанныеКонтрагента["state"]["status"]) = "LIQUIDATED"  Тогда
            Продолжить;
        КонецЕсли; 
        
        Если Неопределено = промДанныеКонтрагента["state"]["registration_date"] Тогда
        	Продолжить;
        КонецЕсли; 
        
        Если ЗначениеЗаполнено(ДанныеКонтрагента.ДатаРегистрации) 
            И ДанныеКонтрагента.ДатаРегистрации > (Дата("19700101") + промДанныеКонтрагента["state"]["registration_date"]/1000) Тогда
            Продолжить;
        КонецЕсли; 
        
        ДанныеКонтрагента.Юрлицо                = ВРЕГ(промДанныеКонтрагента["type"]) = "LEGAL";
        ДанныеКонтрагента.ДатаРегистрации       = Дата("19700101") + промДанныеКонтрагента["state"]["registration_date"]/1000;
        ДанныеКонтрагента.НаименованиеКраткое   = промДанныеКонтрагента["name"]["short_with_opf"];
        ДанныеКонтрагента.НаименованиеПолное    = промДанныеКонтрагента["name"]["full_with_opf"];
        ДанныеКонтрагента.ОКОПФ                 = промДанныеКонтрагента["opf"]["short"];
        ДанныеКонтрагента.КПП                   = промДанныеКонтрагента["kpp"];
        ДанныеКонтрагента.ОГРН                  = промДанныеКонтрагента["ogrn"];
        Если "INDIVIDUAL" = ВРЕГ(промДанныеКонтрагента["type"])Тогда
            ДанныеКонтрагента.РуководительДолжность = промДанныеКонтрагента["opf"]["full"];
            ДанныеКонтрагента.РуководительФИО       = промДанныеКонтрагента["name"]["full"];
        Иначе
            Если Неопределено = промДанныеКонтрагента["management"] Тогда
                ДанныеКонтрагента.РуководительДолжность = "";
                ДанныеКонтрагента.РуководительФИО       = "";
            Иначе
                ДанныеКонтрагента.РуководительДолжность = промДанныеКонтрагента["management"]["post"];
                ДанныеКонтрагента.РуководительФИО       = промДанныеКонтрагента["management"]["name"];
            КонецЕсли; 
            
        КонецЕсли; 
        
        ДанныеКонтрагента.АдресЮридический      = ? (Неопределено = промДанныеКонтрагента["address"], "", промДанныеКонтрагента["address"]["unrestricted_value"]);
    КонецЦикла; 
    
    Если Не ЗначениеЗаполнено(ДанныеКонтрагента.Юрлицо) Тогда
    	ДанныеКонтрагента = Неопределено;
    КонецЕсли; 
    
    Возврат ДанныеКонтрагента;
    
КонецФункции

Процедура ВыполнитьHTTPЗапросPOST(Знач АдресРесурса, Знач ЧастейПутиВАдресе = 0, Знач Заголовки = Неопределено, Знач ТелоЗапроса = Неопределено, Результат, Ошибка = Ложь) Экспорт
    
    СтруктураURI = СтруктураURI(АдресРесурса);
    
    АдресРесурса = СтруктураURI.Хост;
    
    Если ЧастейПутиВАдресе > 0 Тогда
        ЧастиПути = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтруктураURI.ПутьНаСервере, "/", Истина);
        Для Счетчик = 1 По ЧастейПутиВАдресе Цикл
        	АдресРесурса = АдресРесурса + "/" + ЧастиПути[Счетчик - 1];
        КонецЦикла; 
        
        ПутьНаСервере = "";
        
        Для Подсчетчик = Счетчик По ЧастиПути.Количество() Цикл
        	ПутьНаСервере = ПутьНаСервере + ЧастиПути[Подсчетчик - 1] + "/";
        КонецЦикла; 
        
    Иначе
        ПутьНаСервере = СтруктураURI.ПутьНаСервере;
    КонецЕсли; 
    
    ЗащищенноеСоединение = Неопределено;
    
    Если "https" = СтруктураURI.Схема Тогда
    	ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;
    КонецЕсли; 
    
    HTTPСоединение = Новый HTTPСоединение(АдресРесурса, СтруктураURI.Порт, , , , , ЗащищенноеСоединение); 
    
    Запрос = Новый HTTPЗапрос(ПутьНаСервере);
    
    Если ЗначениеЗаполнено(Заголовки) Тогда
    	Запрос.Заголовки = Заголовки;
    КонецЕсли; 
    
    Если ЗначениеЗаполнено(ТелоЗапроса) И ТипЗнч(ТелоЗапроса) = Тип("Строка") Тогда
    	Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);
    КонецЕсли; 
    
    Попытка
    	Результат = HTTPСоединение.ОтправитьДляОбработки(Запрос);
    Исключение
        Ошибка = Истина;
        Возврат;
    КонецПопытки;
    
    Если Результат.КодСостояния > 300 Тогда
    	Ошибка = Истина;
    КонецЕсли; 
    
КонецПроцедуры

Функция СтруктураURI(Знач СтрокаURI) Экспорт
	
	СтрокаURI = СокрЛП(СтрокаURI);
	
	// схема
	Схема = "";
	Позиция = СтрНайти(СтрокаURI, "://");
	Если Позиция > 0 Тогда
		Схема = НРег(Лев(СтрокаURI, Позиция - 1));
		СтрокаURI = Сред(СтрокаURI, Позиция + 3);
	КонецЕсли;

	// Строка соединения и путь на сервере.
	СтрокаСоединения = СтрокаURI;
	ПутьНаСервере = "";
	Позиция = СтрНайти(СтрокаСоединения, "/");
	Если Позиция > 0 Тогда
		ПутьНаСервере = Сред(СтрокаСоединения, Позиция + 1);
		СтрокаСоединения = Лев(СтрокаСоединения, Позиция - 1);
	КонецЕсли;
		
	// Информация пользователя и имя сервера.
	СтрокаАвторизации = "";
	ИмяСервера = СтрокаСоединения;
	Позиция = СтрНайти(СтрокаСоединения, "@");
	Если Позиция > 0 Тогда
		СтрокаАвторизации = Лев(СтрокаСоединения, Позиция - 1);
		ИмяСервера = Сред(СтрокаСоединения, Позиция + 1);
	КонецЕсли;
	
	// логин и пароль
	Логин = СтрокаАвторизации;
	Пароль = "";
	Позиция = СтрНайти(СтрокаАвторизации, ":");
	Если Позиция > 0 Тогда
		Логин = Лев(СтрокаАвторизации, Позиция - 1);
		Пароль = Сред(СтрокаАвторизации, Позиция + 1);
	КонецЕсли;
	
	// хост и порт
	Хост = ИмяСервера;
	Порт = "";
	Позиция = СтрНайти(ИмяСервера, ":");
	Если Позиция > 0 Тогда
		Хост = Лев(ИмяСервера, Позиция - 1);
		Порт = Сред(ИмяСервера, Позиция + 1);
		Если Не СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(Порт) Тогда
			Порт = "";
		КонецЕсли;
	КонецЕсли;
	
	Результат = Новый Структура;
	Результат.Вставить("Схема", Схема);
	Результат.Вставить("Логин", Логин);
	Результат.Вставить("Пароль", Пароль);
	Результат.Вставить("ИмяСервера", ИмяСервера);
	Результат.Вставить("Хост", Хост);
	Результат.Вставить("Порт", ?(ПустаяСтрока(Порт), Неопределено, Число(Порт)));
	Результат.Вставить("ПутьНаСервере", ПутьНаСервере);
	
	Возврат Результат;
	
КонецФункции

Показать
+
2. German_Tagil 43 28.09.17 14:40 Сейчас в теме
3. if74 02.10.17 00:12 Сейчас в теме
Спасибо! Пригодилась!
AlexandrSmith; +1
4. Eva_V 18.10.17 20:39 Сейчас в теме
Позволяет ли эта обработка передавать список контрагентов?
+
5. =Kollega= 4 02.11.17 17:35 Сейчас в теме
Нет, только 1 контрагент для 1 запроса.
+
Оставьте свое сообщение