Имя: Пароль:
1C
 
Как установить значение реквизита формы?
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
И когда же люди научатся вопросы грамотно задавать? :(