Имя: Пароль:
1C
 
Как обратиться к программно созданным колонкам табличного поля? Обычные формы.
0 DGorgoN
 
05.07.21
20:16
Создаю колонки
НоваяКолонка = ЭлементыФормы.Анализ.Колонки.Добавить(СокрЛП(Стр.Подразделение.тдГруппаПодразделений), СокрЛП(Стр.Подразделение.тдГруппаПодразделений));
НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));    

Вот как теперь мне узнать какое текущее значение в колонке СокрЛП(Стр.Подразделение.тдГруппаПодразделений) ?
1 ДенисЧ
 
05.07.21
20:22
В колонке нет значений...
Они есть в ячейке строки...

А так ... Строкатз[ИмяКолонки]
2 DGorgoN
 
05.07.21
20:23
(1) Нифига. Не получается. Я делал давно но сейчас хоть убей не помню. Полчаса ковырял и вот..
3 DGorgoN
 
05.07.21
20:24
Процедура АнализПриИзмененииФлажка(Элемент, Колонка)
    //Сообщить(Колонка.Имя);
    ////Сообщить(Элемент.ТекущаяСтрока[Колонка.Имя]);
    ////Сообщить(ЭлементыФормы.Анализ.ТекущаяСтрока[Колонка.Имя]);
    //ЭлементыФормы.Анализ.Яче
    //ТекущиеДанные = ЭлементыФормы.Анализ.ТекущиеДанные;
    //Сообщить(ТекущиеДанные[Колонка.Имя]); ///Имя реквизита
    
    //Для каждого СтрПоля из ЭлементыФормы.Анализ Цикл
    //    Сообщить(СтрПоля[Колонка.Имя]);
    //КонецЦикла;
    
    Для Каждого Строчка из Анализ Цикл
        Сообщить(Строчка[Колонка.Имя]);
    КонецЦикла;    
КонецПроцедуры

Везде ошибки
4 ДенисЧ
 
05.07.21
20:33
ВотсЪ

Процедура ПриОткрытии()
    тз.Колонки.Добавить("Колонка1");
    ЭлементыФормы.ТЗ.СоздатьКолонки();;
    
    ЭлементыФормы.ТЗ.Колонки["Колонка1"].УстановитьЭлементУправления(Тип("ПолеВвода"));
    
    тз.Добавить().Колонка1 = "1";
    тз.Добавить().Колонка1 = "2";
    
КонецПроцедуры

Процедура ТЗПриАктивизацииСтроки(Элемент)
    сообщить("" + тз[0]["Колонка1"]);
    сообщить("" + тз[1]["Колонка1"]);
КонецПроцедуры


тз - таблица значений на форме.
5 DGorgoN
 
05.07.21
20:39
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(27)}: Поле объекта не обнаружено (Колонки)
    Анализ.Колонки.Добавить("Колонка1");
6 ДенисЧ
 
05.07.21
20:41
(5) значит, анализ у тебя не таблица значений.
7 ДенисЧ
 
05.07.21
20:41
Источник у неё какой?
8 DGorgoN
 
05.07.21
20:43
(7) Это реквизит документа, ну может быть реквизит обработки.
9 DGorgoN
 
05.07.21
20:43
Табличная часть обработки
10 ДенисЧ
 
05.07.21
20:44
И как ты собирался к нему добавить колонки?
Для таких колонок ты можешь записать туда что-то. В ПриВыводеСтроки() или в ПриПолученииДанных()
11 Ёпрст
 
05.07.21
20:48
Проще уж не программно добавить колонку в ТЧ обработки, тем более, что это флажок..
12 DGorgoN
 
05.07.21
20:51
(10) Ну добавлять то просто

            НоваяКолонка = ЭлементыФормы.Анализ.Колонки.Добавить(СокрЛП(Стр.Подразделение.тдГруппаПодразделений), СокрЛП(Стр.Подразделение.тдГруппаПодразделений));
            НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));    
            НоваяКолонка.Ширина = 5;
13 DGorgoN
 
05.07.21
20:52
(10) (11) Есть список постоянный полей и есть список динамических. От 0 до n. Можно конечно добавить реквизит1, реквизит2 и т.п. но хочется покрасивее.
14 DGorgoN
 
05.07.21
20:53
(10) Записать при выводе строки получается. Вот пользователь изменил что то в этой колонке - как узнать в какой и что?
15 Сергиус
 
05.07.21
21:28
(14)Метод ДанныеСтроки.
16 DGorgoN
 
05.07.21
21:30
(15) Поясни подробнее с примером пжста.
17 Сергиус
 
05.07.21
21:37
(16)Не прокатит, там будут доступны только данные колонок из привязанной ТЧ. Для твоего случая только либо ПриВыводеСтроки, либо ПриПолученииДанных - события Табличного поля
18 Ёпрст
 
05.07.21
21:51
(13) Тогда не используй ТЧ, используй ТЗ. И там, что угодно. Ну, разве что отборы будешь ручоками лепить
19 DGorgoN
 
05.07.21
22:00
(18) Я вот точно помню что перебирал элемент формы. Ну не ужели нет способа и мне причудилось?
20 Ёпрст
 
05.07.21
22:04
(19) способ есть. Он в (18)
21 DGorgoN
 
05.07.21
22:05
Ну коряво это. Буду делать как в установкецен - по аналогии.
22 Ёпрст
 
05.07.21
22:20
(21) там просто ТЗ на форме. Которая потом хранится в виде плоской ТЧ.
23 Ёпрст
 
05.07.21
22:21
Ну и собственна, см (18)
24 DGorgoN
 
05.07.21
22:23
(23) Ну вот так и придётся делать. Странно с точки зрения программирования не предоставить доступ к элементам табличного поля напрямую на форме. Колонки создать можно, даже что то туда записать при выводе строки а считать никак )
25 Ёпрст
 
05.07.21
22:48
(24) Источник ТЧ - в колонках ТЧ можешь сделать что угодно. Добавляя свои колонки в табличное поле, они никак с ТЧ не связаны, вообще. Ты можешь только показать нечто в этих колонках использую ПривыводеСтроки или ПриПолученииДанных.
А вот с ТЗ, всё проще - ты сразу добавляешь колонки в ТЗ (хотя можешь и в табличное поле и см. проблему выше), т.е в сам источник данных

Соответственно можешь делать что угодно.
26 Ёпрст
 
05.07.21
22:50
Табличное поле - это всего лишь "окошко", через которое ты на данные источника смотришь.
Если ты в источник не добавляешь ничего (колонки свои) ты их в "окошко" и не видишь и управлять ими не можешь.
27 DGorgoN
 
05.07.21
22:58
(26) Ну почему тогда в это окошко можно добавить колонку? )
28 Ёпрст
 
05.07.21
22:59
(27) чтобы вывести нередактируемую доп информацию, которую ты можешь получить из источника данных
29 DGorgoN
 
05.07.21
23:02
(28) Почему тогда ты эту информацию можешь редактировать? )
30 Ёпрст
 
05.07.21
23:03
(29) не можешь
31 DGorgoN
 
05.07.21
23:11
(30) Ну как не можешь? Можешь - отображается что можешь. Да пофик на самом деле - на обычные форму 1с давно забила. Чисто по логике вполне себе можно было допилить.
32 Ёпрст
 
05.07.21
23:20
(31) Если че, в УФ - всё тоже самое.
33 Ёпрст
 
05.07.21
23:20
Только, там еще больше ограничений
34 DGorgoN
 
05.07.21
23:41
(32) (33) Ну не скажи. Там всё логично более-менее. Хотя где 1с где логика, скорее привычка.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.