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

1С:Предприятие :: 1С:Предприятие 8 общая

Перенос данных ЗУП 2.5 в ЗУП 3. Контактная информация.

Перенос данных ЗУП 2.5 в ЗУП 3. Контактная информация.
Я
   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""/>
|
|</Состав>
|</Состав>
|
|</КонтактнаяИнформация>"


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

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

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

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

Стыдно не знать)
   Alexandr_U1982
 
15 - 02.02.18 - 17:56
Однажды тоже нужно было перегрузить контактную информацию.
    Для Каждого Строка Из ТаблицаКонтактнаяИнформация Цикл
        
        Тип = ПолучитьЗначениеПеречисления("ТипыКонтактнойИнформации", Строка.Тип);
        
        Если Не ЗначениеЗаполнено(Строка.Вид) Тогда
            Строка.Вид = ПолучитьВидКонтактнойИнформации(Строка.Вид_ИмяПредопределенного, Строка.Вид_Наименование, Тип, РодительВидаКИ);
        КонецЕсли;
        
        // Телефон

        Если Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
            Представление = ?(Лев(Строка.Представление, 5) = "(495)", "+7 " + Строка.Представление, Строка.Представление);
            
        // Адрес

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

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

        Если ЗначениеЗаполнено(Тип)           И
             ЗначениеЗаполнено(Строка.Вид)    И
             ЗначениеЗаполнено(ЗначенияПолей) Тогда
        
            ОтобранныеСтроки = Объект.КонтактнаяИнформация.НайтиСтроки(Новый Структура("Тип, Вид", Тип, Строка.Вид));
            Если ОтобранныеСтроки.Количество() > 0 Тогда
                РедактируемаяСтрока = ОтобранныеСтроки[0];
            Иначе
                РедактируемаяСтрока = Объект.КонтактнаяИнформация.Добавить();
            КонецЕсли;
            
            //

            РедактируемаяСтрока.Тип           = Тип;
            РедактируемаяСтрока.Вид           = Строка.Вид;
            РедактируемаяСтрока.ВидДляСписка  = Строка.Вид;
            РедактируемаяСтрока.Представление = Представление;
            РедактируемаяСтрока.ЗначенияПолей = ЗначенияПолей;
            
            // Адрес электронной почты

            Если Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
                РедактируемаяСтрока.АдресЭП = Представление;
                
            // Телефон

            ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
                
                РедактируемаяСтрока.НомерТелефона         = Представление;
                РедактируемаяСтрока.НомерТелефонаБезКодов = Представление;
                
            // Адрес

            ИначеЕсли Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
                
                РедактируемаяСтрока.Страна = ?(СтруктураКИ.Свойство("Страна"), СтруктураКИ.Страна, "");
                РедактируемаяСтрока.Регион = ?(СтруктураКИ.Свойство("Регион"), СтруктураКИ.Регион, "");
                РедактируемаяСтрока.Город  = ?(СтруктураКИ.Свойство("Город"),  СтруктураКИ.Город,  "");
                
            КонецЕсли;
            
        КонецЕсли;
        
    КонецЦикла;
   bolobol
 
16 - 02.02.18 - 18:35
Опачки... Не успел я осилить модуль БСП, не успел перекрутить Алгоритм из правил из (14), тут прям модуль-модуль в (15)!

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

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

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