|
УстановитьСсылкуНового | ☑ | ||
---|---|---|---|---|
0
George Wheels
24.10.13
✎
14:33
|
Создаю новый элемент справочника. В событии ПриИзменении поля Код пытаюсь сделать:
Объект.УстановитьСсылкуНового(Справочники.ФизЛица.ПолучитьСсылку(Новый УникальныйИдентификатор("...")); Ошибка - метод объекта не обнаружен. Если так: о = РеквизитФормыВЗначение("Объект"); о.УстановитьСсылкуНового(Справочники.ФизЛица.ПолучитьСсылку(Новый УникальныйИдентификатор("...")); то УИД не устанавливается. |
|||
1
zak555
24.10.13
✎
14:35
|
потому что событие на клиенте
|
|||
2
Maxus43
24.10.13
✎
14:35
|
зачем устанавливать ссылку при изменениии кода? не легче ПриСозданииНаСервере всё это сделать сразу?
|
|||
3
George Wheels
24.10.13
✎
14:38
|
(1) Из этого события вызываю процедуру &НаСервере
(2) При вводе нового ФизЛица набираю его табельный номер, подключаюсь к ЗУП и беру оттуда Должность, Наименование, УИД,... |
|||
4
zak555
24.10.13
✎
14:40
|
(3)
1. код покажи 2. перенеси из ЗУП тех, кто тебе нужен вместе с УИД |
|||
5
George Wheels
24.10.13
✎
14:57
|
(4) Пожалуйста, но в (0) и так достаточно.
&НаКлиенте Процедура КодПриИзменении(Элемент) СотрудникИзЗУПНаСервере(); КонецПроцедуры &НаСервере Процедура СотрудникИзЗУПНаСервере() ЗУП = Новый COMОбъект("V82.Application"); Попытка ЗУП.Connect("File=""Путь"";Usr=""User"";Pwd=""Password"""); Запрос = ЗУП.NewObject("Запрос"); Запрос.Текст = "ВЫБРАТЬ | Сотр.Ссылка КАК Сотрудник, | Кадр.Период КАК ПериодНазначения, | Кадр.Должность КАК Должность |ИЗ | Справочник.СотрудникиОрганизаций КАК Сотр | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК Кадр | ПО Сотр.Ссылка = Кадр.Сотрудник |ГДЕ | Сотр.Код = &Код |"; Запрос.УстановитьПараметр("Код", Объект.Код); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Объект.Наименование = Выборка.Сотрудник.Наименование; Если Объект.ссылка.УникальныйИдентификатор() = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000") Тогда о = ДанныеФормыВЗначение(Объект, Тип("СправочникОбъект.ФизЛица")); о.УстановитьСсылкуНового(Справочники.ФизЛица.ПолучитьСсылку(Новый УникальныйИдентификатор(ЗУП.XMLСтрока(Выборка.Сотрудник.УникальныйИдентификатор())))); //ЗначениеВДанныеФормы(о, Объект); КонецЕсли; Иначе Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не найден сотрудник с табельным номером: " + Объект.Код; Сообщение.Сообщить(); КонецЕсли; Исключение Сообщение = Новый СообщениеПользователю; Инфо = ИнформацияОбОшибке(); Сообщение.Текст = "Описание=" + Инфо.Описание; Сообщение.Сообщить(); Сообщение.Текст = "ИмяМодуля=" + Инфо.ИмяМодуля; Сообщение.Сообщить(); Сообщение.Текст = "НомерСтроки=" + Инфо.НомерСтроки; Сообщение.Сообщить(); Сообщение.Текст = "ИсходнаяСтрока=" + Инфо.ИсходнаяСтрока; Сообщение.Сообщить(); Если Инфо.Причина <> Неопределено Тогда Сообщение.Текст = "Причина=" + Инфо.Причина; Сообщение.Сообщить(); Сообщение.Текст = "Описание=" + Инфо.Причина.Описание; Сообщение.Сообщить(); КонецЕсли; Если ЗУП <> Неопределено Тогда ЗУП.ЗавершитьРаботуСистемы(Ложь); КонецЕсли; КонецПопытки; Если ЗУП <> Неопределено Тогда ЗУП.ЗавершитьРаботуСистемы(Ложь); //Сообщить("Готово"); КонецЕсли; КонецПроцедуры |
|||
6
Infsams654
24.10.13
✎
15:08
|
(0) если не секрет, для чего устанавливать ссылку нового?
|
|||
7
George Wheels
24.10.13
✎
15:09
|
(6) Хочу чтобы в обеих базах были одинаковые идентификаторы.
|
|||
8
Зойч
24.10.13
✎
15:10
|
ПередЗаписьюНаСервере нужно устанавливать, а до этого хранить где нибудь на форме.
Ибо объекта не существует все время а только в момент УстановитьСсылкуНового |
|||
9
Зойч
24.10.13
✎
15:10
|
*в момент РеквизитФормыВЗначение
|
|||
10
George Wheels
24.10.13
✎
15:13
|
(8) Склонялся к этому варианту, но надеялся, что есть другое решение.
|
|||
11
Infsams654
24.10.13
✎
15:20
|
(6) опять-же, для чего одинаковые идентификаторы? Не достаточно одинаковых кодов, что ли ?
|
|||
12
hhhh
24.10.13
✎
15:21
|
(10) а где обратное ЗначениеВДанныеФормы? Что-то в упор не вижу.
|
|||
13
Maxus43
24.10.13
✎
15:22
|
(12) прав (8), объект на клиенте не живёт, он уничтожается. В следующий раз когда появится - изменений не будет, не хранится он в памяти вобще
|
|||
14
Зойч
24.10.13
✎
15:23
|
(12) не поможет.
|
|||
15
George Wheels
24.10.13
✎
15:24
|
(12) Было. Не помогает. Ни ЗначениеВДанныеФормы ни ЗначениеВРеквизитФормы.
|
|||
16
hhhh
24.10.13
✎
15:27
|
(15) ну значит УИД левый подсовываете. Чудес не бывает.
Проверьте жестко, чтобы УИДЫ самих справочников ФизЛица совпадали. |
|||
17
George Wheels
24.10.13
✎
15:29
|
(16) В ПередЗаписьюНаСервере срабатывает. Т.е. УИД не левый.
|
|||
18
Зойч
24.10.13
✎
15:30
|
(16) не знаешь - помалкивай
|
|||
19
George Wheels
24.10.13
✎
15:37
|
(11) При изменении в кадрах, вносить изменения в эту базу. А табельные номера уже два раза при мне меняли. Вернее не сами номера, а префиксы.
|
|||
20
George Wheels
24.10.13
✎
15:38
|
Ладно, закругляюсь. Оставлю в ПередЗаписьюНаСервере.
|
|||
21
hhhh
24.10.13
✎
16:26
|
(18) чего помалкивай? Объсни тогда, почему в типовых не через ГУИД сделано как у ТС, а Регистр соответствие гуидов они замутили?
|
|||
22
Зойч
24.10.13
✎
16:28
|
(21) и в типовых через гуид. а регистр для того чтоб не новые базы тоже можно было связать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |