|
В ПриЗаписи() узнать что объект новый | ☑ | ||
---|---|---|---|---|
0
breezee
15.12.15
✎
08:29
|
Можно как-то в процедуре ПриЗаписи() узнать что объект ранее не записывался? Мне нужна ссылка на объект, Так что ПередЗаписью() не канает.
|
|||
1
Мэс33
15.12.15
✎
08:32
|
(0) Ссылку можешь получить до записи.
|
|||
2
Маратыч
15.12.15
✎
08:32
|
(0) Присвой булевой переменной модуля ЭтоНовыйОбъект в ПередЗаписью() значение ЭтоНовый(), а в ПриЗаписи() проверяй его.
|
|||
3
Мэс33
15.12.15
✎
08:32
|
(0) Или тебе сам объект нужен?
|
|||
4
Маратыч
15.12.15
✎
08:32
|
(1) Вроде как в ПередЗаписью() она еще пустая.
|
|||
5
los_hooliganos
15.12.15
✎
08:32
|
Мда...
|
|||
6
los_hooliganos
15.12.15
✎
08:33
|
(0) Зачем тебе ссылка?
|
|||
7
Провинциальный 1сник
15.12.15
✎
08:34
|
(2) А ПередЗаписью и ПриЗаписи выполняются в одном серверном вызове? Если в разных - то переменные модуля хранятся только на время вызова, и решение не пройдет.
|
|||
8
breezee
15.12.15
✎
08:34
|
(2) Да, я так и сделал, мне скзали что это лишнее. Сказали что можно по-другому. (1) Ок, ладно, погуглил, сделаю через получение ссылки новго
|
|||
9
Мэс33
15.12.15
✎
08:35
|
(0) Что за секретное требование?
|
|||
10
breezee
15.12.15
✎
08:36
|
(9) Ничего серкретного. На основе одного элемента справочника создается элемент другого справочника, в который нужно поместить в 1 из реквизитов ссылку первого. Чтобы каждый раз не создавался новый, когда я перезаписываю объект - нужно проверить что объект не новый.
|
|||
11
breezee
15.12.15
✎
08:37
|
поместить в один из реквизитов ссылку первого
Простите что плохочитаемо вышло |
|||
12
БукинГена
15.12.15
✎
08:39
|
А ЭтоНовый() не помогает?
|
|||
13
Feunoir
15.12.15
✎
08:42
|
У объекта есть ДополнительныеСвойства. Перед записью туда кладёшь ЭтоНовый, при записи проверяешь.
|
|||
14
breezee
15.12.15
✎
08:42
|
(12) ПриЗаписи() Уже есть ссылка. Не помогает. Буду делать через СсылкаНового()
|
|||
15
breezee
15.12.15
✎
08:43
|
(13) Спаасибо!
|
|||
16
Мэс33
15.12.15
✎
08:49
|
(10) Не люблю такие вещи.
|
|||
17
los_hooliganos
15.12.15
✎
08:52
|
(10) Проблема не в документе 1, а в документе 2.
Значит при записи проверка должна относит к документу 2 а не 1. Более того саму процедуру отнеси к ПослеЗаписи() документа 1. Проверь что нет документа 2 созданного на основе док 1 и только тогда создавай док 2. |
|||
18
БукинГена
15.12.15
✎
08:52
|
"Чтобы каждый раз не создавался новый, когда я перезаписываю объект - нужно проверить что объект не новый"
Мне кажется при перезаписи обработчик "Перед записью" тоже вызывается |
|||
19
Мимохожий Однако
15.12.15
✎
08:55
|
ПолуОФФ. Недавно пробегала тема с пометкой на удаление связанных через реквизиты справочников. А у меня всё тот же вопрос: Зачем такие извращение, когда есть объект регистр сведений, например.
|
|||
20
breezee
15.12.15
✎
08:57
|
(19) Где хрананятся все пометки? Лишнее обращение к базе же.
|
|||
21
breezee
15.12.15
✎
09:15
|
надеюсь тема не умерла. Пишу
ЭтНов = Ложь; Если ЭтоНовый() Тогда ЭтНов = Истина; ЭтотОбъект.ДополнительныеСвойства.Вставить("ЭтНов", ЭтНов); КонецЕсли; В ПередЗаписью() Тут же вычисляю и у меня пустая структура ДополнительныеСвойства. Мне же не нужно записывать объект, чтобы дополнительныесвойства записались |
|||
22
hhhh
15.12.15
✎
09:21
|
а чего тут же вычисляешь? покажи
|
|||
23
breezee
15.12.15
✎
09:23
|
(22) Вычисляю ДополнительныеСвойства и ЭтотОбъект.ДополнительныеСвойства (пробовал и в объект и без объекта записывать) В обоих случаях получается пустая структура
|
|||
24
breezee
15.12.15
✎
09:26
|
Ага, в СП написано "Только чтение". Недопонимаю
ДополнительныеСвойства (AdditionalProperties) Использование: Только чтение. |
|||
25
ViSo76
15.12.15
✎
09:26
|
1. Событие ПриЗаписи происходит после того как объект записан в базу
2. Сделай через переменную модуля Перем пЭтоНовый; ПередЗаписью: пЭтоНовый = ЗначениеЗаполнено( Ссылка ); Можно и так пЭтоНовый = ЭтоНовый(); ПриЗаписи: Если пЭтоНовый = Истина Тогда |
|||
26
breezee
15.12.15
✎
09:28
|
(25) Да я сделал, мне сказали чтобы сделал по-другому. Посоветовали Дополнительные свойства. Они ничерта не записываются.
|
|||
27
hhhh
15.12.15
✎
09:49
|
(26) Дополнительные свойства не записываются. Они просто есть.
|
|||
28
Мимохожий Однако
15.12.15
✎
10:00
|
(20)Спорное утверждение. ИМХО. В одном запросе можно обратиться ко многим необходимым данным. Эквилибристика с перезаписями связанных объектов даёт еще больше обращений к базе.
|
|||
29
Feunoir
15.12.15
✎
10:24
|
(21) Сделай без всяких "Если" просто
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый()); |
|||
30
Nuobu
15.12.15
✎
10:26
|
(29) Не дополнительное свойство, а параметрыЗаписи.
|
|||
31
Лефмихалыч
15.12.15
✎
10:28
|
(0) тебе зачем знать, что он новый? Если, чтобы выполнить какие-то действия в базе, то просто проверяй, сделаны эти действия или нет в приЗаписи
|
|||
32
singlych
15.12.15
✎
10:28
|
Ага.
"На основе одного элемента справочника создается элемент другого справочника, в который нужно поместить в 1 из реквизитов ссылку первого." Вообще это все в ОбработкаЗаполнения делается. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |