Имя: Пароль:
1C
 
определения родителя нового элемента справочника
0 adamst
 
12.05.10
13:40
Правильно ли я понял, пока я не запишу элемент, группу в которой создается элемент я не узнаю?
т.е. ТекущийЭлемент().Родитель.Наименование   не выполнится

и если утверждение верное, как лучше всего решить задачу (как определить у нового элемента, еще не созданного, родителя в котором его создают)?
1 mikecool
 
12.05.10
13:42
ИспользоватьРодителя() что вернет?
или как метод зовется?
2 Skom
 
12.05.10
13:42
Пока ты не запишешь элемент откуда у тебя возьмется ТекущийЭлемент()
давай начнем с этого
3 Skom
 
12.05.10
13:43
если ты делаешь
спр.Новый();
...
...
...
Спр.Записать();

тогда ты сам и определяешь ему Родителя
Спр.Родитель = <Родитель>

а иначе он с пустым значением и запишется
4 mikecool
 
12.05.10
13:44
(3) можно определить
мне как то в прошлом подсказывали, щас уже и не вспомню как
вроде как в (1)
5 ДенисЧ
 
12.05.10
13:48
(4) именно так
6 mikecool
 
12.05.10
13:49
(5) о, а вот и автор моей помощи, если не ошибаюсь
ну или Ёпрст был
все равно - всем спасибо :)
7 Cthulhu
 
12.05.10
13:50
(3): неверно.
спр.Новый();
Сообщить("для Нового элемента справочника ещё до его записи Родитель ОПРЕДЕЛЁН! и в данном случае это - "+спр.ИспользоватьРодителя()+" ...","i");
8 Cthulhu
 
12.05.10
13:51
Для УСТАНОВКИ же родителя есть два способа.
1. Использование ".ИспользоватьРодителя(<ГруппаСправочника>)" - ПЕРЕД ".Новый()"
2. Прямое присваивание ".Родитель=<ГруппаСправочника>;" - ПОСЛЕ ".Новый()"
9 Skom
 
12.05.10
13:51
(7) у меня в данный момент в конфигураторе база сохраняется (че та долго)
поэтому лезть на сервак в СП не хочется...

ну не успел я прочитать описание метода. а на память не помню что и когда он возвращает...
10 Skom
 
12.05.10
13:55
(7) я кстати имел в виду что у него ТекущийЭлемент() откуда возьмется, если он еще не записан....это для нового...

про родителя...опять же если не указывать ИспользоватьРодителя()
то он и пустой запишется...как то так
11 Cthulhu
 
12.05.10
13:58
(10): если не указывать родителя - то будет начально (неявно) установленный движком при создании объекта родитель - а именно корень (пустой родитель первого уровня). сиречь система для подстраховки сама выполняет неявную установку родителя, которую потом можно программно поменять.
12 Skom
 
12.05.10
14:00
(11) ну так мы об ожном и том же говорим

просто для меня пустой родитель это что для тебя родитель верхнего уровня

для скуля это = '     0   '
вроде бы если мне не изменяет память
13 mikecool
 
12.05.10
14:02
(12) а для не скуля что будет? ;)
14 Skom
 
12.05.10
14:02
(13) не задавался таким вопросом.
15 Cthulhu
 
12.05.10
14:05
(12): я не знаю о чем конкретно ты говоришь приблизительно по той же причине, по которой чатланин и пацак не понимали землянина Гендевана Александровича, который думал на языках, продолжения которых сам не знал. Формулируй аккуратнее если хочешь избежать непонимания.
16 adamst
 
12.05.10
14:09
немного не правильно объяснил, из списка справочника жму ins, появляется диалог ввод нового элемента ... вот этот элемент по сути создается в группе в которой я находился в списке справочника... и пока я не сохраню элемент я не могу узнать в какой группе я создаю запись, а мне важно это знать, т.к. в зависимости от группу я принимаю решение о номере записи
17 ДенисЧ
 
12.05.10
14:11
(16) Почему не сможешь? В (1) описан секретный метод
18 adamst
 
12.05.10
14:12
ИспользоватьРодителя() откуда вызывать в форме ввода элемента? в нем он мне возвратил пустое значение...
19 adamst
 
12.05.10
14:14
может пример конкретный приведете
20 Skom
 
12.05.10
14:15
ИспользоватьРодителя(<?>,);
Синтаксис:
ИспользоватьРодителя(<Родитель>,<ФлагИзменения>)
Назначение:
Установить выборку  элементов по группе справочника.
Возвращает: значение текущей группы для справочника (на момент до исполнения метода).
Параметры:
<Родитель> - значение группы справочника, среди элементов которой делается выборка.
<ФлагИзменения> - необязательный параметр. Этим флагом регулируется возможность интерактивного изменения родителя. 1 - пользователь может изменить родителя интерактивно, 0 - пользователь не может интерактивно изменить родителя. Значение по умолчанию: 1. Данный параметр действует при интерактивном выборе элемента справочника - в случае, когда метод применен для элементов диалога типа ''Справочник''. Если метод применен для объекта, созданного функцией СоздатьОбъект, то данный параметр срабатывает при вызове метода Выбрать.
Замечание:
Метод  можно использовать для объектов, созданных функцией СоздатьОбъект или для элементов диалога типа ''Справочник''.
21 Ёпрст
 
гуру
12.05.10
14:15
(18)
ИспользоватьРодителя() - в форме списка справочника
Родитель - в форме элемента..
22 Skom
 
12.05.10
14:16
и вообще название метода какое то не политкорректное...
23 Cthulhu
 
12.05.10
14:17
(16): можешь. в модуле формы элемента справочника
Процедура ПриОткрытии() //предопределенная << найди и всунь в неё следующую строку:
Если Выбран()=0 Тогда Сообщить("Новый элемент справочника создается в группе "+ИспользоватьРодителя().ПолноеНаименование(),"i") КонецЕсли;
24 adamst
 
12.05.10
14:18
ага точно, все так есть (21)
еще до записи элемента, в модуле (форме) создания элемента нужно просто написать
Родитель

:)
25 adamst
 
12.05.10
14:19
(23) не так не канает

вот так
процедура формы элемента
Процедура ПриОткрытии()
//    .........
  сообщить("Ввод нового договора в группу "+Родитель);
КонецПроцедуры
26 adamst
 
12.05.10
14:21
т.е. ТекущийЭлемент().Родитель   - так не прокатит...
27 Skom
 
12.05.10
14:21
тогда уж при вводе нового
28 Ёпрст
 
гуру
12.05.10
14:21
(26)  ясен пень, элемент еще не записан.
29 BUBU
 
12.05.10
14:34
adamst, что же все-таки в итоге ?
У меня такая же проблема.
Подведи бабки
30 zak555
 
12.05.10
14:36
31 Ёпрст
 
гуру
12.05.10
14:44
(29) читай (21)..
32 adamst
 
12.05.10
14:44
(29) проблемы нет
при содании нового элемента, если тебе нужно получить родителя в котором создают запись, тупо воспользуйся реквизитом Родитель
33 adamst
 
12.05.10
14:45
смотреть тут пример (25)

(30) зачем? лишняя реклама форуму конечно не нужна, но народ должен знать правду :)
34 BUBU
 
12.05.10
14:47
(32) так приоткрытии() или вводНового() ?
35 adamst
 
12.05.10
14:49
(34) это я для примера, можешь воспользоваться в любой из этих процедур, важно где этот реквизит использовать в модуле формы элемента...
36 BUBU
 
12.05.10
14:50
(35) Спасибо, наконец-то конкретно.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан