Имя: Пароль:
1C
1С v8
Перенос данных ЗУП 2.5 в ЗУП 3. Контактная информация.
,
0 bolobol
 
02.02.18
15:28
Доброй пьятницы!

Подскажите, пожалуйста, как понять, как именно переносить контактную информацию ФЛ из ЗУП 2.5 в ЗУП 3, чтобы в поле ЗначенияПолей появилось правильно заполненное подобное:

"<КонтактнаяИнформация
|xmlns=""http://www.v8.1c.ru/ssl/contactinfo"";
|xmlns:xs=""http://www.w3.org/2001/XMLSchema"";
|xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"";
|
|Представление=""РОССИЯ, 190000, Санкт-Петербург г, Горохо-музыкальная ул, дом № 255, квартира 8"">
|
|<Комментарий/>
|
|<Состав xsi:type=""Адрес"" Страна=""РОССИЯ"">
|
|<Состав xsi:type=""АдресРФ"">
|
|    <СубъектРФ>Санкт-Петербург г</СубъектРФ>
|
|    <Улица>Горохо-музыкальная ул</Улица>
|
|    <ОКТМО>9998888</ОКТМО>
|
|    <ДопАдрЭл><Номер Тип=""2010"" Значение=""8""/></ДопАдрЭл>
|    <ДопАдрЭл><Номер Тип=""1010"" Значение=""255""/></ДопАдрЭл>
|    <ДопАдрЭл ТипАдрЭл=""10100000"" Значение=""190000""/>
|
|</Состав>
|</Состав>
|
|</КонтактнаяИнформация>"


Спасибо!
1 Amra
 
02.02.18
15:33
А чем типовой вариант не устраивает?
2 bolobol
 
02.02.18
15:40
(1) Типовой нужно иметь, а у нас только значения полей есть адресов
3 Amra
 
02.02.18
15:49
(2) Если есть куда грузить, то значит и типовые правила есть (подсказываю - они в конфе). Посмотреть там как разбирается представление - именно то что нужно
4 bolobol
 
02.02.18
15:59
(3) Т.е. вы предлагаете пройти отладкой весь путь сохранения элемента ФЛ, вместо ознакомления с размещением и названием функции (если такая и есть), на крайний случай - вместо ознакомления с форматом схемы?
5 Amra
 
02.02.18
16:07
(4) Я предлагаю посмотреть одно единственное правило конвертации из 2.5 в 3.1. Там в коде все есть. За потраченные полчаса уже все бы уже б сделал
6 bolobol
 
02.02.18
16:29
(5) Тогда - резонен вопрос: что за правила такие, где находятся, как взять? Логично ведь, не правда ли?
7 Неверный Параметр И
 
02.02.18
16:37
(0) ИТС -> Главная -> Разработка и администрирование -> Библиотека стандартных подсистем 2.4.5. -> Документация -> 3.25. Контактная информация -> Настройка обмена данными
8 Amra
 
02.02.18
16:40
(6)  Внимательно читаем (3) - логично, правда?
9 bolobol
 
02.02.18
17:07
(7) Спасибо. Но, то ли я слеп, то ли там только конвертация в старую версию описана, и то - лишь в одно какое-то значение:

Значение = РаботаСАдресами.ПредыдущийФорматКонтактнойИнформацииXML(Значение, Истина)

И про то, что можно разобрать Представление в отдельные поля адреса, но, пиип, где "как собрать отдельные поля в ЗначенияПолей?"?

Что я не дочитал?
10 bolobol
 
02.02.18
17:09
(8) при помощи (7) - я понял, что имеется некая демо-конфа с правилами конвертаций. Попробую развернуть её, что ли...
11 Неверный Параметр И
 
02.02.18
17:15
(9) А, тебе обратно из старой в новую, я криво прочитал.
Тогда забей. ЕМНИП оно везде успешно читает старое ключ=значение, а записывает уже новый xml.
В БСП так испокон веков было, если только ЗУПовцы своей самобытности не привнесли.
Ну и в тех же модулях по управлению КИ посмотри, там вменяемо написано и прокомментировано.
12 bolobol
 
02.02.18
17:17
(11) У меня совсем "старое" - у меня отдельные поля только - Дом=17, Корп=20, Оф=316, Город=Питер...
13 bolobol
 
02.02.18
17:17
(11) Но схему я почти уловил, уже почти вооружён, Спасибо!
14 Alexandr_U1982
 
