Программное заполнение контрагентов по ИНН (через сайт)

1. extrim-style 7 16.02.18 15:27 Сейчас в теме
Конфа на основе БСП, выполнено подключение к сайту 1С для проверки контрагентов. Необходимо заполнить справочник контрагентов на основе списка ИНН. Создаю контрагентов, заполняю только ИНН и признак ЮрЛицо. Подскажите, какой процедурой общего модуля можно выполнить заполнение всех контрагентов по информации сайта? (интерактивно по кнопке "Заполнить ИНН" - заполняется). Что-то никак не разберусь...
По теме из базы знаний
Найденные решения
11. extrim-style 7 16.02.18 16:41 Сейчас в теме
Разобрался. Держите:
РеквизитыКонтрагента = ДанныеЕдиныхГосРеестров.РеквизитыЮридическогоЛицаПоИНН(СокрЛП(Стр.ИНН));
ЗаполнитьЗначенияСвойств(КонтрагентОбъект, РеквизитыКонтрагента);
КонтрагентОбъект.Записать();

Всем спасибо.
zyama; yurazyuraz; evgeny_sluzhenko; 3gf; simich; Flipp; AlexeyBP; Birumba; tgr123; user1225706; Xershi; Meverix; Tarlich; CD_SVEN; appeto; Nika_B; janibeg; +17 Ответить
12. extrim-style 7 16.02.18 18:15 Сейчас в теме
Более подробно - в процедуре НайтиРеквизитыНаСервере общей формы ЗаполнениеРеквизитовКонтрагента.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Docaru 1 16.02.18 15:34 Сейчас в теме
(1)посмотри куда ведет вызов по кнопке
3. extrim-style 7 16.02.18 15:55 Сейчас в теме
(2) я посмотрел, потом написал сюда. Там в основном процедуры по обработке из формы (на клиенте). Но открывать каждую формочку как-то не вариант. Вот пока не разобрался думал, может кто подскажет пооперативнее. Те процедуры, которые в общих модулях, типа ПроверкаКонтрагента почему-то только проверяют без заполнения, причём ещё и КПП требуют зачем-то.
9. Docaru 1 16.02.18 16:31 Сейчас в теме
(3)КПП тоже нужен - в разных говорад может быть у ЮЛ филиалы. Соответственно адреса другие и КПП тоже
10. Docaru 1 16.02.18 16:37 Сейчас в теме
(3)с хожу тоже ни кто не скажет - надо хотя бы конфу назвать и версию )
4. AndKovalchuk 192 16.02.18 16:01 Сейчас в теме
вообще-то при заполнении происходит обращение к вебсервису "1с:Контрагент" и он по Инн возвращает реквизиты контрагента.
5. extrim-style 7 16.02.18 16:02 Сейчас в теме
(4) вопрос в том, каким образом инициализировать заполнение контрагентов программно на основе ИНН
6. AndKovalchuk 192 16.02.18 16:09 Сейчас в теме
7. extrim-style 7 16.02.18 16:19 Сейчас в теме
(6) это не то. Мне нужно что-то вроде ПроверкаКонтрагентов.ПроверитьВебСервисомФНС(ДанныеКонтрагентов, ДополнительныеПараметры). Но, не получается.
8. AndKovalchuk 192 16.02.18 16:24 Сейчас в теме
Насколько я понял заполнение реквизитов происходит в общемМодуле.РаботаСКонтаргентамиБП

Там есть такая процедура:
Процедура ЗаполнитьРеквизитыКонтрагентаПоДаннымПрограммы(ИнформацияОСвязях, Контрагент)
	
	Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Контрагент, 
		"Ссылка,Наименование,НаименованиеПолное,"
		+ "ИНН,КПП,РегистрационныйНомер,"
		+ "ЮридическоеФизическоеЛицо,ГосударственныйОрган,ОбособленноеПодразделение,"
		+ "Родитель,Комментарий,ДополнительнаяИнформация");
		
	СтруктураНаименование = Отчеты.ДосьеКонтрагента.НовыеДанныеПрограммы();
	СтруктураНаименование.Ссылка        = Реквизиты.Ссылка;
	СтруктураНаименование.Представление = Реквизиты.Наименование;
	СтруктураНаименование.Описание      = Реквизиты.НаименованиеПолное;
	ИнформацияОСвязях.ДанныеПрограммы.Вставить("Наименование", СтруктураНаименование);
	
	СтруктураРеквизиты = Отчеты.ДосьеКонтрагента.НовыеДанныеПрограммы();
	СтруктураРеквизиты.Представление = СтрШаблон(НСтр("ru='ИНН %1, ОГРН %2'"),
		Реквизиты.ИНН,
		Реквизиты.РегистрационныйНомер);
	Если Реквизиты.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда
		СтруктураРеквизиты.Описание = СтрШаблон(НСтр("ru='КПП %1'"), Реквизиты.КПП);
		Если ЗначениеЗаполнено(ИнформацияОСвязях.КПП)
			И Реквизиты.КПП <> ИнформацияОСвязях.КПП Тогда
			СтруктураРеквизиты.ПримечаниеОписание = СтрШаблон(НСтр("ru='По данным ЕГРЮЛ: 
				|КПП %1'"), ИнформацияОСвязях.КПП);
		КонецЕсли;
	КонецЕсли;
	ИнформацияОСвязях.ДанныеПрограммы.Вставить("Реквизиты", СтруктураРеквизиты);
	
	Если Реквизиты.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда
		ВидКонтрагента = НСтр("ru='Физическое лицо'");
	ИначеЕсли Реквизиты.ГосударственныйОрган Тогда
		ВидКонтрагента = НСтр("ru='Государственный орган'");
	ИначеЕсли Реквизиты.ОбособленноеПодразделение Тогда
		ВидКонтрагента = НСтр("ru='Обособленное подразделение'");
	Иначе
		ВидКонтрагента = НСтр("ru='Юридическое лицо'");
	КонецЕсли;
	ИнформацияОСвязях.ДанныеПрограммы.Вставить("ВидКонтрагента", ВидКонтрагента);
	
	ИнформацияОСвязях.ДанныеПрограммы.Вставить("Родитель",    Реквизиты.Родитель);
	ИнформацияОСвязях.ДанныеПрограммы.Вставить("Комментарий", Реквизиты.Комментарий);
	ИнформацияОСвязях.ДанныеПрограммы.Вставить("ДополнительнаяИнформация", Реквизиты.ДополнительнаяИнформация);
	
КонецПроцедуры
Показать
11. extrim-style 7 16.02.18 16:41 Сейчас в теме
Разобрался. Держите:
РеквизитыКонтрагента = ДанныеЕдиныхГосРеестров.РеквизитыЮридическогоЛицаПоИНН(СокрЛП(Стр.ИНН));
ЗаполнитьЗначенияСвойств(КонтрагентОбъект, РеквизитыКонтрагента);
КонтрагентОбъект.Записать();

Всем спасибо.
zyama; yurazyuraz; evgeny_sluzhenko; 3gf; simich; Flipp; AlexeyBP; Birumba; tgr123; user1225706; Xershi; Meverix; Tarlich; CD_SVEN; appeto; Nika_B; janibeg; +17 Ответить
13. CD_SVEN 07.07.20 14:51 Сейчас в теме
12. extrim-style 7 16.02.18 18:15 Сейчас в теме
Более подробно - в процедуре НайтиРеквизитыНаСервере общей формы ЗаполнениеРеквизитовКонтрагента.
14. Nika_B 14.10.20 15:34 Сейчас в теме
Если кому еще актуально: В Бухгалтерии 3.0 код такой:

РеквизитыКонтрагента = РаботаСКонтрагентами.РеквизитыЮридическогоЛицаПоИНН(СокрЛП(ИНН));
Если СокрЛП(РеквизитыКонтрагента.ОписаниеОшибки) = "" Тогда
ЗаполнитьЗначенияСвойств(НовКонтрагент, РеквизитыКонтрагента);
Иначе
//Заполняем реквизиты самостоятельно
КонецЕсли;

Проверяю на пустое "ОписаниеОшибки" потому, что процедура "РеквизитыЮридическогоЛицаПоИНН" изредка возвращает ошибку "Невозможно получить реквизиты контрагента", хотя по кнопке в справочнике реквизиты заполняются нормально. Почему - пока не разобрался.
khanolga; denialic; delat; +3 Ответить
15. payta 01.12.20 13:21 Сейчас в теме
(14) а у вас при этом данные контактных лиц и адреса заполняются?
21. tp_home@mail.ru 22.05.23 19:28 Сейчас в теме
(15)
Немного подшаманил и начало заполняться, потому как в структуре возвращается адрес временного хранилища, в которое и сложены все структуры для заполнения. Нужно их оттуда достать.

К = Справочники.Контрагенты.создатьЭлемент();

РеквизитыКратко = КонтрагентыФормы.ДанныеЕдиныхГосРеестровПоИНН(СокрЛП(Стр.ИНН), К.ЮридическоеФизическоеЛицо = перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо);
Если СокрЛП(РеквизитыКратко .ОписаниеОшибки) <> "" Тогда
				РеквизитыКонтрагента = ПолучитьИзВременногоХранилища(РеквизитыКратко.АдресРеквизитовКонтрагента);
				ЗаполнитьЗначенияСвойств(К, РеквизитыКонтрагента);
				К.Записать();	
КонецЕсли;
Показать
16. Meverix 17.12.20 18:18 Сейчас в теме
Разобрался. Держите:
РеквизитыКонтрагента = ДанныеЕдиныхГосРеестров.РеквизитыЮридическогоЛицаПоИНН(СокрЛП(Стр.ИНН));
ЗаполнитьЗначенияСвойств(КонтрагентОбъект, РеквизитыКонтрагента);
КонтрагентОбъект.Записать();


Хоспади. Бокал самого дорого шампанского этому господину! Спасибо!
17. avp72 30.08.21 15:51 Сейчас в теме
РаботаСКонтрагентами.СведенияОЮридическомЛицеПоИНН(ИННОбъекта)
РаботаСКонтрагентами.РеквизитыПредпринимателяПоИНН(ИННОбъекта);
yurazyuraz; evn-zorin; wild83; +3 Ответить
18. AlexeyBP 13.03.22 17:02 Сейчас в теме
(17)
А как потом заполнить реквизиты контрагента?
В процедурах модуля РаботаСКонтрагентами нет процедуры ЗаполнитьЗначенияСвойств. Есть только заполнение отдельных свойств.
19. AlexeyBP 13.03.22 17:09 Сейчас в теме
(17)
Писать програмно заполнение каждого отдельного реквизита? Или есть какой то способ вызвать другую процедуру и заполнить сразу все поля?
20. khanolga 28.02.23 13:38 Сейчас в теме
Спасибо огромное! сэкономили мне кучу времени
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот