![]() |
![]() |
|
Как реализовать пометки в Таблице значений? | ☑ | ||
---|---|---|---|---|
0
Живаго
24.11.09
✎
15:09
|
В отчете есть реквизит таблица значений, на форме табличное поле, как реализовать пометки (как список с пометками)?
|
|||
1
Vitello
24.11.09
✎
15:11
|
Колонку с типом булево добавить
|
|||
2
Живаго
24.11.09
✎
15:15
|
(1)Спасибо
|
|||
3
Живаго
24.11.09
✎
15:17
|
А как сделать так чтобы там стоял именно флажок, как в семерке нужно пиктограмку прикручивать?
|
|||
4
Vitello
24.11.09
✎
15:18
|
(3)см Данные флажка элемента управления.
|
|||
5
Aloex
24.11.09
✎
15:20
|
(3) Процедура ТаблицаРезультатПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки[0].ОтображатьФлажок = Истина; ОформлениеСтроки.Ячейки[0].ОтображатьТекст = Ложь; ОформлениеСтроки.Ячейки[0].Флажок = Истина; КонецПроцедуры |
|||
6
Живаго
24.11.09
✎
15:29
|
(5) эээм там теперь все в куче и ложь с истиной и флажок и почемуто всегда установлен!
|
|||
7
Aloex
24.11.09
✎
15:34
|
(6) Данные о флажке берутся из другой колонки(это не принципиально)
ОформлениеСтроки.Ячейки[0].Флажок = ДанныеСтроки.Пометка; |
|||
8
Живаго
24.11.09
✎
15:37
|
(7) спасибо я понял, только смущает одна мелочь, т.е. все равно работать будет так как выбор булевого значения, отображение только идет флажком, я правильно понял?
|
|||
9
Aloex
24.11.09
✎
15:38
|
(8) ТЗ_QueryResults = Новый ТаблицаЗначений;
ТЗ_QueryResults.Колонки.Добавить("Пометка",ПолучитьОписаниеТипаБулево(),"v",2); |
|||
10
Aloex
24.11.09
✎
15:38
|
(8) а как ещё?
|
|||
11
Живаго
24.11.09
✎
15:45
|
(9) я канешно дико извиняюсь (за свою неосведомленность), но что такое ПолучитьОписаниеТипаБулево()?
|
|||
12
Живаго
24.11.09
✎
15:46
|
(10) Ну в семерке разруливалось с помощью пиктограмки и просто тупо по двойному клику менялось значение, и не надо выбирать ложь истина, просто кликаешь и все.
|
|||
13
Aloex
24.11.09
✎
15:48
|
Функция ПолучитьОписаниеТипаБулево() Экспорт
МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("Булево")); ОписаниеТипаБулево = Новый ОписаниеТипов(МассивТипов); Возврат ОписаниеТипаБулево; КонецФункции |
|||
14
Живаго
24.11.09
✎
15:48
|
(11) вопрос снят!
|
|||
15
Живаго
24.11.09
✎
15:48
|
(13) Спасбио за помощь
|
|||
16
Живаго
24.11.09
✎
16:03
|
Теперь другая проблема меняю значение в соотв. ячейке и во всех строках ставится флаг соотвтственно той ячейке которую я поменял.
Процедура СписокСвойствПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ОформлениеСтроки.Ячейки[0].ОтображатьФлажок = Истина; ОформлениеСтроки.Ячейки[0].ОтображатьТекст = Ложь; ОформлениеСтроки.Ячейки[0].Флажок = ложь; Если Элемент.ТекущаяСтрока.Пометка = ложь Тогда ОформлениеСтроки.Ячейки[0].Флажок = ложь; ИначеЕсли Элемент.ТекущаяСтрока.Пометка = истина Тогда ОформлениеСтроки.Ячейки[0].Флажок = Истина; Иначе ОформлениеСтроки.Ячейки[0].Флажок = Ложь; КонецЕсли; КонецПроцедуры вот код |
|||
17
butterbean
24.11.09
✎
16:07
|
(16) что это??
здесь достаточно только ОформлениеСтроки.Ячейки[0].УстановитьФлажок(данныеСтроки.ТвояКолонка); ОформлениеСтроки.Ячейки[0].ОтображатьТекст = Ложь; |
|||
18
butterbean
24.11.09
✎
16:08
|
(17)+ изменение флажка должно отлавливаться в событии ПриИзмененииФлажка
|
|||
19
Живаго
24.11.09
✎
16:16
|
(17) изменил код = все тоже
(18) имеется ввиду при изменении поля (моя колонка)? |
|||
20
butterbean
24.11.09
✎
16:17
|
(19) нет, имеется ввиду событие табличного поля ПриИзмененииФлажка()
|
|||
21
73
24.11.09
✎
16:22
|
А зачем там вообще ПриВыводеСтроки?
Удали колонку в ТП и создай заново. БЕЗ ЭлементаУправления. Данные - вытереть. ДанныеФлажка - заполнить. РежимРедактирования - Непосредственно. v8: Вывод логического значение в ТЗ на форме документа - очень познавательно. |
|||
22
Живаго
24.11.09
✎
16:56
|
(21) ТЫ МЕНЯ СПАС!!! УРА!!!
|
|||
23
Viktosha
08.12.09
✎
17:01
|
Такая же проблема, помогите пож-та. Есть табличное поле, не связанное с табличной частью документа. Часть колонок формируется динамически. Колонка "Соответствует" занесена изначально, сделано все, как в (21), с той лишь разницей, что в списке свойств нет свойства "Режим редактирования". И не выходит, появляется только ложь/истина.Полдня уже мучаюсь((((
|
|||
24
Mitriy
08.12.09
✎
17:04
|
(23) Режим редактирования в свойствах колонки ищи, а не поля...
|
|||
25
Mitriy
08.12.09
✎
17:05
|
(24)+ на это обрати особое внимание:
Данные - вытереть. ДанныеФлажка - заполнить. |
|||
26
73
08.12.09
✎
17:06
|
(23) Кнопка "Показывать только важные" в заголовке окна свойств не нажата случаем?
|
|||
27
73
08.12.09
✎
17:13
|
(26)+ показывает "истина/ложь" - элемент управления точно удалили?
|
|||
28
Viktosha
08.12.09
✎
17:17
|
Стоит:
Имя : Соответствует Данные: не заполнено ДанныеФлажка: Соответствует Спасибо (73): режим поставила непосредственно Элемент управления удалила перед тем как записать данные флажка. Все равно идет истина/ложь Может стоит заполнить процедуру ПриВыводе строки? |
|||
29
Mitriy
08.12.09
✎
17:20
|
(28) если колонка в таблице есть с типом булево, то вообще никаких обработчиков не надо...
|
|||
30
73
08.12.09
✎
17:22
|
Еще раз:
Из ссылки (21): НЕА123 30 - 30.04.09 - 13:11 (28) 1. удали колонку; 2. добавь колонку; 3. в свойствах данные убери; 4. в свойствах данные флажка укажи имя; 5. тыкни мышом куда-нибудь(на другую колонку) 6. тыкни мышом на созданную колонку, в свойствах не должно быть ЭУ и типа ЗЫ. В 15м релизе вроде уже не глючит. ЭлементУправления удаляется сам корректно. По крайней мере я добиться "истина/ложь" уже не смог. |
|||
31
Viktosha
08.12.09
✎
17:22
|
У меня табличная часть и табличное поле названы даже по разному, потому что формируются не построчно, например, как в документе Установка цен.
|
|||
32
Viktosha
08.12.09
✎
17:25
|
(30) несколько раз проделывала такой фокус(((( не помогает(((( стоит 14-ая платформа
|
|||
33
73
08.12.09
✎
17:29
|
(32) По схеме (30) и (21) делал и в 13м - все получалось.
|
|||
34
Viktosha
08.12.09
✎
17:33
|
(33) у вас табличное поле содержит данные табличной части?
|
|||
35
73
08.12.09
✎
17:36
|
(34) А у вас, что содержит? В (23): <Есть табличное поле, не связанное с табличной частью документа >
Или я чего-то не допонял. Тогда поподробнее... |
|||
36
73
08.12.09
✎
17:37
|
(35)+ Что у табличного поля в данных (тип какой)?
|
|||
37
vmv
08.12.09
✎
17:41
|
Процедура УстановитьРежимФлажкаКолонкиТабличногоПоля(Колонки, КолонкаИмя, ТолькоПросмотр = Ложь, ТриСостояния = Истина) Экспорт
Перем Колонка; Колонка = Колонки[КолонкаИмя]; Колонка.ТолькоПросмотр = ТолькоПросмотр; Колонка.Данные = ""; Колонка.ДанныеФлажка = КолонкаИмя; Колонка.ТриСостоянияФлажка = ТриСостояния; Колонка.РежимРедактирования = РежимРедактированияКолонки.Непосредственно; КонецПроцедуры При открытии/модификации формы или по вкусу |
|||
38
Viktosha
08.12.09
✎
17:41
|
Есть документ, в нем табличная часть: анализы и есть табличное поле на форме: испытания, которое представляет собой сводную таблицу. Т.е. одной строке в табличном поле, соответствует несколько строк в табличной части документа.
|
|||
39
Mitriy
08.12.09
✎
17:44
|
(38) может, ты все-таки глянешь на тип значения табличного поля, партизанка? ))
|
|||
40
Viktosha
08.12.09
✎
17:44
|
(37) все это я ставлю изначально
|
|||
41
73
08.12.09
✎
17:44
|
(38)
Тыкни на табличное поле - открой свойства и посмотри, что там написано в Данные: имя табличной части или имя чегой-тоТамеще(переменная, реквизитформы или что? и какой там тип) ? |
|||
42
Viktosha
08.12.09
✎
17:44
|
(39)ТаблицаЗначений
|
|||
43
Viktosha
08.12.09
✎
17:46
|
(41) данные : испытания я так понимаю реквизит формы (точно не документа)
тип: ТаблицаЗначений |
|||
44
vmv
08.12.09
✎
17:47
|
три состояния полезны если у вас в табличной части документа ...дерево.
мне надоели громадные табличные части в типовом исполнении и я прикрутил деревянные табличные части в документы. Удобно когда в строках однородные данные по популярным полям, как то: контрагаент, номенклатура, физлица и пр. в узлах итоги с суммовых колонках, в разворотах данные. Итого документ с 1000 строк - при открытии может содержать очень малое число узлов, причем не факт, что каждый откроют. когда платформо-разработчики дойдут до мысли, что многострочная часть в виде плоской таблицы это не только неудобно, но и не экономно) |
|||
45
73
08.12.09
✎
17:48
|
(42) Тогда при чем вопрос (34)? (30) и (21) как раз подойдет.
Как булева колонка называться будет знаешь? |
|||
46
73
08.12.09
✎
17:49
|
(45)+ Там у тебя нигде СоздатьКолонки() не делается этому полю?
|
|||
47
Viktosha
08.12.09
✎
17:50
|
(45) ну не получается вот так, уже раз 40 делала, колонка называется "Соответствует", я ее изначально создаю, по этой колонке нигде ничего не создается
|
|||
48
Viktosha
08.12.09
✎
17:51
|
(44) согласна, тоже использую дерево значений переодически, но в данном случае, нужна таблица
|
|||
49
73
08.12.09
✎
17:53
|
СоздатьКолонки() - метод табличного поля. Если вызовешь - перетрет что в конфигураторе настроила. Так что проверить бы надо.
Попробуй создать новую колонку с другим(любым) именем и посмотри что получится. |
|||
50
Viktosha
08.12.09
✎
17:56
|
(49) новая колонка с новым именем тоже дает ложь/истина(((((((((((((((((((
|
|||
51
73
08.12.09
✎
17:58
|
<Часть колонок формируется динамически> - показывай код.
|
|||
52
Viktosha
08.12.09
✎
18:01
|
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Отказ = Не УправлениеСертификациейНоменклатуры.ИспользоватьСертификациюНоменклатуры(Истина); ДокументВводитсяНаОснованииПотоком = ложь; ВидОперации = Перечисления.ВидыОперацийИспытаний.ПоПартиям; ОчереднойНомерКолонки = 3; мСоответствиеПоказателей = Новый Соответствие; Для Каждого Строка Из Показатели Цикл НомерСоответствияТекущейКолонки = Показатели.Индекс(Строка); мСоответствиеПоказателей.Вставить(Строка.Образец, НомерСоответствияТекущейКолонки); Для КолПовторов=1 по Испытание.КоличествоПовторов Цикл Если Испытания.Колонки.Найти("Показатель" +Строка(КолПовторов)+Строка(Строка.Образец)+ НомерСоответствияТекущейКолонки) = Неопределено Тогда Испытания.Колонки.Добавить("Показатель" +Строка(КолПовторов)+Строка(Строка.Образец)+ НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2, ДопустимыйЗнак.Неотрицательный)), "Образец" +Строка(КолПовторов)+Строка(Строка.Образец), 10); КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
53
vmv
08.12.09
✎
18:01
|
(50) да просто строковую колонку объяви с длиной 0 и пропиши в "данные" имя булевой колонки, которая реально будет инициализироваться Ложь/Истина, причем, саму булеву сделай невидимой.
Ну и в эту строковую в свойства Колонка.РежимРедактирования = РежимРедактированияКолонки.Непосредственно; |
|||
54
Viktosha
08.12.09
✎
18:02
|
Процедура ОбновитьСоставКолонок()
// Надо расположить все нужные колонки в правильном порядке. // Сначала должна идти колонка "Код". КолонкиТаблицыЦен = Испытания.Колонки; ОчереднойНомерКолонки = 0; ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Партия"); СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); ТекущаяКолонка = КолонкиТаблицыЦен.Найти("ПоказательИспытания"); СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); Для Каждого СтрокаТипаЦен Из Показатели Цикл Если НЕ ЗначениеЗаполнено(СтрокаТипаЦен.Образец) Тогда Продолжить; КонецЕсли; НомерСоответствияТекущейКолонки = мСоответствиеПоказателей[СтрокаТипаЦен.Образец]; Если НомерСоответствияТекущейКолонки = Неопределено Тогда НомерСоответствияТекущейКолонки = мСоответствиеПоказателей.Количество(); мСоответствиеПоказателей.Вставить(СтрокаТипаЦен.Образец, мСоответствиеПоказателей.Количество()); КонецЕсли; // Цена. Для КолПовторов=1 по Испытание.КоличествоПовторов Цикл ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Показатель" +Строка(КолПовторов)+Строка(СтрокаТипаЦен.Образец)+ НомерСоответствияТекущейКолонки); Если ТекущаяКолонка = Неопределено Тогда // надо вставить КолонкиТаблицыЦен.Вставить(ОчереднойНомерКолонки, "Показатель" +Строка(КолПовторов)+Строка(СтрокаТипаЦен.Образец)+ НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2, ДопустимыйЗнак.Неотрицательный)), "Образец" +Строка(КолПовторов)+Строка(СтрокаТипаЦен.Образец), 10); ОчереднойНомерКолонки = ОчереднойНомерКолонки + 1; Иначе СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); КонецЕсли; КонецЦикла; КонецЦикла; ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Значение"); СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); ТекущаяКолонка = КолонкиТаблицыЦен.Найти("Соответствует"); СдвинутьКолонку(ТекущаяКолонка, ОчереднойНомерКолонки); // Все, что за пределами, надо удалить. Для НомерУдаляемойКолонки = ОчереднойНомерКолонки По КолонкиТаблицыЦен.Количество() - 1 Цикл КолонкиТаблицыЦен.Удалить(ОчереднойНомерКолонки); КонецЦикла; ЭлементыФормы.Испытания.СоздатьКолонки(); КонецПроцедуры |
|||
55
73
08.12.09
✎
18:03
|
А ЭТО ЧТО?
ЭлементыФормы.Испытания.СоздатьКолонки(); |
|||
56
73
08.12.09
✎
18:04
|
(55)+ Прочитай (49) еще раз.
|
|||
57
vmv
08.12.09
✎
18:04
|
после ЭлементыФормы.Испытания.СоздатьКолонки();
вызывай УстановитьРежимФлажкаКолонкиТабличногоПоля(Колонки, КолонкаИмя, ТолькоПросмотр , ТриСостояния); |
|||
58
vmv
08.12.09
✎
18:06
|
вернее, в этом случае
УстановитьРежимФлажкаКолонкиТабличногоПоля(ЭлементыФормы.Испытания.Колонки, "<ИмяБулевой>", Ложь , Ложь); |
|||
59
73
08.12.09
✎
18:07
|
(57)+ Или после допиши:
ЭлементыФормы.Испытания.СоздатьКолонки(); ЭлементыФормы.Испытания.Колонки.Соответствует.Данные = ""; ЭлементыФормы.Испытания.Колонки.Соответствует.ДанныеФлажка = "Соответствует"; ЭлементыФормы.Испытания.Колонки.Соответствует.РежимРедактирования = РежимРедактированияКолонки.Непосредственно; |
|||
60
vmv
08.12.09
✎
18:09
|
да вообще команда СоздатьКолонки() "сбивает" все)
после нее надо программно перенастраивать и ширину и видимость, и доступность и прочие прелести универсализма. Я тож раньше этим методом злоупотредлял, потом понял - он того не стоит) |
|||
61
Abracadabra
08.12.09
✎
18:10
|
Во, для образца:
http://slil.ru/28313186 |
|||
62
Viktosha
08.12.09
✎
18:11
|
Спасибо большое 73 и vmv, все получилось. А я думала что создатьКолонки() создает только те, которые я действительно создаю, но не трогает те, которые уже есть на форме. Еще раз спасибо)))))))))))))))))))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |