|
Модификация запроса динамического списка | ☑ | ||
---|---|---|---|---|
0
AAA
07.01.22
✎
18:19
|
Всем доброго вечера и хорошего настроения!
Пните в нужном направлении, можно ли, а если можно, то как проще это сделать. В формах списков различных документов в расширении модифицировал запросы списков. Все отлично работает, использую съему запроса, компактно и не трогая руками текст запроса. Но вот понадобилось сделать тоже самое еще для одного вида документов и ..облом. У этого списка запрос не произвольный, а с заданной основной таблицей. В этом случае в ПриСозданииНаСервере формы списка нет никакого текста запроса и нечего модифицировать )) Как поступить в этом случае? |
|||
1
hhhh
07.01.22
✎
18:24
|
(0) в свойствах динамического списка поставить галку ПроизвольныйЗапрос, не?
|
|||
2
AAA
07.01.22
✎
18:30
|
(1)это самый последний, хирургический вариант. Модификация запросов для других документов работает даже без добавления в расширения формы списка, все делалось с использованием общего модуля МодификацияКонфигурацииПереопределяемый
|
|||
3
shuhard
07.01.22
✎
18:35
|
(2) модификация запроса выходит за пределы отборов ?
|
|||
4
AAA
07.01.22
✎
18:37
|
(3)не понял вопроса. В запрос добавляется связка с регистром сведений для извлечения нужного признака.
|
|||
5
RomanYS
07.01.22
✎
18:39
|
(2) Так что мешает это сделать кодом там же
Форма.ДС.ПроизвольныйЗапрос = Истина; |
|||
6
pechkin
07.01.22
✎
18:40
|
(2) в чем проблема поставить галку програмно?
|
|||
7
AAA
07.01.22
✎
18:42
|
(5)Пока ничего не мешает, потому и спрашиваю. Очень редко с этим имею дело. А текст как получить, чтобы его модифицировать ?
|
|||
8
pechkin
07.01.22
✎
18:45
|
(7) с 0 писать. Есть один нюанс. Псевдонимы полей Ссылка, Дата, Номер по умолчанию задаются на английском. Если напишешь по русски, то придется колонки перепривязывать
|
|||
9
RomanYS
07.01.22
✎
18:48
|
(7) РеквизитДС = ЭтотОбъект.ДС;
РеквизитДС.ПроизвольныйЗапрос = Истина; РеквизитДС.ТекстЗапроса = "Выбрать * из "+РеквизитДС.ОсновнаяТаблица; |
|||
10
RomanYS
07.01.22
✎
18:49
|
(0)>> Все отлично работает, использую съему запроса, компактно и не трогая руками текст запроса
Показал бы пример, интересно |
|||
11
AAA
07.01.22
✎
18:51
|
(10) вот что то такое:
Процедура МодификацияЗапросаСписка(Форма, ИмяСписок) Экспорт ТекстЗапроса = Форма[ИмяСписок].ТекстЗапроса; СхемаЗапроса = Новый СхемаЗапроса; СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса); // при создании схема содержит один пакет и один оператор в пакете. Пакет = СхемаЗапроса.ПакетЗапросов[0]; Оператор = Пакет.Операторы[0]; ОсновнойИсточник = Оператор.Источники[0]; НовыйИсточник = Оператор.Источники.Добавить("РегистрСведений.РазрешениеНаРедактирование", "РазрешениеНаРедактирование"); ОсновнойИсточникПсевдоним = ОсновнойИсточник.Источник.Псевдоним; НовыйИсточник.Соединения.Добавить(ОсновнойИсточник, ОсновнойИсточникПсевдоним + ".Ссылка = РазрешениеНаРедактирование.Ссылка"); Для Каждого стрСоед из НовыйИсточник.Соединения Цикл стрСоед.ТипСоединения = ТипСоединенияСхемыЗапроса.ПравоеВнешнее; КонецЦикла; Оператор.ВыбираемыеПоля.Добавить("ВЫБОР |КОГДА РазрешениеНаРедактирование.Ссылка ЕСТЬ NULL | ТОГДА ЛОЖЬ |ИНАЧЕ РазрешениеНаРедактирование.Редактирование |КОНЕЦ"); Пакет.Колонки[Пакет.Колонки.Количество() - 1].Псевдоним = "Редактирование"; Форма[ИмяСписок].ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса(); КонецПроцедуры |
|||
12
AAA
07.01.22
✎
19:12
|
(9)Спасибо, получилось. Только у этой таблицы еще одна особенность - нет обработчика "Выбор", который мне нужен, чтобы обработать щелчки на добавленной колонке. С этим вроде разбирался год назад, но нифига не помню ))
|
|||
13
RomanYS
07.01.22
✎
19:16
|
(12) что-то типа УстановитьДействие должно помочь, только вот с размещением самого обработчика могут проблемы возникнуть
|
|||
14
AAA
07.01.22
✎
19:18
|
(13)а сейчас, при пустом "Выбор" как форма списка понимает, что при двойном щелчке надо открыть форму документа ?
|
|||
15
pechkin
07.01.22
✎
19:19
|
(14) это платформенное
|
|||
16
AAA
08.01.22
✎
04:42
|
Всем спасибо. Все получилось.
В расширении, для нужной формы списка в &После ПриСозданииНаСервере написал УстановитьДействие("Выбор", "СписокВыбор"), Процедуру "СписокВыбор" определил в этом же модуле формы расширения. Кроме этого, в некоторые формы программно добавляются элементы с обработчиками. С визуальным добавлением элементов уже огребал неприятности, когда добрая половина формы куда то сьезжает или пропадает. Непонятно одно, почему разработчики УТ 11 к разным формам списка применяют разные техники и по разному называют списки, где просто "Список", а где то и "ПриходныеКассовыеОрдераСписок" )) Хотелось вообще обойтись без переноса форм списков в расщирение, но это видимо пока не судьба |
|||
17
Мимохожий Однако
08.01.22
✎
06:25
|
(16) Вопрос "Почему разработчики" в большинстве случаев риторические. Можно погадать, что разные команды разработчиков в разное время имели разную квалификацию и другие стандарты кодирования. Но ты молодЦа. )
|
|||
18
AAA
19.01.22
✎
19:47
|
Рано обрадовался. Не работают отборы по периоду документов. Остальные отборы вроде норм
|
|||
19
AAA
19.01.22
✎
19:54
|
Причем как то странно, в формах списков документов работают, а в формах списков, например в обработке ЖурналДокументовПродажи не работает
|
|||
20
AAA
19.01.22
✎
19:58
|
Пардон, вроде нашел ))
|
|||
21
AAA
19.01.22
✎
19:59
|
Не нашел)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |