|
Как управлять схемой компоновки для динамического списка? | ☑ | ||
---|---|---|---|---|
0
ssalikoff
31.05.24
✎
10:02
|
Здравствуйте!
На форму выводится динамический список. Текст динамического списка формируется программно, в обработчике события формы «ПриСозданииНаСервере». Хотелось бы программно управлять настройками полей запроса динамического списка. В конфигураторе это выглядит так: Пробовал такой способ СхемаКомпоновкиДанных = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
Поля = СхемаКомпоновкиДанных.НаборыДанных.НаборДанныхДинамическогоСписка.Поля; Так вот, в «Поля» нет никаких полей и они не появляются до самого завершения обработчкика «ПриСозданииНаСервере». Подскажите, кто знает, как до настройки этих полей добраться и где, в какой момент, инициализируется компоновка для динамического списка, если в конце процедуры «ПриСозданииНаСервере» компоновка ещё не готова, а потом, в других обработчиках, уже поздно.
|
|||
1
youalex
31.05.24
✎
10:11
|
Вот получил ты схему из ПолучитьИсполняемуюСхемуКомпоновкиДанных(), и что дальше с ней делать будешь? Это же не свойство ДС.
Изначальную задачу озвучь |
|||
2
Ненавижу 1С
31.05.24
✎
10:12
|
ПриЗагрузкеВариантаНаСервере
ПриЗагрузкеПользовательскихНастроекНаСервере |
|||
3
ssalikoff
31.05.24
✎
10:21
|
(2) ПриЗагрузкеПользовательскихНастроекНаСервере
посмотрел этот обработчик. В нём я никак не смог добраться до полей запроса СКД. |
|||
4
ssalikoff
31.05.24
✎
10:27
|
(1) Изначальная задача озвучена в стартовом топике.
Есть ДинамическийСписок. У него есть своя СКД. У этой СКД есть НаборыДанных. В каждом НабореДанных есть Поля. А у каждого Поля (тип ПолеНабораДанныхСхемыКомпоновкиДанных) есть куча свойств, например, «ВыражениеПредставления». И вот я хочу программно этими свойствами управлять. |
|||
5
FIXXXL
31.05.24
✎
10:32
|
||||
6
ssalikoff
31.05.24
✎
10:54
|
(5) Нет, это порожняк
|
|||
7
Maxsim24
31.05.24
✎
11:10
|
(0) Для получения настроек компоновки:
НастройкиКомпоновки =Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); |
|||
8
spiller26
31.05.24
✎
15:11
|
Вот примерно где-то здесь будет ответ:
ПолеНабораДанныхСхемыКомпоновкиДанных (DataCompositionSchemaDataSetField) Свойства: ВыражениеПредставления (PresentationExpression) ВыраженияУпорядочивания (OrderExpressions) Заголовок (Title) НаборДанныхПроверкиИерархии (HierarchyCheckDataSet) ОграничениеИспользования (UseRestriction) ОграничениеИспользованияРеквизитов (AttributeUseRestriction) Оформление (Appearance) ПараметрНабораДанныхПроверкиИерархии (HierarchyCheckDataSetParameter) ПараметрыРедактирования (EditParameters) Поле (Field) ПутьКДанным (DataPath) Роль (Role) ТипЗначения (ValueType) |
|||
9
ssalikoff
31.05.24
✎
15:51
|
(7) Нет. Поля запроса — это не настройки. Там их нет
|
|||
10
ssalikoff
31.05.24
✎
15:52
|
(8) И чем мне это может помочь? Я знаю, как синтакс-помощник открывается
|
|||
11
youalex
31.05.24
✎
16:30
|
кмк, такого нет, схема полученная из ПолучитьИсполняемуюСхемуКомпоновкиДанных() с самим ДС никак не связана, это самостоятельный объект.
все управление полями схемы ДС только через костыльные методы типа УстановитьОбязательноеИспользование() и иже |
|||
12
ssalikoff
01.06.24
✎
06:20
|
(11) Странно, потому что в статье на зазеркалье «Представление компоновки данных в динамическом списке»(https://wonderland.v8.1c.ru/blog/predstavlenie-komponovki-dannykh-v-dinamicheskom-spiske/?ysclid=lwu01i8fl2677080017) пишется о том, что
В версии 8.3.20 у полей динамического списка (как из набора данных, так и вычисляемых) появится новое свойство ВыражениеПредставления.
ВыражениеПредставления может быть задано интерактивно в конфигураторе (в редакторе динамического списка) или средствами встроенного языка. Вот как его средствами языка задать — непонятно. |
|||
13
dmt
01.06.24
✎
07:51
|
(0) так пробовал?
Список.Поля[0].ВыражениеПредставления |
|||
14
dmt
01.06.24
✎
08:18
|
в общем, если текст списка формируется программно, то и Список.Поля надо заполнять программно
|
|||
15
youalex
01.06.24
✎
10:04
|
(13) +
|
|||
16
ssalikoff
01.06.24
✎
13:29
|
(13)(15) Конечно. Я же в первом посте написал, что Поля — пустые.
Список.Поля.Количество() = 0 |
|||
17
GreenLab
01.06.24
✎
13:49
|
Использую вот такой вариант для модификации текста запроса для списка реализаций и добавления поля в список
&НаСервере Процедура ra_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) ЧастиЗапроса = СтрРазделить(Список.ТекстЗапроса, ","); ЧастиЗапроса.Вставить(1, " |ДокументРеализацияТоваровУслуг.ДоговорКонтрагента КАК ДоговорКонтрагента"); Список.ТекстЗапроса = СтрСоединить(ЧастиЗапроса, ","); НовыйЭлемент = Элементы.Вставить("СписокДоговорКонтрагента", Тип("ПолеФормы"), Элементы.Список,Элементы.СуммаДокумента); НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи; НовыйЭлемент.ПутьКДанным = "Список.ДоговорКонтрагента"; КонецПроцедуры При этом список полей не пустой.
|
|||
18
youalex
01.06.24
✎
14:22
|
(16) тогда возможно приоткрытии() можно ловить гарантированно (но это неправильно концептуально) может (2) ?
|
|||
19
dmt
01.06.24
✎
14:33
|
(16) в (0) ересь какая-то про СКД динамического списка. Изменение исполняемой схемы тебе никто не обещал. Возьми себя в руки и заполни Список.Поля
|
|||
20
dmt
01.06.24
✎
14:34
|
(17) и там есть добавленное тобой поле?
|
|||
21
GreenLab
01.06.24
✎
15:35
|
(20) Да
|
|||
22
ssalikoff
01.06.24
✎
18:20
|
(19) Я не понял. А нахрена мне их заполнять? Система ведь их как-то сама заполняет при исполнении запроса. Вопрос в том, в какой момент происходит эта инициализация и заполнение полей компоновки.
|
|||
23
ssalikoff
01.06.24
✎
18:28
|
(17) Странно. У меня аналогично сделано. В точно такой же процедуре точно так же переопределён текст запроса. В конце обработчика на точке останова показывает, что Поля пустые.
|
|||
24
FIXXXL
01.06.24
✎
21:59
|
(6) в башке у тебя порожняк
сформируй с нуля свой СКД для ДС и играйся как угодно |
|||
25
DrZombi
03.06.24
✎
07:09
|
(4) Зачем? Зачем вам управлять програмно тем, что не требует вашего управления :)
|
|||
26
DrZombi
03.06.24
✎
07:13
|
У ТС каша, но вот для ТС, на подумать... что так тоже лучше житЪ...
ПодробностиСхема запроса: практические примеры использования https://infostart.ru/1c/articles/1753707/ |
|||
27
dmt
03.06.24
✎
09:11
|
(22) ну сиди ной дальше
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |