Отследить Изменение контактной информации на форме

1. ToJIuK 15.10.19 11:27 Сейчас в теме
Здравствуйте.
Стоит задача в документ встроить Подсистему "Контактная информация " в табличную часть документа и при проведении (при записи) документа прописывать это адрес в Справочнике (справочник Свой - "КАССЫ").
Что получилось :
1) интегрировать Подсистему "Контактная информация " в табличную часть документа +
2) интегрировать Подсистему "Контактная информация " Справочник +
3) при проведении записывает в справочник Контактную информацию +
4) сделал контроль даты так как хранятся изменения в разрезе дат
Не получилось :
При изменении адреса в документе . нужно сравнить адреса который сейчас с Справочнике и тот который в элементе формы , но как его от туда получить гне понимаю .... Так как измененный документ ещё не сохранен из объекта документа я его вытащить не могу ... а после записи не могу Так как нужно задать вопрос о смене адреса , это нужно делать "на Клиенте" поэтому и представление адреса нужно получить на клиенте.
Перехватить событие изменение Контактной информации на клиенте не получается- только "При начале выбора", а нужно после выбора (в обработку выбора отладчик не уходит) сразу после выбора уходить на "Обновить контактную информацию" но она уже "На сервере"
Есть идеи? на УФ новичек не ругайте сильно
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. wertep 32 15.10.19 11:43 Сейчас в теме
Чаще всего отладка срывается из-за вот таких конструкций
        Оповещение = Новый ОписаниеОповещения("ВопросЗаполнитьДокументЗавершение", ЭтотОбъект);
        ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);

и
        ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания);
        ПодключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗадания", 1, Истина);
        ФормаДлительнойОперации = ДлительныеОперацииКлиент.ОткрытьФормуДлительнойОперации(ЭтаФорма, ИдентификаторЗадания);


И еще несколько таких же по смыслу.
Соответственно указана функция которая будет вызвана которая указана, вот в ней и стоит ставить точку останова и ловить окончание операции.
3. ToJIuK 15.10.19 12:39 Сейчас в теме
(2)
Чаще всего отладка срывается из-за вот таких конструкций
Оповещение = Новый ОписаниеОповещения("ВопросЗаполнитьДокументЗавершение", ЭтотОбъект);
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);



была такая конструкция ... закомментировал , но все ровно отладку не могу выципить ... скрин во вложении , как получить Адрес из ТЧ
Прикрепленные файлы:
4. ToJIuK 15.10.19 12:42 Сейчас в теме
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ПОДСИСТЕМЫ "КОНТАКТНАЯ ИНФОРМАЦИЯ"

// СтандартныеПодсистемы.КонтактнаяИнформация

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент)
    УправлениеКонтактнойИнформациейКлиент.ПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    УправлениеКонтактнойИнформациейКлиент.НачалоВыбора(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриНажатии(Элемент, СтандартнаяОбработка)
    УправлениеКонтактнойИнформациейКлиент.НачалоВыбора(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка)
    УправлениеКонтактнойИнформациейКлиент.Очистка(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияВыполнитьКоманду(Команда)
    УправлениеКонтактнойИнформациейКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда.Имя);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
    
    УправлениеКонтактнойИнформациейКлиент.АвтоПодборАдреса(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
    
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    УправлениеКонтактнойИнформациейКлиент.ОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, Элемент.Имя, СтандартнаяОбработка);
    
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаНавигационнойСсылк<wbrи(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
    УправлениеКонтактнойИнформациейКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры

&НаСервере
Процедура Подключаемый_ОбновитьКонтактнуюИнформацию(Результат)
    УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ЗначенияПолейКонтактнойИнформацииСервер(Знач Представление, Знач ВидКонтактнойИнформации, Знач Комментарий = Неопределено)
    
    // Создаем новый экземпляр по представлению.
    Результат = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияПоПредставлению(Представление, ВидКонтактнойИнформации);
    
    Возврат Результат;
КонецФункции

// Конец СтандартныеПодсистемы.КонтактнаяИнформация

Показать
5. ToJIuK 15.10.19 12:44 Сейчас в теме
ловиться тут до выбора значением
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    УправлениеКонтактнойИнформациейКлиент.НачалоВыбора(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры



а после изменения , сразу тут

&НаСервере
Процедура Подключаемый_ОбновитьКонтактнуюИнформацию(Результат)
    УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);
КонецПроцедуры
6. wertep 32 15.10.19 12:59 Сейчас в теме
(5)
а после изменения , сразу тут

Вот тут и лови. У ЭтотОбъект свойство адреса до вызова УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию значение старое, сохраняешь в переменную. А после вызова значение новое сравниваешь с переменной.
7. ToJIuK 16.10.19 15:35 Сейчас в теме
(6)


Вот тут и лови. У ЭтотОбъект свойство адреса до вызова УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию значение старое, сохраняешь в переменную. А после вызова значение новое сравниваешь с переменной.


Подскажите где именно ловить? какое свойство ? как его выделить ? перелопатил не нашел
Прикрепленные файлы:
8. ToJIuK 16.10.19 15:50 Сейчас в теме
Так как Обработка идет на сервере . Данные форма тут не доступны ! а в Объект эти данные ещё не попадают. так как объект не записан ..
Попробовал ПРИ Изменении табличной части НО Сюда обработка не попадает если менять Адрес, если что то другое менять то обработку тут стопается .
&НаКлиенте
Процедура КассыНаРегистрациюПриИзменении(Элемент)
    ДанныеСтроки = ПолучитьСтрокуДополнительныхЗначений(ЭтотОбъект, Элемент, Истина) ;
    НовыйАдрес =    ДанныеСтроки.Представление;
    
    //ПроверитьАдрес(ЦТО_Касса,НомерСтрокиТЧ,ДатаРег,НовыйАдрес);

    // Вставить содержимое обработчика.
КонецПроцедуры
 
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот