|
При записи на сервере у объекта не сохраняются данные | ☑ | ||
---|---|---|---|---|
0
Eeelena
16.06.16
✎
15:57
|
Здравствуйте. Столкнулась со следующей ситуацией, в документе заполняю реквизиты объекта, но они не сохраняются, в отладчике в процедуре при записи на сервере в реквизитах объекта старые значения, в чем может быть причина?
|
|||
1
Happy Bear
16.06.16
✎
15:58
|
А объект точно записываешь?
|
|||
2
Eeelena
16.06.16
✎
16:00
|
(1) да
|
|||
3
Euguln
16.06.16
✎
16:00
|
Элементы связаны с реквизитами формы, а не объекта.
|
|||
4
saaken
16.06.16
✎
16:00
|
не те реквизиты заполняешь
|
|||
5
Eeelena
16.06.16
✎
16:01
|
(3) нет, это реквизиты объекта (4) точно те реквизиты, в отладчике отображаются их старые значения, а не только что введенные
|
|||
6
Euguln
16.06.16
✎
16:02
|
(5) Где смотришь? У Объект или ТекущийОбъект?
|
|||
7
Eeelena
16.06.16
✎
16:04
|
(6) и там, и там смотрела и у того и у другого старые значения. Такого никогда не было поэтому я даже без понятия в чем может быть причина.
|
|||
8
Euguln
16.06.16
✎
16:05
|
(7) В обработчике ПриИзменении реквизиты меняются?
|
|||
9
Happy Bear
16.06.16
✎
16:05
|
код заполнения и записи покажи
|
|||
10
Eeelena
16.06.16
✎
16:07
|
какой то очень странный глюк
|
|||
11
Eeelena
16.06.16
✎
16:11
|
(8) нет
|
|||
12
Eeelena
16.06.16
✎
16:11
|
(9)
&НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) СтруктураЗаписи = Новый Структура("Партнер, Агентство, КонтактноеЛицо, Агент"); ЗаписатьИнформациюОПартнереСервер(СтруктураЗаписи); ЗаполнитьЗначенияСвойств(Объект,СтруктураЗаписи); КонецПроцедуры &НаСервере Процедура ЗаписатьИнформациюОПартнереСервер(СтруктураЗаписи) //П=РеквизитФормыВЗначение("Объект"); СтруктураДляЗаписиНового = Новый Структура; СтруктураДляЗаписиНового.Вставить("CRM_ВидПартнера",Перечисления.CRM_ВидПартнера.ЧастноеЛицо); СтруктураДляЗаписиНового.Вставить("Клиент", Истина); СтруктураДляЗаписиНового.Вставить("CRM_Имя",Объект.Имя); СтруктураДляЗаписиНового.Вставить("CRM_ИНН",); СтруктураДляЗаписиНового.Вставить("CRM_НапоминатьОДнеРождения",Истина); СтруктураДляЗаписиНового.Вставить("CRM_Отчество", Объект.Отчество); СтруктураДляЗаписиНового.Вставить("CRM_ТипОтношений", ?(Объект.УК_АгентствоНедвижимости, Справочники.CRM_ТипыОтношений.АгентствоНедвижимости, Справочники.CRM_ТипыОтношений.Покупатель)); СтруктураДляЗаписиНового.Вставить("CRM_Фамилия", Объект.Фамилия); СтруктураДляЗаписиНового.Вставить("ДатаРегистрации",ТекущаяДата()); СтруктураДляЗаписиНового.Вставить("ДатаРождения",Объект.ДатаРождения); СтруктураДляЗаписиНового.Вставить("Наименование", Объект.Фамилия+" "+Объект.Имя+" "+Объект.Отчество); СтруктураДляЗаписиНового.Вставить("ОсновнойМенеджер", Объект.Ответственный); СтруктураДляЗаписиНового.Вставить("Пол", Объект.Пол); СтруктураДляЗаписиНового.Вставить("Возраст",Объект.Возарст); Если Объект.К_АгентствоНедвижимости Тогда Если НЕ ЗначениеЗаполнено(Объект.Агентство) Тогда Сообщить("Не заполнено агентство!"); Отказ = Истина; Возврат; КонецЕсли; ФИОКонтакта = Объект.Фамилия + " " + Объект.Имя + " " + Объект.Отчество; ФИОКонтакта = СокрЛП(ФИОКонтакта); ПоискКонтакта = Справочники.КонтактныеЛицаПартнеров.НайтиПоНаименованию(ФИОКонтакта,Истина,,Объект.Партнер); Если ПоискКонтакта.Пустая() Тогда НовыйКонтакт = Справочники.КонтактныеЛицаПартнеров.СоздатьЭлемент(); НовыйКонтакт.Наименование = ФИОКонтакта; НовыйКонтакт.CRM_Имя = Объект.Имя; НовыйКонтакт.CRM_Отчество = Объект.Отчество; НовыйКонтакт.CRM_Фамилия = Объект.Фамилия; НовыйКонтакт.CRM_Состояние = Перечисления.CRM_Состояние.Работает; НовыйКонтакт.ДатаРождения = Объект.ДатаРождения; НовыйКонтакт.Пол = Объект.Пол; НовыйКонтакт.Владелец = Объект.Партнер; НовыйТелефон = НовыйКонтакт.КонтактнаяИнформация.Добавить(); НовыйТелефон.CRM_ОсновнойДляСвязи = Истина; НовыйТелефон.Вид = Справочники.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица; НовыйТелефон.НомерТелефона = Объект.НомерТелефона; НовыйТелефон.Представление = Объект.НомерТелефона; НовыйТелефон.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; НовыйАдрес = НовыйКонтакт.КонтактнаяИнформация.Добавить(); НовыйАдрес.Вид = Справочники.ВидыКонтактнойИнформации.АдресПроживанияКонтактногоЛица; НовыйАдрес.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; НовыйАдрес.Город = Объект.Город; ПредствалениеАдреса = Объект.Город+", "+Объект.Улица+", "+Объект.Дом+", "+Объект.Корпус+", "+Объект.Квартира; НовыйАдрес.Представление = ПредствалениеАдреса; НовыйКонтакт.Записать(); СтруктураЗаписи.Агент = НовыйКонтакт.Ссылка; ИначеЕсли ЗначениеЗаполнено(ПоискКонтакта) Тогда СтруктураЗаписи.Агент = ПоискКонтакта.Ссылка; КонецЕсли; Иначе//Прямой клиент Если ЗначениеЗаполнено(Объект.Партнер) Тогда ОбъектПартнер = Объект.Партнер.ПолучитьОбъект(); //18.05.2016 КЕС Для Каждого КлючИЗначение Из СтруктураДляЗаписиНового Цикл Сообщить(КлючИЗначение); Сообщить(ОбъектПартнер.CRM_Имя<>""); Если КлючИЗначение="CRM_Имя" И ОбъектПартнер.CRM_Имя<>"" Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="CRM_ИНН" И ОбъектПартнер.CRM_ИНН<>"" Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="CRM_Отчество" И ОбъектПартнер.CRM_Отчество<>"" Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="CRM_Фамилия" И ОбъектПартнер.CRM_Фамилия<>"" Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="ДатаРегистрации" И ОбъектПартнер.ДатаРегистрации<>Дата(1,1,1) Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="ДатаРождения" И ОбъектПартнер.ДатаРождения<>Дата(1,1,1) Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="Наименование" И ОбъектПартнер.Наименование<>"" Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="ОсновнойМенеджер" И ОбъектПартнер.ОсновнойМенеджер<>Справочники.Пользователи.ПустаяСсылка() Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="Пол" И ОбъектПартнер.Пол<>Перечисления.ПолФизическогоЛица.ПустаяСсылка() Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); ИначеЕсли КлючИЗначение="Возраст" И ОбъектПартнер.Возраст<>"" Тогда СтруктураДляЗаписиНового.Удалить(КлючИЗначение); КонецЕсли; КонецЦикла; ЗаполнитьЗначенияСвойств(ОбъектПартнер, СтруктураДляЗаписиНового); ОбъектПартнер.Записать(); //поищем по номеру телефона НайденКонтакт = Oktell_Сервер.НайтиКонтактноеЛицоАбонента(Объект.Партнер, Объект.НомерТелефона); Если НайденКонтакт.Пустая() Тогда Контакт = Справочники.КонтактныеЛицаПартнеров.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(Контакт,СтруктураДляЗаписиНового); Контакт.Владелец = Объект.Партнер.Ссылка; НовыйТелефон = Контакт.КонтактнаяИнформация.Добавить(); НовыйТелефон.Вид = Справочники.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица; НовыйТелефон.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; НовыйТелефон.НомерТелефона = Объект.НомерТелефона; НовыйТелефон.Представление = Объект.НомерТелефона; НовыйАдрес = Контакт.КонтактнаяИнформация.Добавить(); НовыйАдрес.Вид = Справочники.ВидыКонтактнойИнформации.АдресПроживанияКонтактногоЛица; НовыйАдрес.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; НовыйАдрес.Город = Объект.Город; ПредствалениеАдреса = Объект.Город+", "+Объект.Улица+", "+Объект.Дом+", "+Объект.Корпус+", "+Объект.Квартира; НовыйАдрес.Представление = ПредствалениеАдреса; Контакт.Записать(); СтруктураЗаписи.КонтактноеЛицо = Контакт.Ссылка; Иначе Контакт = НайденКонтакт.ПолучитьОбъект(); ЗаполнитьЗначенияСвойств(Контакт,СтруктураДляЗаписиНового); СтруктураЗаписи.КонтактноеЛицо = Контакт.Ссылка; КонецЕсли; Иначе НовыйПартнер = Справочники.Партнеры.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(НовыйПартнер,СтруктураДляЗаписиНового); НовыйПартнер.Записать(); Контакт = Справочники.КонтактныеЛицаПартнеров.СоздатьЭлемент(); ЗаполнитьЗначенияСвойств(Контакт,СтруктураДляЗаписиНового); Контакт.Владелец = НовыйПартнер.Ссылка; НовыйТелефон = Контакт.КонтактнаяИнформация.Добавить(); НовыйТелефон.Вид = Справочники.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица; НовыйТелефон.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; НовыйТелефон.НомерТелефона = Объект.НомерТелефона; НовыйТелефон.Представление = Объект.НомерТелефона; НовыйАдрес = Контакт.КонтактнаяИнформация.Добавить(); НовыйАдрес.Вид = Справочники.ВидыКонтактнойИнформации.АдресПроживанияКонтактногоЛица; НовыйАдрес.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; НовыйАдрес.Город = Объект.Город; ПредствалениеАдреса = Объект.Город+", "+Объект.Улица+", "+Объект.Дом+", "+Объект.Корпус+", "+Объект.Квартира; НовыйАдрес.Представление = ПредствалениеАдреса; Контакт.Записать(); СтруктураЗаписи.Партнер = НовыйПартнер.Ссылка; СтруктураЗаписи.КонтактноеЛицо = Контакт.Ссылка; КонецЕсли; КонецЕсли; |
|||
13
Fragster
гуру
16.06.16
✎
16:13
|
во первых - менять надо перед записью, во вторых - менять надо ТекущийОбъект
|
|||
14
hhhh
16.06.16
✎
16:13
|
(12) при записи вызывается уже когда записано. Всё правильно у вас работает.
|
|||
15
Eeelena
16.06.16
✎
16:16
|
(13) (14) то есть как мне нужно было сделать?
|
|||
16
Eeelena
16.06.16
✎
16:24
|
Я добавляла этот код и в процедуру перед записью, ничего не изменилось (14)
|
|||
17
Fragster
гуру
16.06.16
✎
16:26
|
(16) -> (13)
|
|||
18
Euguln
16.06.16
✎
16:27
|
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
СтруктураЗаписи = Новый Структура("Партнер, Агентство, КонтактноеЛицо, Агент"); ЗаписатьИнформациюОПартнереСервер(СтруктураЗаписи); ЗаполнитьЗначенияСвойств(ТекущийОбъект,СтруктураЗаписи); КонецПроцедуры |
|||
19
Euguln
16.06.16
✎
16:27
|
(18) + и ПередЗаписью
|
|||
20
Eeelena
16.06.16
✎
16:30
|
(19) спасибо, попробую
|
|||
21
Eeelena
17.06.16
✎
07:14
|
(19) это не помогло, в самом отладчике ТекущийОбъект берется со старыми реквизитами
|
|||
22
Eeelena
17.06.16
✎
07:44
|
(21) в тестовой базе тот же самый функционал отрабатывает нормально, а в другой в отладчике ТекущийОбъект и Объект ьерутся со старыми реквизитами.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |