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

21.09.17

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Загрузка адреса юридического лица из ЕГРЮЛ:
.epf 8,25Kb ver:1.0
52
52 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

См. также

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

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С. Бесплатный период Техподдержки - 1 месяц.

60000 руб.

07.05.2019    34404    65    45    

26

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2388    2    0    

9

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

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    2132    1    1    

4

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

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

36000 руб.

03.08.2020    18942    21    22    

18

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    3747    3    2    

4

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

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

12000 руб.

02.02.2021    18694    53    50    

29

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

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

14400 руб.

20.12.2024    725    3    1    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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= 5 02.11.17 17:35 Сейчас в теме
Нет, только 1 контрагент для 1 запроса.
Оставьте свое сообщение