Имя: Пароль:
1C
1С v8
как и где заполняются реквизиты _нового_ элемента?
,
0 qeos
 
21.10.13
09:33
чет малость притупил.

Есть элемент, который если это новый, то нужно заполнить некоторые реквизиты и/или настроить вид формы.
И вот чтото не могу сообразить где прописать код который будет выполняться только для нового и не нового элемента.
Что-то ни как ен скумекаю где и как использовать "ЭтоНовый()". Это ж метод объекта, а в форме объект не доступен.
1 Nenaviwu1c20
 
21.10.13
09:34
при открытии
2 Sabbath
 
21.10.13
09:36
(0) объект, я так понял, документ, а клиент какой и платформа?
3 qeos
 
21.10.13
09:39
(2) объект -- элемент справочника.
8.2 УФ
4 KUBIK
 
21.10.13
09:40
ПрисозданииНаСервере
5 qeos
 
21.10.13
09:40
(1) при открытии объект - это данные формы. у него нет этого метода
6 qeos
 
21.10.13
09:42
(4) тоже см. (5)
7 Sabbath
 
21.10.13
09:47
(3) при интерактивном вводе нового должн вызываться ОбработкаЗаполнения из модуля объекта, также ее можно вызвать через Заполнить()
В форме по идее тоже можно проверять ан пустую ссылку
8 Sabbath
 
21.10.13
09:48
+(7) в обработке заполнения само собой должен работать ЭтоНовый(), пр опустую ссылку это я к слову, что можно и так проверить, как более грамотно, не знаю)
9 Fedor-1971
 
21.10.13
09:50
Из формы:
ПриСозданииНаСервере()

Если Объект.Ссылка.Пустая() тогда - новый

Из модуля объекта:
ЭтотОбъект.ЭтоНовый()
10 Sabbath
 
21.10.13
09:59
(9) только ЭтотОбъект еще получить надо в форме
11 Defender aka LINN
 
21.10.13
10:00
(9) Специально для таких целей придумана ОбработкаЗаполнения, но одинэснегам обязательно надо повые.
З.Ы. И обработке заполнения, кстати, должно быть плевать - новый это объект, или нет, ее никто думать не просит
12 qeos
 
21.10.13
10:05
ага. значит по-феншую заполнение прописывается в ОбработкаЗаполнения().
соответственно это же событие используется и для нового и для копированного и для ввода на основании для документов?
13 qeos
 
21.10.13
10:11
(12) ага.. щаз..
Примечание:
При копировании (как интерактивном, так и средствами встроенного языка), данный обработчик не вызывается.
14 Infsams654
 
21.10.13
10:12
(0) а что вообще означает "Есть элемент, который если это новый". Элемент управления - он всегда старый, создан в конфигураторе. Если создается программно, то и тут обрабатыватся программно
15 qeos
 
21.10.13
10:16
(14) например, если есть допустим реквизит КодСтороннейСистемы, то если элемент скопирован, то он новый и мы должны очистить этот реквизит..
первое что в голову пришло.
16 1dvd
 
21.10.13
10:17
(15) Процедура ПриКопированиии()
17 qeos
 
21.10.13
10:18
!
18 Defender aka LINN
 
21.10.13
10:23
(13) При копировании объект копируется, а не заполняется
19 qeos
 
21.10.13
10:29
(18) ну да.. у меня тут просто очень старый код, который теперь нужно разделить.
20 Fedor-1971
 
21.10.13
10:33
на УФ дешевле в ПриСозданииНаСервере() проверить

Копируется - Параметры.ЗначениеКопирования.Пустая()
Создан новый - Объект.Ссылка.Пустая()

и выполнить все нужные действия. Код будет в одном месте а не размазан между модулем объекта и модулем формы.
21 Defender aka LINN
 
21.10.13
10:36
(20) Еще один...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн