|
Хочу в таб. части обработки прикрутить рекв-т типа "ТаблицаЗначений". Я многого хочу? | ☑ | ||
|---|---|---|---|---|
|
0
гг-ламер
16.09.09
✎
19:25
|
Доброго времени суток. С одной стороны, хочу юзать типовой отбор, а не мудиться с таблицами значений, с другой - прям ужас как надо держать в реквизите табличку значений.
Ну для понимания, в табличке есть заказы, и данные по ним - это хочется отбирать. А есть табличные части заказов, причем обработанные и динамически показываемые во второй табличке, в зависимости от активной строки в первой таблицы. Вариант с оперативным формированием отпадает - слишком тягомотное дело при каждой смене строки обрбатывать вспомогательную табличку... Думаю, если таки нельзя такой реквизит прикрутить, попробовать эти данные во второй табличнойчасти обработки держать и запросами при смене строчки подтягивать... Таки, внимание, вопрос: "Хочу в таб. части обработки прикрутить рекв-т типа "ТаблицаЗначений". Есть варианты? " :) |
|||
|
1
ТелепатБот
гуру
16.09.09
✎
19:25
|
||||
|
2
sapphire
16.09.09
✎
19:27
|
(0) Ну и прикрути
|
|||
|
3
гг-ламер
16.09.09
✎
19:29
|
(2) Прикрутить - прикрутил. Как заполнить? :) Табличная часть не позволяет в себе хранить такой реквизит. Табличное поле позволяет его создать, визуально есть, а как туда таблицузначений засандалить - большой вопрос...
|
|||
|
4
Asmody
16.09.09
✎
19:31
|
(3) неправильный вариант - хранилище значения
|
|||
|
5
sapphire
16.09.09
✎
19:32
|
(3) Табличная чать не может, а элемент управления - может.
|
|||
|
6
sapphire
16.09.09
✎
19:32
|
(4) Витя, к чему такие сложности?
|
|||
|
7
sapphire
16.09.09
✎
19:32
|
есть реквизит - ТЗ, у ЭУ данные вяжем к этому реквизиту и всё
|
|||
|
8
Asmody
16.09.09
✎
19:33
|
правильный вариант: 2 таб.части и два дополнительных поля типа ИдСтрокиОсновнойТабЧасти. По нему ставится отбор неизменяемый пользователем во второй таб.части.
|
|||
|
9
Asmody
16.09.09
✎
19:34
|
(7) пропустил, что у него обработка. тогда да
|
|||
|
10
Asmody
16.09.09
✎
19:35
|
только такой вариант (ТЗ в реквизите) обрабатывать труднее, имхо
|
|||
|
11
гг-ламер
16.09.09
✎
19:43
|
(4) Задумалсо :)
(5) Для ламеров просьба поподробней. Грубо говоря, действующие лица: ТЧ- табличная часть обработки с неким набором реквизитов. Пусть это будет "Заказ" и "Клиент" для простоты ради. На форме создан элемент ТабТЧ с источником данных - ТЧ. Тип ставится оболочкой и недоступен для изменения - "внешняяобработка.табличнаячасть". Данный код позволяет создать колонку на элементе управления: ТЧ.Колонки.Создать("Состав",Новый ОписаниеТипов("ТаблицаЗначений")); ЭлементыФормы.ТабТЧ.СоздатьКолонки(); Но как эту колонку заполнить, имея таблицу значений с реквизитами: "Клиент", "Заказ", "Состав". "Состав" - реквизит типа таблицазначений. Чем бы эту колонку "Состав" из таблицы значений запихать в колонку "Состав" элемента управления? о_О |
|||
|
12
гг-ламер
16.09.09
✎
19:46
|
+(11) Попутал малость, код такой:
ЭлементыФормы.ТабТЧ.Колонки.Добавить("Состав",Новый ОписаниеТипов("ТаблицаЗначений")); |
|||
|
13
гг-ламер
16.09.09
✎
19:47
|
ну и, собственно, визуально колонку-то наблюдаю, а как туда данные запихать - представляю себе плохо.
|
|||
|
14
Serginio1
16.09.09
✎
19:53
|
Выгрузи Табличную часть в ТЗ , в тз прикрути полеТЗ , при записи выгружай из Тз в табличную часть.
Прикрути его как табличное поле например v8: два разных отбора |
|||
|
15
гг-ламер
16.09.09
✎
19:53
|
(7) Данные можно привязать только из реквизитов табличной части. А табличная часть реквизита с типом "таблицазначений" создать не дает.
|
|||
|
16
гг-ламер
16.09.09
✎
19:57
|
(14) бесполезно, если я правильно понял мысль. Вариант:
ТЧ_Обработки.Загрузить(ТаблицаЗначений_С_Нужным_Реквизитом_Типа_ТаблицаЗначений); Загрузит только тех, кто указан в реквизитах табличнойчасти обработки. |
|||
|
17
Serginio1
16.09.09
✎
20:05
|
Загрузить (Load)
Синтаксис: Загрузить(<Таблица>) Параметры: <Таблица> (обязательный) Тип: ТаблицаЗначений. Таблица значений, откуда загружается табличная часть. Колонки таблиц совмещаются по именам. Описание: Загружает табличную часть из таблицы значений. При этом все прежние строки табличной части удаляются. При загрузке значения в колонках табличной части заполняются значениями из колонок таблицы значений с совпадающими именами. Примечание: Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения. Пример: Состав.Загрузить(ТаблицаСостава); |
|||
|
18
Serginio1
16.09.09
✎
20:06
|
А что мешает в ТЧ_Обработки добавить это поле?
|
|||
|
19
гг-ламер
16.09.09
✎
20:08
|
(17) Ключевая фраза: " Колонки таблиц совмещаются по именам". Если такого совпадения нет - эта колонка просто игнорируется, к сожалению.
(18) Тип "ТаблицаЗначений" отсутствует, возможно выбрать только ссылочные типы вроде Справочников, документов, ну и число, строка, дата... |
|||
|
20
Serginio1
16.09.09
✎
20:09
|
Да я понял. Сейчас посмотрю. в 7 все на ура идет.
|
|||
|
21
гг-ламер
16.09.09
✎
20:10
|
Я вот лелеял смутную надежду, что можно както через ЭлементыФормы.ТабличноеПоле запихать этот реквизит, но как-то все это очень-очень зыбко...
|
|||
|
22
Serginio1
16.09.09
✎
20:22
|
Процедура Кнопка1Нажатие(Элемент)
// Вставить содержимое обработчика. Запрос= Новый Запрос; Запрос.Текст="ВЫБРАТЬ чего то там"; Запр=Запрос.Выполнить().Выгрузить(); Запр.Колонки.Добавить("Состав",Новый ОписаниеТипов("ТаблицаЗначений")); // Добавили колонку Для каждого Стр Из Запр Цикл стр.Состав=Запр.Скопировать(); // Установили значение КонецЦикла; ТабПоле= ЭлементыФормы.ТабличноеПоле1; ТабПоле.Данные="Запр"; ТабПоле.СоздатьКолонки(); КонецПроцедуры Процедура ТабличноеПоле1Выбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) // Вставить содержимое обработчика. ТекДок=ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока.Состав.ВыбратьСтроку(); ТекДок=ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока.ссылка; Форма=ТекДок.ПолучитьФорму(); Форма.Открыть(); КонецПроцедуры |
|||
|
23
гг-ламер
16.09.09
✎
20:26
|
(22) По-моему, отбор после таких махинаций
ТабПоле.Данные="Запр"; перестает работать? По крайней мере в интерактиве точно перестает... Но попробую, спасибо |
|||
|
24
Serginio1
16.09.09
✎
20:27
|
А у меня все работает. Только Запр это реквизит формы.
|
|||
|
25
Serginio1
16.09.09
✎
20:30
|
Реквизит фвормы это тот который на вкладке реквизиты с типом таблицаЗначений
|
|||
|
26
гг-ламер
16.09.09
✎
20:31
|
"Шайтан, как ты это сделал!" :) А если серьезно - спасибо. Реально работает. :)
|
|||
|
27
Serginio1
16.09.09
✎
20:33
|
На здоровье. Просто Табличное поле это всего навсего отобразитель данных.
А вот в сами данные и нужно что то добавлять |
|||
|
28
Фокусник
16.09.09
✎
20:33
|
(24) можно без реквизита формы: табПоле.значение = запр;
|
|||
|
29
Serginio1
16.09.09
✎
20:33
|
(28) Спасибо буду знать.
|
|||
|
30
гг-ламер
16.09.09
✎
20:47
|
(27) Ложка дегтя, я так спешил обрадоваться, что не обратил внимание на привязанную командную панель, в ней значок фильтра стал недоступен. Что я сделал не так? :(
(28) Не заполняет вроде тоже. Или я туплю не подетски, или отбор не работает... |
|||
|
31
гг-ламер
16.09.09
✎
20:57
|
+(30) Точно, смотрю в отладчике, у ЭлементыФормы.ТабличноеПоле1 пропадает свойство "ОТборСтрок" после выполнения
ТабПоле.Данные="Запр"; ( |
|||
|
32
Serginio1
16.09.09
✎
20:59
|
А к чему Командная панель привязана?
|
|||
|
33
гг-ламер
16.09.09
✎
21:01
|
К ЭлементыФормы.ТабличноеПоле1
|
|||
|
34
Фокусник
16.09.09
✎
21:02
|
(31) для ТЗ нет отбора
|
|||
|
35
гг-ламер
16.09.09
✎
21:05
|
(34) Так ради отбора и вся каша затеяна с табличнойчастью обработки. Стало быть, динамический отбор и реквизит типа "таблицазначений" - детальки из разных конструкторов?
|
|||
|
36
Serginio1
16.09.09
✎
21:08
|
(35) Впринципе то несложно и свой отбор для Тз написать
|
|||
|
37
Фокусник
16.09.09
✎
21:13
|
(35) если ТЗ нужна для ускорения отображения, то можно держать ее в кеше, например в соответствии, где ключом будет строкаТЧ, а значением нужная ТЗ.
|
|||
|
38
гг-ламер
16.09.09
✎
21:18
|
(36) Судя по всему, у меня по-любому без вариантов. :)
(36),(37) Спасибо за помощь. Отрицательный результут - тоже результат. Буду шаманить с таблицамизначений. |
|||
|
39
Serginio1
16.09.09
✎
21:20
|
Ну удачи тебе. Тоже многое для себя уяснил.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |