Программное создание физлица с данными ФИАС (1С.Документооборот)
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) Курите модули РаботаСАдресами и УправлениеКонтактнойИнформацией. Сохраняется обычно в ТЧ Контактная информация справочника.
Я бы на вашем месте руками записал адрес у физлица и запросом к этой ТЧ посмотрел в каком виде там все хранится.
Я бы на вашем месте руками записал адрес у физлица и запросом к этой ТЧ посмотрел в каком виде там все хранится.
(5)Например см. УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению() - из строки во внутренний JSON преобразует, а потом УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию() - добавляет контактную информацию из JSON объекту
(7)
Немного разобрался, но не совсем. Получилось программно добавить контактный телефон физлица. Однако после открытия формы этого физлица, поле с номером телефона пусто!
Смотрю в отладчике:
При открытии вызывается метод УправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект) и далее ПриЧтенииНаСервере(Форма, Объект, ИмяЭлементаДляРазмещения = "ГруппаКонтактнаяИнформация").
Находясь в теле ПриЧтенииНаСервере смотрю Объект.КонтактнаяИнформация и Форма.Объект.КонтактнаяИнформация. Там всё заполнено, то есть контакты существуют.
В самом начале ПриЧтенииНаСервере идет такой код:
СписокРеквизитовФормы почему-то не содержит контактной информации -- "ПараметрыКонтактнойИнформации". Поэтому происходит выход из процедуры. И наверное поэтому параметры формы не заполняются при её открытии.
Не понимаю, как открыть форму с заполненными полями контактов?
УправлениеКонтактнойИнформацией
Немного разобрался, но не совсем. Получилось программно добавить контактный телефон физлица. Однако после открытия формы этого физлица, поле с номером телефона пусто!
Смотрю в отладчике:
При открытии вызывается метод УправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект) и далее ПриЧтенииНаСервере(Форма, Объект, ИмяЭлементаДляРазмещения = "ГруппаКонтактнаяИнформация").
Находясь в теле ПриЧтенииНаСервере смотрю Объект.КонтактнаяИнформация и Форма.Объект.КонтактнаяИнформация. Там всё заполнено, то есть контакты существуют.
В самом начале ПриЧтенииНаСервере идет такой код:
СписокРеквизитовФормы = Форма.ПолучитьРеквизиты();
ПервыйЗапуск = Истина;
Для Каждого Реквизит Из СписокРеквизитовФормы Цикл
Если Реквизит.Имя = "ПараметрыКонтактнойИнформации" И ТипЗнч(Форма.ПараметрыКонтактнойИнформации) = Тип("Структура") Тогда
ПервыйЗапуск = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ПервыйЗапуск Тогда
Возврат;
КонецЕсли;
Параметры = ПараметрыКонтактнойИнформацииФормы(Форма.ПараметрыКонтактнойИнформации, ИмяЭлементаДляРазмещения); ПоказатьСписокРеквизитовФормы почему-то не содержит контактной информации -- "ПараметрыКонтактнойИнформации". Поэтому происходит выход из процедуры. И наверное поэтому параметры формы не заполняются при её открытии.
Не понимаю, как открыть форму с заполненными полями контактов?
(9) А у справочника вызываются при создании формы методы из этих общих модулей?
Например вот ЗУП 3.1, там все реквизиты работы с контактной информацией создаются программно в ПриСозданииНаСервере():
Единственное, что есть на форме, это Группа с именем ГруппаКонтактнаяИнформация
Например вот ЗУП 3.1, там все реквизиты работы с контактной информацией создаются программно в ПриСозданииНаСервере():
// СтандартныеПодсистемы.КонтактнаяИнформация
ДополнительныеПараметры = УправлениеКонтактнойИнформацией.ПараметрыКонтактнойИнформации();
ДополнительныеПараметры.ИмяЭлементаДляРазмещения = "ГруппаКонтактнаяИнформация";
ДополнительныеПараметры.ПоложениеЗаголовкаКИ = ПоложениеЗаголовкаЭлементаФормы.Лево;
УправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ФизическоеЛицо, ДополнительныеПараметры);
УправлениеКонтактнойИнформациейЗарплатаКадры.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.КонтактнаяИнформацияЕдинственное, что есть на форме, это Группа с именем ГруппаКонтактнаяИнформация
(12) давно тоже загружала контактные данные, в частности адреса... там какая-то особенность есть...
ХML правильно заполнен? Если открыть, нажав на три точки - там все корректно отображается? Важно правильно заполнить - чтобы соответствовало структуре.
Заполните руками кому-нибудь телефон/адрес и посмотрите как программа заполнит эти поля/реквизиты.
ХML правильно заполнен? Если открыть, нажав на три точки - там все корректно отображается? Важно правильно заполнить - чтобы соответствовало структуре.
Заполните руками кому-нибудь телефон/адрес и посмотрите как программа заполнит эти поля/реквизиты.
Не знаю. Может я что-то сделал не так или недоделал, когда создавал новый элемент справочника физлиц. Посмотрите. Как я уже писал выше, потом при открытии формы, контакты можно найти в Объект.КонтактнаяИнформация и Форма.Объект.КонтактнаяИнформация. И там вроде всё корректно (в xml и json строках). Однако в самой форме данных нет, то есть поля формы пустые.
newФЛ = Справочники.ФизическиеЛица.СоздатьЭлемент();
newФЛ.Наименование = s_FIO;
newФЛ.ГруппаДоступа = Cправочники.ГруппыДоступаФизическихЛиц.НайтиПоНаименованию("Контрагенты");
newФЛ.Записать(); //записываем сейчас, чтобы получить Ссылку
////////////////////////////////////////
//START работа с контактной информацией
////////////////////////////////////////
//добавление телефона в контакты
ТелефонСтруктура = Новый Структура;
ТелефонСтруктура.Вставить("Представление", "+7 (123) 456-78-95");
ТелефонСтруктура.Вставить("Комментарий", "тестовый номер 2");
ТелефонСтруктура.Вставить("КодСтраны", "7");
ТелефонСтруктура.Вставить("КодГорода", "123");
ТелефонСтруктура.Вставить("НомерТелефона", "456-78-95");
ТелефонXML = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ТелефонСтруктура,"", Перечисления.ТипыКонтактнойИнформации.Телефон);
ТелефонJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ТелефонXML);
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(newФЛ.Ссылка, ТелефонJSON, Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента, ТекущаяДата(), Ложь);
Показать
(15)
Спасибо за подсказку. Только в 1С.Документооборот КОРП чуть по другому называется реквизит. Нужно:
Теперь работает ))
Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица
Спасибо за подсказку. Только в 1С.Документооборот КОРП чуть по другому называется реквизит. Нужно:
Справочники.ВидыКонтактнойИнформации.МобильныйТелефонФизическогоЛицаТеперь работает ))
(16) Отлично) Только совсем маленькое замечание по коду для оптимизации, ДобавитьКонтактнуюИнформацию в качестве первого параметра может принимать как ссылку, так и объект, я бы передавал туда объект newФЛ, а после этого уже newФЛ.Записать(); иначе получается запись объекта 2 раза происходит)
(17) Еще такой вопрос. Если добавлять подобным способом сведения об адресе, то оказывается, что он будет введен в свободной форме. Его нельзя будет проверить по кнопке "Проверить заполнение". А нужно, чтобы осуществлялась проверка на соответствие адреса формату ФИАС. Как быть в этом случае?
(21) У меня работает например так.
Адрес вот в таком формате:
Адрес вот в таком формате:
РОССИЯ, 334038, Иркутская обл, Иркутский муниципальный район, Молодежный п, Ангарская ул, дом 15, квартира 2
АдресJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(Адрес, Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица);
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ФЛ, АдресJSON, Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица, ТекущаяДата(), Истина);
(22) В том и дело, что у Вас показан пример ввода адреса в свободной форме, а не в фиксированном формате ФИАС.
В Вашем примере адрес будет введен в общее поле. При нажатии на кнопку "Проверить заполнение" будет информационное окно о невозможности провести проверку. Это говорит о том, что предложенным способом адрес введен не корректно, согласно ФИАС. См. скрин 1.
Корректный же адрес будет отображаться в форме по другому (все данные адреса -- город, улица, дом и т.д. будут в отдельных полях). И такой адрес пройдет проверку. См. скрин 2.
Видите разницу?
Мне как раз то и нужно сделать по второму варианту, т.е. ввести корректный адрес.
В Вашем примере адрес будет введен в общее поле. При нажатии на кнопку "Проверить заполнение" будет информационное окно о невозможности провести проверку. Это говорит о том, что предложенным способом адрес введен не корректно, согласно ФИАС. См. скрин 1.
Корректный же адрес будет отображаться в форме по другому (все данные адреса -- город, улица, дом и т.д. будут в отдельных полях). И такой адрес пройдет проверку. См. скрин 2.
Видите разницу?
Мне как раз то и нужно сделать по второму варианту, т.е. ввести корректный адрес.
Прикрепленные файлы:
(23) Если есть подписка ИТС и подключен веб-сервис проверки адресов, можно попробовать поработать через Обработки.РасширенныйВводКонтактнойИнформации.СписокАвтоподбораНаселенногоПункта()
Для адреса выше он возвращает 2 варианта(муниципальный и административный). Муниципальный после этого проверку почему-то не проходит, а административный вроде работает нормально, но для адреса
Правда, судя по всему, наиболее подходящий всегда идет первым.
Для адреса выше он возвращает 2 варианта(муниципальный и административный). Муниципальный после этого проверку почему-то не проходит, а административный вроде работает нормально, но для адреса
194292, Санкт-Петербург г, 1-й Верхний пер, дом 10
например там несколько десятков вариантов подходящих.
Правда, судя по всему, наиболее подходящий всегда идет первым.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
