Всем доброго дня.
Во многих новых конфигурациях 1С существует сервис по заполнению данных контрагентов по ИНН.
А что же делать тем, у кого старые конфы УТэшек или КАшек.
Можно, конечно, пилить в сторону нового сервиса 1С:
Определение = Новый WSОпределения("https://api.orgregister.1c.ru/orgregister/v7?wsdl","логинИТС","парольИТС");
Сервис = Новый WSПрокси(Определение,"http://ws.orgregister.company1c.com/", "RequisitesWebServiceEndpointImpl7Service", "RequisitesWebServiceEndpointImpl7Port");
ТипWSПараметра = Сервис.ФабрикаXDTO.Пакеты.Получить("http://ws.orgregister.company1c.com/").Получить("getCorporationRequisitesByINN");
Сервис.Пользователь = "логинИТС";
Сервис.Пароль = "парольИТС";
параметр = Сервис.ФабрикаXDTO.Создать(ТипWSПараметра);
параметр.INN = ИНН;
Результат=Сервис.getCorporationRequisitesByINN(параметр);
И т.д... Но мы пойдем другим путем.
Хочу поделиться коротеньким кодом, который поможет страждущим в самописных или устаревших конфигурациях 1С8 не заводить информацию о клиентах ручками, а ввести лишь ИНН и получить исчерпывающую информацию о контрагенте, заметно большую чем в сервисе 1С.
Сегодня существует бесплатный платный сервис огрн.онлайн. Собственно с его помощью мы и реализуем эту функцию.
ИНН - переменная, в которую мы вобьем искомый ИНН.
Ответ - текстовый результат выполнения нашего запроса.
Код 1С:
ssl = Новый ЗащищенноеСоединениеOpenSSL();
HTTPСоединение = Новый HTTPСоединение("xn--c1aubj.xn--80asehdb",443,,,,,ssl);
HTTPЗапрос = Новый HTTPЗапрос("интеграция/компании/?инн="+СокрлП(ИНН));
Попытка
ОтветСайта = HTTPСоединение.Получить(HTTPЗапрос);
ТекстJSON = ОтветСайта.ПолучитьТелоКакСтроку();
Исключение
Возврат;
КонецПопытки;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТекстJSON);
Структ = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
//В данном случае нас интересует только id организации, чтобы можно было получить полную информацию с адресом в формате ФИАС
IDОрганизации =Структ[0].id;
HTTPЗапрос = Новый HTTPЗапрос("интеграция/компании/"+Формат(IDОрганизации,"ЧГ=")+"/");
ОтветСайта = HTTPСоединение.Получить(HTTPЗапрос);
ТекстJSON = ОтветСайта.ПолучитьТелоКакСтроку();
//ТекстJSON - полный ответ с данными об организации
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТекстJSON);
Структ = ПрочитатьJSON(ЧтениеJSON);
Ответ = "Наименование: "+СокрлП(Структ.shortName);
Ответ = Ответ+Символы.ПС+"Полн. наименование: "+СокрлП(Структ.name);
Ответ = Ответ+Символы.ПС+"ИНН: "+СокрлП(Структ.inn);
Ответ = Ответ+Символы.ПС+"КПП: "+СокрлП(Структ.kpp);
Ответ = Ответ+Символы.ПС+"ОГРН: "+СокрлП(Структ.ogrn);
Ответ = Ответ+Символы.ПС+"Юр Адрес: "+СокрлП(Структ.address.fullAddress);
Ответ = Ответ+Символы.ПС+"Физ Адрес: "+СокрлП(Структ.address.fullHouseAddress);
Вот и все.
Внимание! Владельцы сервиса просят пожалеть их и не выполнять массовых запросов, поэтому рекомендую всем повесить эту процедуру на кнопочку "Заполнить по ИНН", а не использовать целиком на весь справочник контрагентов за раз! Подробнее здесь
И еще, парсер JSON появился с версии 1С 8.3.6 и в ранних версиях его нет. Но это ведь не большая проблема - из текста-то все что угодно выудить можно! А лучше платформу все-таки обновить))
Удачи!
(20.09.2018) ВНИМАНИЕ!! К великому сожалению с момента написания статьи данный сервис перестал быть бесплатным...