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

                вИндекс = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(СтрокаТЗ.ФизическоеЛицо, Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица);
                ТекущаяСтрока = СтрЗаменить(вИндекс, ",", Символы.ПС);
                СП = Новый СписокЗначений;
                А = 0;
                Пока А <> СтрЧислоСтрок(ТекущаяСтрока) Цикл
                    СП.Добавить(СтрПолучитьСтроку(ТекущаяСтрока, А));
                    А = А + 1;
                КонецЦикла;
5 MUXACb
 
05.10.17
11:14
(4) Посмотрите правила переноса данных из ЗУП 2.5 и сделайте обратное соответствие
6 RomaH
 
naïve
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);
Независимо от того, куда вы едете — это в гору и против ветра!