Имя: Пароль:
1C
1С v8
флажок в табличном поле
,
0 Oz11
 
11.10.12
22:58
приветствую.
есть такой вопрос. программно добавляю колонки в табличное поле, одна из них - это флажок. нужно как-то отлавливать изменение пользователем этого флажка и, главное, знать при этом значение флажка.
как можно это сделать?
1 ОбычныйЧеловек
 
11.10.12
22:59
Вообще-то событие такое есть - это так к сведению.
2 DrShad
 
11.10.12
23:01
(1) +1
3 Oz11
 
11.10.12
23:02
(1) у табличного документа есть событие при изменении флажка и оно дает название колонки, в которой поменялся флаг, но я не могу достать само значение флажка после изменения.
4 DrShad
 
11.10.12
23:05
почему?
5 ОбычныйЧеловек
 
11.10.12
23:06
(3) кто или что тебе мешает это сделать?
6 DrShad
 
11.10.12
23:06
колонка есть, текущая строка есть - в чем проблема?
7 Oz11
 
11.10.12
23:07
Вот я создаю колонку:
(ТолькоПросмотр = Истина
Имя = Имя колонки
Синоним = Синоним колонки
РежимРедактирования = Непосредственно
)
   // создадим колонку
   КолонкиСписка = ЭлементыФормы.ДокументСписок.Колонки;
   Колонка = КолонкиСписка.Добавить();
   // произведем первичную настроку
   Колонка.Имя                    = Имя;
   Колонка.ТекстШапки                = Синоним;
   Колонка.ТолькоПросмотр            = ТолькоПросмотр;
   Колонка.ИзменятьВидимость        = Ложь;
   Колонка.ИзменятьПозицию        = Ложь;
   Если НЕ РежимРедактирования = Неопределено Тогда
       Колонка.РежимРедактирования = РежимРедактирования;
   КонецЕсли;
   Колонка.УстановитьЭлементУправления(Тип);
   Если НЕ ТипЗначенияЭлементаУправления = Неопределено Тогда
       Колонка.ЭлементУправления.ТипЗначения = ТипЗначенияЭлементаУправления;
   КонецЕсли;
   КолонкиСписка.Сдвинуть(Колонка, 1 - КолонкиСписка.Количество() + НомерКолонки);
   // настроим положение колонки
   Если Имя = "ЕстьОригинал" Тогда
       Колонка.ИзменятьНастройку = Ложь;
       Колонка.ИзменениеРазмера  = ИзменениеРазмераКолонки.НеИзменять;
   КонецЕсли;
как видите реквизит данные не заполняется.
можно ли в таком случае получить значение флажка?
8 DrShad
 
11.10.12
23:08
да
9 Oz11
 
11.10.12
23:10
(8) поясните, пожалуйста, как это сделать.
10 DrShad
 
11.10.12
23:11
суука, через текущую строку и твою колонку
11 DrShad
 
11.10.12
23:12
сегодня что ночь тупизны на мисте?
12 Oz11
 
11.10.12
23:15
была бы там моя колонка - я бы таких вопросов не задавал!
13 DrShad
 
11.10.12
23:18
код свой покажи
14 ОбычныйЧеловек
 
11.10.12
23:18
>> как видите реквизит данные не заполняется.
Я видимо совсем отупел... ты добавляешь свою колонку в форму списка документа и хочешь получить ее значение?
Я конечно дико извиняюсь, но это значение при этом хранится?
15 DrShad
 
11.10.12
23:20
(14)там будет хотя бы ЛОЖЬ
16 Oz11
 
11.10.12
23:21
(13) что тут показывать? в ЭлементыФормы.ДокументСписок.ТекущаяСТрока элемента "ЕстьОригинал" (это имя моей колонки) нет. есть такая колонка в ЭлементыФормы.ДокументСписок.Колонки. (ДокументСписок - табличное поле на форме)
17 ОбычныйЧеловек
 
11.10.12
23:21
(15) там будет ТОЛЬКО ложь.
18 DrShad
 
11.10.12
23:23
(17) но ведь есть и ее можно получить
19 DrShad
 
11.10.12
23:24
(16) ты после добавления колонки обновил? чего тогда ищешь ее?
20 ОбычныйЧеловек
 
11.10.12
23:27
Oz11 просто ответь на вопрос - где будет хранится значение в добавленной тобой колонке? Источником данных у  "ДокументСписок"  является не таблица значений ведь так?
21 DrShad
 
11.10.12
23:29
(20) ну он пока и не говорил что надо хранить - просто добавил а форму не перерисовал
22 Oz11
 
11.10.12
23:30
(20) нет, конечно не таблица значений. но система же отслеживает изменение флажка в обработчике табличного поля - значит где-то хранит его значение.
23 ОбычныйЧеловек
 
11.10.12
23:31
(22) вот ты маладец..... значит система реально "облажалась" - потому, что она не хранит - думаю эта информация тебя сейчас сильно удивит...
24 Stim
 
11.10.12
23:32
на итс есть такая обработка
25 ОбычныйЧеловек
 
11.10.12
23:33
+23 ты добавил колонку (без ссылки на данные) так будь любезен позаботится о хранении значения свой добавленной колонки.
26 Oz11
 
11.10.12
23:36
(25) вот этот вопрос я и задавал в (7).
27 ОбычныйЧеловек
 
11.10.12
23:37
А вообще ты слишком хорошо думаешь об 1С в целом и о платформе в частности...думал в сказку попал - мол я колонку добавил а ты (платформа) думай где будешь мои данные хранить. Спускайся давай с небес на землю.
28 DrShad
 
11.10.12
23:37
(26) где!? процитируй
29 ОбычныйЧеловек
 
11.10.12
23:38
(26) вопрос в (7) ты конечно задал а вот отвтеить на (14) забыл.
30 Oz11
 
11.10.12
23:38
цитата: "как видите реквизит данные не заполняется.
можно ли в таком случае получить значение флажка?"
31 DrShad
 
11.10.12
23:39
(30) суука, где вопрос о хранении значений!?!?!?!
32 ОбычныйЧеловек
 
11.10.12
23:39
(30) там нет значения -  как ты его хочешь получить? Как можно получить то чего нет?
33 DrShad
 
11.10.12
23:40
(32) так стоп! значение есть, то что оно не сохраняется это другой вопрос
34 ОбычныйЧеловек
 
11.10.12
23:43
(33) Мед – это очень странный предмет, если он есть, то его сразу нет...
35 DrShad
 
11.10.12
23:43
(34) есть такое дело, пока совершенно не ясно чего хочет автор добиться
36 Oz11
 
11.10.12
23:45
только что специально создал обработку с табличным полем на форме. создал в нем колонку и заполнил только имя и элемент управления - флажек.
для элемента управления назначил обработчик "при изменении" и в нем вывожу текущее значение флажка - и о чудо, оно меняется. да, на форме этого не видно, когда фокус ушел, но значение то есть. и если открыть к редактированию значение в колонке - там видно включен флажок или выключен
37 Oz11
 
11.10.12
23:47
мне нужно знать значение флажка и передавать его дальше для обработки. как я это получу - из события табличного поля или из обработчика самого флажка (элемента управления) мне фиолетово.
38 DrShad
 
11.10.12
23:48
зашибись, дальше что?
39 ОбычныйЧеловек
 
11.10.12
23:49
(35) ну с этим то как раз все ясно - судя по всему стоит задача добавить реквизит формы списка (добавить програмно,не трогая метаданные - реквизит - флажок) и что бы можно отмечать нужные документы и потом с отмеченными доками, что-то делать.
40 Oz11
 
11.10.12
23:50
(39) можно сказать и так.
41 ОбычныйЧеловек
 
11.10.12
23:51
Только вот автор думал, что все так просто - добавил колонку и дело в шляпе...а вот не тут то было...
42 DrShad
 
11.10.12
23:52
(40) куевая реализация решения задачи
43 Oz11
 
11.10.12
23:53
(42) предложил бы лучше
44 DrShad
 
11.10.12
23:53
(43) так описал бы задачу!?
45 DrShad
 
11.10.12
23:53
а то выходить помогите сделать лучше куй знает что
46 ОбычныйЧеловек
 
11.10.12
23:54
Ну вот теперь все стало ясно...автор создал обработку - на фору вынес табличное поле со ссылкой на доки - теперь пытается сделать возможность эти доки помечать, что бы их по заданному алгоритму обработать.
47 ОбычныйЧеловек
 
11.10.12
23:57
Oz11 у тебя есть 2 варианта
1. Делать как ты делаешь - только значение тебе придется хранить в какой нить переменной типа списка,структуры или массива
2.Создай табличное поле с источником данных ТЗ - заполни доки запросом - в ТЗ уже флажок будет хранится как ты хотел - автоматом
48 ОбычныйЧеловек
 
11.10.12
23:58
+47 приипервом варианте показывать флажок надо будет в процедуре ПриПолученииДанных
49 Oz11
 
11.10.12
23:59
(46) в упрощенной форме - да. на самом деле сначала выбирается тип документа - а потом в табличное поле загружается его список и создаются отдельные колонки (одна из них - флажок). если пользователь ставит флажок - в регистр сведений пишется инфа, если убирает - тоже запись, но с другими реквизитами. с таблицей значений на форме работать не могу так как нужен стандартный отбор. флажки при выводе строк беру из этого же регистра.
50 DrShad
 
12.10.12
00:03
(49) ну так можно юзать список документов
51 ОбычныйЧеловек
 
12.10.12
00:07
(49)  >> флажки при выводе строк беру из этого же регистра.
К сожалению на планшете 1ски нету - поэтому не могу синтаксис посмотреть, но кто тебе мешает в процедуре ПриИзмененииФлажка получать данные твоего регистра ? Ты точно будешь знать какой флажок сейчас стоит.
52 Oz11
 
12.10.12
00:13
(51) именно это сейчас и пытаюсь сделать. дошло на конец-то что можно именно так определять значение флажка
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn