Как программно заполнить контактную инф данными из ФНС? БП3.0, внешняя обработка

1. Shecurok 07.04.21 19:40 Сейчас в теме
Добрый вечер. Пишу внешнюю обраюотку для бух 3.0, и тут у меня создаются новые контрагенты, есл не найдены были в базе. Всё отлично записывается, кроме конт. информации. Процедуру взял типовую. Ошибка на моменте Строки = ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор); пишет, что поле КонтИнф... не найдено. Судя по всему ЭтотОбъект она считает не нового контрагента, а эту самую внешнюю обработку. Как переделать? Весь код выглдяит так:

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

&НаСервере
Процедура ЗаполнитьЭлементКонтактнойИнформации(СпрКонтрагент, ИмяРеквизита, СтруктураДанных)
    
        
    Если СтруктураДанных = Неопределено Тогда
        Возврат;
    КонецЕсли;

    Отбор  = Новый Структура("ИмяРеквизита", ИмяРеквизита);
    Строки = ЭтотОбъект.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор);
    ДанныеСтроки = ?(Строки.Количество() = 0, Неопределено, Строки[0]);
    Если ДанныеСтроки = Неопределено Тогда
        Возврат;
    КонецЕсли;
    ЗаполнитьЗначенияСвойств(ДанныеСтроки, СтруктураДанных);
    ДанныеСтроки.Значение = СтруктураДанных.КонтактнаяИнформация;
    ЭтотОбъект[ИмяРеквизита] = СтруктураДанных.Представление;
    
КонецПроцедуры
Показать
Вознаграждение за ответ
Показать полностью
Найденные решения
4. Shecurok 08.04.21 10:29 Сейчас в теме +1 $m
Хотел как лучше, получилось как всегда...

Забил я пока на эти коллекции данных, у меня же адрес из ФНС был в РеквизитыКонтрагента. В итоге сделал так:

Об=СпрКонтрагент;
Адрес=Об.КонтактнаяИнформация.Добавить();
Адрес.Тип=Перечисления.ТипыКонтактнойИнформации.Адрес;
Адрес.Вид=Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
//Адрес.Представление=Строка(СтрокаТЗ.АдресПокупателя);

Адрес.Представление=РеквизитыКонтрагента.ЮридическийАдрес.Представление;
Об.Записать();
19autumn82; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. ZergKRSK 129 08.04.21 11:16 Сейчас в теме
(1)
Как переделать?

Строки = СпрКонтрагент.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов.НайтиСтроки(Отбор);
2. Shecurok 08.04.21 09:51 Сейчас в теме
Никто не заполонял программно данными из ФНС?
3. user856012 13 08.04.21 10:26 Сейчас в теме
(2)
Никто не заполонял программно данными из ФНС?
Кто-то заполнял, но использовал ЭтаФорма, а не ЭтотОбъект: https://forum.infostart.ru/forum9/topic220289/
EvgeniyOlxovskiy; +1 Ответить
4. Shecurok 08.04.21 10:29 Сейчас в теме +1 $m
Хотел как лучше, получилось как всегда...

Забил я пока на эти коллекции данных, у меня же адрес из ФНС был в РеквизитыКонтрагента. В итоге сделал так:

Об=СпрКонтрагент;
Адрес=Об.КонтактнаяИнформация.Добавить();
Адрес.Тип=Перечисления.ТипыКонтактнойИнформации.Адрес;
Адрес.Вид=Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
//Адрес.Представление=Строка(СтрокаТЗ.АдресПокупателя);

Адрес.Представление=РеквизитыКонтрагента.ЮридическийАдрес.Представление;
Об.Записать();
19autumn82; +1 Ответить
6. Noctisik 28.11.22 18:52 Сейчас в теме
(4), привет, дошёл до такого же решения, однако, в итоге, данные из КИ не попадают в карточку контрагента. Не делали ли вы каких-то дополнительных действий после заполнения Объект.КонтактнаяИнформация?
Прикрепленные файлы:
Оставьте свое сообщение

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