![]() |
![]() |
![]() |
|
Как установить значение реквизита формы? | ☑ | ||
---|---|---|---|---|
0
exodus
04.02.08
✎
08:52
|
Как при создании нового элемента справочника
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент(); можно установить значение неосновного реквизита ФормыЭлемента? Спасибо. |
|||
1
selenat
04.02.08
✎
09:08
|
(0) зачем? Элементы формы в базе не хранятся
|
|||
2
Фокусник
04.02.08
✎
09:08
|
форма не существует еще, сам-то как думаешь можно присвоить реквизиту несуществующей формы какое-либо значение? (:
|
|||
3
Дуб
04.02.08
✎
09:09
|
(0) Формы нет. Создай сначала форму, потом обращайся к её элементам.
|
|||
4
Ветер теней
04.02.08
✎
09:11
|
(0) Нужно посмотреть к какому виду данных принадлежит данный реквизит (конфигуратор)... регистр, перечисление и т.д. и соответсвующим образом заполнить его...
... лично мне не понятно, из вашего вопроса, что вы спрашиваете... например, "...установить значение неосновного реквизита ФормыЭлемента" - неосновной реквизит...? - это, что? |
|||
5
selenat
04.02.08
✎
09:12
|
(4) учи мат. часть...
|
|||
6
Defender aka LINN
04.02.08
✎
09:17
|
(3) А нафига ее создавать?
|
|||
7
exodus
04.02.08
✎
17:48
|
В конфигураторе в списке форм существует ФормаЭлемента (то есть при работе в режиме 1С:Предприятие форма создается не программно!).
Если открыть эту форму справочника (т.е. ФормаЭлемента) в режиме 1С:Конфигуратор, то в форме у нас будут закладки - Диалог, Модуль, Реквизиты. На закладке реквизиты, жирным выделен основной реквизит формы, остальные неосновные. В вопросе я имел ввиду как раз эти неосновные реквизиты. Тип этого неосновного реквизита - Булево. // создаю элемент следующим образом НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент(); ... НовыйКонтрагент.Записать(); ... // потом ищу его Контрагент = Справочники.Контрагенты.НайтиПоКоду("1234").Ссылка; // открываю форму - работает Контрагент.ПолучитьФорму("ФормаЭлемента").Открыть(); // пробовал делать вроде этого (чего хочу добиться) - никакой реакции... ФормаЭлементаКонтрагента = Контрагент.ПолучитьФорму("ФормаЭлемента"); ФормаЭлементаКонтрагента.НазваниеРеквизита = Ложь; Понимаю, что делаю, что-то не так! Пересмотрел справку, пробовал, но ничего не нашел:( |
|||
8
Defender aka LINN
04.02.08
✎
17:54
|
(7) Еще раз спрашиваю - нафиг тебе эти реквизиты впились?
|
|||
9
Salvador Limones
04.02.08
✎
17:56
|
Наверняка речь про "ВходитВХолдинг" :-)
|
|||
10
Defender aka LINN
04.02.08
✎
17:58
|
(9) А также "Контактная информация" и "Счета и договоры" :)
|
|||
11
DSS
04.02.08
✎
19:01
|
(7)и чего?
Тебе уже сказали: создай форму для начала. |
|||
12
Defender aka LINN
04.02.08
✎
19:13
|
(11) Да что вы все заладили "создай форму, создай форму..." НА-ФИ-ГА?
|
|||
13
noop
04.02.08
✎
19:35
|
// создаю элемент следующим образом
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент(); ... НовыйКонтрагент.Записать(); ... // потом ищу его Контрагент = Справочники.Контрагенты.НайтиПоКоду("1234").Ссылка; // открываю форму - работает Ф = Контрагент.ПолучитьФорму("ФормаЭлемента").Открыть(); Ф.НазваниеРеквизита = Ложь; Ф.Открыть(); |
|||
14
noop
04.02.08
✎
19:36
|
абшибсо
// НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент(); НовыйКонтрагент.Записать(); Контрагент = Справочники.Контрагенты.НайтиПоКоду("1234").Ссылка; Ф = Контрагент.ПолучитьФорму("ФормаЭлемента"); Ф.НазваниеРеквизита = Ложь; Ф.Открыть(); |
|||
15
Defender aka LINN
04.02.08
✎
19:39
|
(13) Еще один.
Ну долбите, птицы, долбите... |
|||
16
noop
04.02.08
✎
19:42
|
Defender
ты не токсикозь, а отвечай на поставленный вопрос ветки твоя лирика никого не интересует -) |
|||
17
Defender aka LINN
04.02.08
✎
19:45
|
(16) Ни один дятел из тех, кто советует за каким-то уем создать форму так и не ответил на простой вопрос: нахрена ее создавать?
А у меня еще парочка вопросов имеется: 1. Если я буду через COM делать, или на сервере? Куда вас пошлет 1С, догадываетесь? 2. Если мне надо создать стотыщмиллионов контрагентов? Догадываетесь, куда вас пошлет пользователять? |
|||
18
Собеседник
04.02.08
✎
19:49
|
(Defender aka LINN) (9) + 100
|
|||
19
exodus
04.02.08
✎
20:59
|
(9) Да, речь идет про реквизит "ВходитВХолдинг"
(10) значения дл "Контактная информация", "Счета и договоры", прочие реквизиты Объекта устанавливаются без проблем, проблема с реквизитами формы!... :( (13, 14) - не срабатывает...:) (8) задача, как описано в (17) - "надо через тридевять земель добавлять элементы в справочник по стотыщмиллионов:)" думал, что не придется расписывать детали, а именно, зачем впились эти реквизиты... при создании программно нового элемента реквизит "ВходитВХолдинг" устанавливается в значение Истина. И при открытии этого элемента пользователем в режиме 1С:Предприятие система не дает закрыть форму, пока пользователь не укажет - кто входит в холдинг или не установит значение этого реквизита в значение Ложь. Как понимаете, среднестатистического пользователя это будет приводить в замешательство или к зависанию его работы, пока не прибежит сами-знаете-кто:) Ну и подобная задача может возникнуть не только в этом случае. Программно создают разные объекты и может понадобится установить значения реквизитов формы... |
|||
20
Defender aka LINN
04.02.08
✎
21:05
|
(19) А теперь открой в конфигураторе форму элемента и смотри, когда устанавливается галка.
|
|||
21
exodus
04.02.08
✎
23:18
|
(20) либо в методе ПередЗаписью (он работает и при программном создании элемента, так?), либо уже ПриОткрытии формы. Другие два метода к нашему случаю не имеют отношения.
интересно, но я еще вначале (2 недели назад) смотрел модуль формы и видел "ГоловнойКонтрагент". Но после безуспешных попыток "лешить" этот реквизит значения путем присвоения: - Неопределено, Справочники.Контрагенты.ПустаяСсылка()... решил попробовать установить ВходитВХолдинг = Ложь, но это тоже не помогло...:( Извините, но что-то я не пойму, что надо делать?:) |
|||
22
Defender aka LINN
04.02.08
✎
23:48
|
(21) Вот я из принципа УТ не открою. Учись читать код.
|
|||
23
Валерыч
05.02.08
✎
02:35
|
(22) понимаю, сочуствую, но не горячись. Наверно надо этот вопрос добавить в базу знаний и жестко прописать телепату
(0) к сожалению не написано какая конфа, поэтому привожу код из БП 1.6 В модуле формы событие ПриОткрытии Процедура ПриОткрытии() ... Если НЕ ЭтоНовый() Тогда ВходитВХолдинг = НЕ(ГоловнойКонтрагент = Ссылка); КонецЕсли; ВидимостьГоловногоКонтрагента(); ... КонецПроцедуры // ПриОткрытии() Поэтому достаточно установить значение реквизита ГоловнойКонтрагент ссылкой на самого себя. |
|||
24
Ветер теней
05.02.08
✎
08:32
|
(23) т.е. элемент ВходитВХолдинг при программном создании реагирует на элемент ГоловнойКонтрАгент...
у меня получилось организовать доступ, после всех проб и ошибок и с подачи Валерыч-а, так: // Контрагент = Справочники.Контрагенты.НайтиПоКоду("111716").Ссылка; Головной_КонтрАгент = Справочники.Контрагенты.НайтиПоКоду("110317").Ссылка; //при програмном создании об = Контрагент.ПолучитьОбъект(); об.ГоловнойКонтрагент = Головной_КонтрАгент; об.Записать(); //при вызове формы Ф = Контрагент.ПолучитьФорму("ФормаЭлемента"); ф.ГоловнойКонтрагент = Головной_КонтрАгент; // Ф.Открыть(); Обращения к элементу ВходитВХолдинг даже и не требуется...? ТАК...? Валерыч - большое СПАСИБО... |
|||
25
Валерыч
05.02.08
✎
09:03
|
в общем так, но вот
ф.ГоловнойКонтрагент = Головной_КонтрАгент; это лишнее |
|||
26
selenat
05.02.08
✎
09:12
|
И когда же люди научатся вопросы грамотно задавать? :(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |