Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Управляемые формы Запись реквизита элемента справочника табличной части

Управляемые формы Запись реквизита элемента справочника табличной части
Я
   DenisVich
 
24.04.20 - 19:15
Здравствуйте уважаемые форумчане. Есть справочник физические лица в нем есть табличная часть контактная информация, пытаюсь записать через свою обработку, ничего не получается.Элемент справочника если смотреть через отладчик записан, но в элементе формы он не отображается. В чем может быть проблема? Спасибо.
Вот код:
"
&НаСервере
Процедура ИзвлечьФИОEMAIL(стр)
    Разделитель = СтрНайти(стр,Символы.Таб);
    ФИО = Лев(стр, Разделитель - 1);
    Стр1 = СтрЗаменить(стр,ФИО,"");
    Стр1 = СтрЗаменить(стр1," ","");
    Стр1 = СтрЗаменить(стр1,Символы.Таб,"");
    EMail = Стр1;
    СсылкаНаФизлицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(ФИО).ПолучитьОбъект();
    Для Каждого ЭлементСтроки Из СсылкаНаФизлицо.КонтактнаяИнформация Цикл
        Если СокрЛП(ЭлементСтроки.Вид) = "Email физ. лица" Тогда
            ЭлементСтроки.Представление = email;
            ЭлементСтроки.ЗначенияПолей = email;//            "value": "Представление="
            ЭлементСтроки.Значение = СтрЗаменить(ЭлементСтроки.Значение,"Представление=","");
        КонецЕсли;
    КонецЦикла;
    СсылкаНаФизлицо.Записать();    
КонецПроцедуры


&НаКлиенте
Процедура ЗагрузитьИзФайла(Команда)
    //ЗагрузитьИзФайлаНаСервере();
       // Вставить содержимое обработчика.
        Перем Стр;

        Стр = "";

        //Открываем диалог выбора файла для чтения
        ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
        ВыборФайла.МножественныйВыбор = Ложь;
        ВыборФайла.Заголовок = НСтр("Выбор файла");
        ВыборФайла.Фильтр = НСтр( "Все файлы (*.*)|*.*");

        Если ВыборФайла.Выбрать()  Тогда
              ПолноеИмяФайла = ВыборФайла.ПолноеИмяФайла;
        Иначе
              Возврат;
        КонецЕсли;

        Текст = Новый ЧтениеТекста;
        Текст.Открыть(ПолноеИмяФайла);

        Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
                 Стр = Текст.ПрочитатьСтроку();
                 ИзвлечьФИОEMAIL(Стр);
                 Сообщить(Стр);
        КонецЦикла;

        Текст.Закрыть();    
КонецПроцедуры
"

содержимое текстового файла:
Иванов Иван Иванович    ivan@bk.ru
Сидоров Иван Иванович    sidorov@mail.ru
   RomanYS
 
1 - 24.04.20 - 19:19
Может в ЗначенияПолей что-то структурированное ожидается
   DenisVich
 
2 - 24.04.20 - 19:22
ЭлементСтроки.Значение - там хранится в определенных тегах все
ЭлементСтроки.ЗначенияПолей - там просто строка
Повторюсь. Данные записываются. Они хранятся там. Можно запросом выборку сделать. Но на форме ничего нет.
   DenisVich
 
3 - 24.04.20 - 19:22
Я знаю что особенность управляемых форм, но как это победить?
   RomanYS
 
4 - 24.04.20 - 19:32
(2) Вот пример что должно быть
ЗначенияПолей
<КонтактнаяИнформация 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"; Представление="test@test.ru"><Состав xsi:type="ЭлектроннаяПочта" Значение="test@test.ru"/></КонтактнаяИнформация>

АдресЭП
test@test.ru

ДоменноеИмяСервера
test.ru

Значение
"{
""value"": ""test@test.ru"",
""comment"": """",
""type"": ""АдресЭлектроннойПочты""
}"
   RomanYS
 
5 - 24.04.20 - 19:33
(3) Если после переоткрытия не появляется значит проблема не в УФ, а в (4)
   DenisVich
 
6 - 28.04.20 - 14:22
(5) Спасибо. Но не помоголо. Есть догадки, что все-таки дело в работе с функциями БСП, которые встроены в конфигурацию. Модули УправлениеКонтактной информацией. Подскажите пожалуйста какими методами нужно пользоваться при работе с УправлениеКонтактнойИнформацией.
"
&НаСервере
Процедура ИзвлечьФИОEMAIL(стр)

    Разделитель = СтрНайти(стр,Символы.Таб);
    ФИО = Лев(стр, Разделитель - 1);
    Стр1 = СтрЗаменить(стр,ФИО,"");
    Стр1 = СтрЗаменить(стр1," ","");
    EMail = СтрЗаменить(стр1,Символы.Таб,"");
   ЗначениеСтроки="{"+Символы.ПС+Символ(34)+Символ(34)+"value"+Символ(34)+Символ(34)+": "+Символ(34)+Символ(34)+EMail+Символ(34)+Символ(34)+","+
+Символы.ПС+Символ(34)+Символ(34)+"comment"+Символ(34)+Символ(34)+": "+Символ(34)+Символ(34)+Символ(34)+Символ(34)+","
+Символ(34)+Символ(34)+"type"+": "+Символ(34)+Символ(34)+"АдресЭлектроннойПочты"+Символ(34)+Символы.ПС+"}";

    ЗначенияПолей = "<КонтактнаяИнформация xmlns="+Символ(34)+"34)+"\" target=\"_blank\" rel=\"nofollow\" class=\"extralink\">http://www.v8.1c.ru/ssl/contactinfo"+Символ(34)+";; xmlns:xs="+Символ(34)+"34)+"\" target=\"_blank\" rel=\"nofollow\" class=\"extralink\">http://www.w3.org/2001/XMLSchema"+Символ(34)+";; xmlns:xsi="+Символ(34)+"34)+"\" target=\"_blank\" rel=\"nofollow\" class=\"extralink\">http://www.w3.org/2001/XMLSchema-instance"+Символ(34)+";; Представление="+Символ(34)+EMail+Символ(34)+"><Состав xsi:type="+Символ(34)+"ЭлектроннаяПочта"+Символ(34)+ "Значение="+Символ(34)+Email+Символ(34)+"/></КонтактнаяИнформация>";

    СсылкаНаФизлицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(ФИО).ПолучитьОбъект();
    Для Каждого ЭлементСтроки Из СсылкаНаФизлицо.КонтактнаяИнформация Цикл
        Если СокрЛП(ЭлементСтроки.Вид) = "Email физ. лица" или СокрЛП(ЭлементСтроки.Вид) = "Электронная почта" Тогда
            ЭлементСтроки.Представление = email;
            ЭлементСтроки.ЗначенияПолей = ЗначенияПолей;//            "value": "Представление="
            ЭлементСтроки.Значение = ЗначениеСтроки;//СтрЗаменить(ЭлементСтроки.Значение,"Представление=","");
            ДанныеЗаполнения = УправлениеКонтактнойИнформацией.НоваяКонтактнаяИнформация(Ложь);
            
            СтрокаЗаполнения = ДанныеЗаполнения.Добавить();
              СтрокаЗаполнения.Вид            = ЭлементСтроки.Вид;
              СтрокаЗаполнения.Тип            = ЭлементСтроки.Тип;
              СтрокаЗаполнения.ЗначенияПолей  = ЭлементСтроки.ЗначенияПолей;
              СтрокаЗаполнения.Представление  = ЭлементСтроки.Представление;
              //СтрокаЗаполнения.Значение         = КИ.Значение;
            Попытка
              УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(Объект, ДанныеЗаполнения);
            Исключение
            КонецПопытки;                
        КонецЕсли;
    КонецЦикла;

    СсылкаНаФизлицо.Записать();

КонецПроцедуры
"

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