02.02.18
17:51
(6)
ОбщийМакет.ЗарплатаКадрыПереносДанныхИзБП30
ОбщийМакет.ЗарплатаКадрыПереносДанныхИзЗиК23
ОбщийМакет.ЗарплатаКадрыПереносДанныхИзЗУП25
ОбщийМакет.ЗарплатаКадрыПереносДанныхИзЗУП25КОРП

Стыдно не знать)
15 Alexandr_U1982
 
02.02.18
17:56
Однажды тоже нужно было перегрузить контактную информацию.
    Для Каждого Строка Из ТаблицаКонтактнаяИнформация Цикл
        
        Тип = ПолучитьЗначениеПеречисления("ТипыКонтактнойИнформации", Строка.Тип);
        
        Если Не ЗначениеЗаполнено(Строка.Вид) Тогда
            Строка.Вид = ПолучитьВидКонтактнойИнформации(Строка.Вид_ИмяПредопределенного, Строка.Вид_Наименование, Тип, РодительВидаКИ);
        КонецЕсли;
        
        // Телефон
        Если Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
            Представление = ?(Лев(Строка.Представление, 5) = "(495)", "+7 " + Строка.Представление, Строка.Представление);
            
        // Адрес
        ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
            
            Представление = Строка.Представление;
            Представление = СтрЗаменить(Представление, "кв.", "квартира ");
            Представление = СтрЗаменить(Представление, "оф.", "офис ");
            ЗначенияПолей = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияXMLПоПредставлению(Представление, Строка.Вид);
            СтруктураКИ   = УправлениеКонтактнойИнформацией.ПредыдущаяСтруктураКонтактнойИнформацииXML(ЗначенияПолей, Строка.Вид);
            
            Если Строка.ВключатьСтрануВПредставление Тогда
                Представление = СтруктураКИ.Страна + ", " + Представление;
            КонецЕсли;
            
        // Все остальное
        Иначе
            Представление = Строка.Представление;
        КонецЕсли;
        
        ЗначенияПолей = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияXMLПоПредставлению(Представление, Строка.Вид);
        
        // Добавляем контактную информацию в справочник
        Если ЗначениеЗаполнено(Тип)           И
             ЗначениеЗаполнено(Строка.Вид)    И
             ЗначениеЗаполнено(ЗначенияПолей) Тогда
        
            ОтобранныеСтроки = Объект.КонтактнаяИнформация.НайтиСтроки(Новый Структура("Тип, Вид", Тип, Строка.Вид));
            Если ОтобранныеСтроки.Количество() > 0 Тогда
                РедактируемаяСтрока = ОтобранныеСтроки[0];
            Иначе
                РедактируемаяСтрока = Объект.КонтактнаяИнформация.Добавить();
            КонецЕсли;
            
            //
            РедактируемаяСтрока.Тип           = Тип;
            РедактируемаяСтрока.Вид           = Строка.Вид;
            РедактируемаяСтрока.ВидДляСписка  = Строка.Вид;
            РедактируемаяСтрока.Представление = Представление;
            РедактируемаяСтрока.ЗначенияПолей = ЗначенияПолей;
            
            // Адрес электронной почты
            Если Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
                РедактируемаяСтрока.АдресЭП = Представление;
                
            // Телефон
            ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
                
                РедактируемаяСтрока.НомерТелефона         = Представление;
                РедактируемаяСтрока.НомерТелефонаБезКодов = Представление;
                
            // Адрес
            ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
                
                РедактируемаяСтрока.Страна = ?(СтруктураКИ.Свойство("Страна"), СтруктураКИ.Страна, "");
                РедактируемаяСтрока.Регион = ?(СтруктураКИ.Свойство("Регион"), СтруктураКИ.Регион, "");
                РедактируемаяСтрока.Город  = ?(СтруктураКИ.Свойство("Город"),  СтруктураКИ.Город,  "");
                
            КонецЕсли;
            
        КонецЕсли;
        
    КонецЦикла;
16 bolobol
 
02.02.18
18:35
Опачки... Не успел я осилить модуль БСП, не успел перекрутить Алгоритм из правил из (14), тут прям модуль-модуль в (15)!

Разберём и эту схему)

Благодарю вселенски!!
17 Amra
 
02.02.18
20:08
(15) Добрая вы душа, Александр