Вход | Регистрация

1С:Предприятие ::

Метки: 

Адрес в ЗУП 3.1

Я
   Ychenik1c
 
20.09.17 - 07:31
Здравствуйте. Необходимо из Зуп 3.1 для обработки получить адрес сотрудника. В Зуп 2.5 был для этого регистр сведений. В Зуп 3.1 нашел только у физлиц табличную часть контактная информация. Из неё можно получить только представление. Но мне надо как занесено через КЛАДР, город, улица, дом и т.д. были отдельными реквизитами. Подскажите как можно получить нужные данные? Там все обрабатывается в общем модуле.
 
 
   SleepyHead
 
1 - 20.09.17 - 08:10
Кури модуль "УправлениеКонтактнойИнформацией", а также общую форму ввода адреса. Там как раз адрес разбирается на части для того, чтобы вывести на форму.
   SleepyHead
 
2 - 20.09.17 - 08:12
Уточняю - обработка "РасширенныйВводКонтактнойИнформации", форма "ВводАдреса"
   MUXACb
 
3 - 20.09.17 - 08:32
(0) Посмотри РаботаСАдресами.ПредыдущаяСтруктураКонтактнойИнформацииXML(ВыборкаКонтактнойИнформации.ЗначенияПолей);
   Ychenik1c
 
4 - 05.10.17 - 11:02
Адрес получил из УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(СтрокаТЗ.ФизическоеЛицо, Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица).
Потом в цикле его разбил и добавил в СписокЗначений. Но в адресе есть страна, то она не попадает и поэтому в структуре всегода по разному надо обращатья к полям адреса.

                вИндекс = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(СтрокаТЗ.ФизическоеЛицо, Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица);
                ТекущаяСтрока = СтрЗаменить(вИндекс, ",", Символы.ПС); 
                СП = Новый СписокЗначений; 
                А = 0;
                Пока А <> СтрЧислоСтрок(ТекущаяСтрока) Цикл 
                    СП.Добавить(СтрПолучитьСтроку(ТекущаяСтрока, А));
                    А = А + 1;
                КонецЦикла;
   MUXACb
 
5 - 05.10.17 - 11:14
(4) Посмотрите правила переноса данных из ЗУП 2.5 и сделайте обратное соответствие
   RomaH
 
6 - 05.10.17 - 11:17
лентяй
            Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВXML(ВыборкаПоАдресам.ЗначенияПолей) Тогда
                ЗначенияПолей = ВыборкаПоАдресам.ЗначенияПолей;    
            Иначе
                //ЗначенияПолей = СтрЗаменить(ВыборкаПоАдресам.ЗначенияПолей,"№","");

                //Представление = СтрЗаменить(ВыборкаПоАдресам.Представление,"№","");

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

                //ЗначенияПолей = УправлениеКонтактнойИнформациейСлужебный.ПривестиКонтактнуюИнформациюXML(ДанныеКИ).ДанныеXML;

            КонецЕсли;
            
            СтруктураПолей = РаботаСАдресами.АдресВФорматеКЛАДР(ЗначенияПолей);
            КодыАдреса = АдресныйКлассификатор.КодыАдреса(ЗначенияПолей);
            
            
            //Код типа адреса    Обязательный    byte    Принимаемые значения: 1 – адрес прописки, 2 – адрес проживания.

            СтруктураДанных.type_adress = 1;
            Если ЗначениеЗаполнено(КодыАдреса.КодКЛАДР) Тогда
                
                КодКЛАДР = Формат(КодыАдреса.КодКЛАДР,"ЧЦ=21; ЧГ=0");
                Если СтрДлина(КодКЛАДР) < 17 Тогда
                    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не верный адрес для пациента: " + РезультатПоПациентам.Пациент + " " + Формат(РезультатПоПациентам.ДатаРождения,"ДФ=dd.MM.yyyy"),РезультатПоПациентам.Пациент);
                КонецЕсли;
                
                СтруктураДанных.kladr    = Лев(Формат(КодыАдреса.КодКЛАДР,"ЧЦ=21; ЧГ=0") + "0000000000000000000000",19);
                СтруктураДанных.dom        = Лев(СтруктураПолей.Дом,6);
                СтруктураДанных.korpus    = Лев(СтруктураПолей.Корпус,6);


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует