Допустим есть форма списка документов. В форме списка устанавливаем отбор - видим отобранные документы. Вопрос: как получить эти документы программно в коде. То есть получается нужно взять отбор в форме списка, распарсить его и вставить условия в запрос - и запросом получить документы?
Надо только те, что на экране видны или все, которые соответствуют отбору?
Цитата(Vofka @ 11.09.13, 16:14) необходимо зарегистрироваться для просмотра ссылки
Надо только те, что на экране видны или все, которые соответствуют отбору?
Та все что соответствуют отбору
Программно получить установленный отбор, и на его основе составить запрос который вернет массив документов.
Цитата(logist @ 11.09.13, 16:27) необходимо зарегистрироваться для просмотра ссылки
Программно получить установленный отбор, и на его основе составить запрос который вернет массив документов.
Может кто писал уже такую процедуру парсинга отбора?
Я бы попробовал сделать через Документы.МойДокумент.Выбрать(). Там 3-й параметр - это Отбор в виде Структуры. Так вот, по-моему, совсем не сложно обойти в цикле все отборы и сформировать соответствующую структуру. Единственное ограничение - это вид сравнения Равно. Короче, по-моему, вполне не плохой вариант.
Не нужен "парсинг отбора" в данном случае. Берем отбор и обходим элементы, по применению собираем данные. Тут может идти речь скорее о переводе данных отбора в язык запроса. Но я бы в данном случае воспользовался бы построителем и запихал бы в него этот же отбор практически без изменений.
Четкого ответа на тему нет, вот рабочий вариант. Может кому пригодится:
Источник = Новый ОписаниеИсточникаДанных(ДокументСписок);
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Источник;
Построитель.Выполнить();
ТЗ = Построитель.Результат.Выгрузить();
И делов то) Чтоб в следующий раз в поиске в Гугл найти ответ в этой теме.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.