Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Получить программно документы по отбору в форме списка документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
vbi
Допустим есть форма списка документов. В форме списка устанавливаем отбор - видим отобранные документы. Вопрос: как получить эти документы программно в коде. То есть получается нужно взять отбор в форме списка, распарсить его и вставить условия в запрос - и запросом получить документы?
Vofka
Надо только те, что на экране видны или все, которые соответствуют отбору?
vbi
Цитата(Vofka @ 11.09.13, 16:14) необходимо зарегистрироваться для просмотра ссылки
Надо только те, что на экране видны или все, которые соответствуют отбору?


Та все что соответствуют отбору
logist
Программно получить установленный отбор, и на его основе составить запрос который вернет массив документов.
vbi
Цитата(logist @ 11.09.13, 16:27) необходимо зарегистрироваться для просмотра ссылки
Программно получить установленный отбор, и на его основе составить запрос который вернет массив документов.


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