|   |   | 
| 
 | Модификация запроса динамического списка | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Не нашел)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |