Имя: Пароль:
1C
 
Обновление Контактной информации для не записанных
0 dimasad
 
11.11.25
17:41
Конфа ДО2.1, свой справочник с пристегнутым к нему механизмом КИ (по скрепным правилам БСП).
Задача: исходя из выбранного Контрагента на форме справочника, перенести соответствующие значения КИ контрагента в соответствующие поля КИ своего справочника (естественно Виды КИ и обязательные наборы - разные).

Пример:
&НаКлиенте
Процедура ПеречитатьВсе()
ОбновитьОтображениеДанных();
Прочитать();
КонецПроцедуры

&НаСервере
Процедура КонтрагентПриИзмененииНаСервере()
    ЮрАдресИзКонтрагента = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Объект.Контрагент.Ссылка,
    Справочники.ВидыКонтактнойИнформации.ЮридическийАдресКонтрагента,
                            ТекущаяДата(),
                            Ложь);
    ОбъектКИ = РеквизитФормыВЗначение("Объект");
    ЮрАдресОбъекта = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ОбъектКИ,
    Справочники.ВидыКонтактнойИнформации.АЭС_Анк_ЮридическийАдрес,
                            ТекущаяДата(),
                            Ложь);

                            
    Если ЗначениеЗаполнено(ЮрАдресИзКонтрагента[0].Представление) Тогда
        //Здесь тупо меняем на значения из ТЗ КИ Контрагента
        ЮрАдресОбъекта[0].Значение = ЮрАдресИзКонтрагента[0].Значение;
        ЮрАдресОбъекта[0].Представление = ЮрАдресИзКонтрагента[0].Представление;
        ЮрАдресОбъекта[0].ЗначенияПолей = ЮрАдресИзКонтрагента[0].ЗначенияПолей;
            УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(ОбъектКИ, ЮрАдресОбъекта, Истина);
    КонецЕсли;

ОбъектКИ.Записать(); // вот без этой херни обновить данные на форме не получается ни при каких условиях
    ЗначениеВРеквизитФормы(ОбъектКИ,"Объект");
КонецПроцедуры

Вопрос бывалым: каким образом программно поменять КИ, обновить его на форме при этом не записывать сам объект???
1 formista2000
 
11.11.25
17:50
УстановитьСсылкуНового(), ПолучитьСсылкуНового() и всё такое...
2 dimasad
 
11.11.25
17:53
(1) Не поможет... все методы из УправлениеКонтактнойИнформацией которые работают с ссылкой - записывают объект владелеца КИ...
А мне надо все без записи сделать - чисто на форме
3 Garykom
 
гуру
11.11.25
17:56
КИ хранится внутри ТЧ
Работай напрямую без БСП
4 dimasad
 
11.11.25
18:01
(3) В том то и прикол, что после метода УстановитьКонтактнуюИнформациюОбъекта(ОбъектКИ, ЮрАдресОбъекта, Истина)
- в объекте уже изменена ТЧ с КИ. Вопрос как на форме эту байду обновить?
ps/ ОбновитьОтображениеДанных(); и Прочитать(); не помогает...
5 dimasad
 
11.11.25
18:03
объекты на форме, связанные с КИ генеряться же динамически по средствам механизма БСП КИ
6 Garykom
 
гуру
11.11.25
18:07
Хрен его знает, придется повторять код из БСП
Сначала удалив лишние элементы на форме