Имя: Пароль:
1C
1С v8
Как получить данные динамического списка?
0 rotting
 
14.11.11
17:45
Есть ДинамическийСписок на управляемой форме, хочу отобрать стандартными методами нужные мне элементы, а потом программно их перебрать, не нашел как перебрать элементы отображаемые на экране
1 Buster007
 
14.11.11
17:54
можт не надо?)
2 rotting
 
14.11.11
17:55
та надо))))
3 Fragster
 
гуру
14.11.11
17:56
а зачем?
4 Buster007
 
14.11.11
17:57
(3) +1 )
5 rotting
 
14.11.11
17:57
пля....  я же написал в сабже
6 2S
 
14.11.11
17:57
ДС с запросом, все условия опиши в запросе...
какие проблемы?
7 rotting
 
14.11.11
17:58
записать туда какие-то данные, что-то типа Групповой обработки справочников и документов
8 mikecool
 
14.11.11
17:58
откуда данные в списке?
9 Buster007
 
14.11.11
17:58
нее ) зачем тебе перебирать элементы на форме?
10 2S
 
14.11.11
17:58
запрос!
по справочнику!
11 rotting
 
14.11.11
18:02
(8) справочник номенклатура
(9) хочу предоставить пользователю инструмент для заполнения ТЧ в справочнике номенклатура.
(10) как быстро и удобно составить запрос имея динамический список и отбор динамического списка, для обычного приложения можно было вот так:

Построитель = Новый ПостроительОтчета;
   Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Список);
   Выборка = Построитель.Результат.Выбрать();
   Пока Выборка.Следующий() Цикл
       Сообщить(Выборка.Ссылка);
   КонецЦикла;    


как в УФ?
12 rotting
 
14.11.11
18:15
ап.
13 Fragster
 
гуру
14.11.11
18:32
(11).2 да это нифига не ответ
14 izekia
 
14.11.11
18:38
(11) зачем построитель отчета??
15 rotting
 
14.11.11
18:43
(13) какой ответ нужен для получения ответа от тебя)?
16 rotting
 
14.11.11
18:44
(14) таким образом можно получить элементы, которые отображаются в текущий момент на форме
17 Fragster
 
гуру
14.11.11
18:44
(15) чем отображенные на экране строки отличаются от тех, которые на экран не попали?
18 izekia
 
14.11.11
18:45
(16) результат запроса их не вернет?
19 rotting
 
14.11.11
18:46
(17) ну допустим пользователь отобрал номенклатуру с условием "наименование содержит с.к."
20 rotting
 
14.11.11
18:46
(18) какого запроса, где его взять? Запрос то динамически формируется
21 Stepa86
 
14.11.11
18:47
Делаешь команду множественную с типом параметра - ссылка на номенклатуру, она появляется в твоей форме и в ее обработчик по нажатию падает массив выделенных номенклатур. Пользователей учим юзать ctrl+A и тыкать мышкой с зажатым шифтом и контролом.

Делал получение данных согласно дин. списку через СКД, передачу в него текста запроса и отборов, и компоновку в тз... но щас наврятли найду код
22 rotting
 
14.11.11
18:49
(21) это уже что-то, а через передачу запросов в СКД это я понимаю, искал простой метод типа (11) только под УФ
23 Fragster
 
гуру
14.11.11
18:51
(19) я к тому, что в (0) - "элементы отображаемые на экране". но ведь все, что юзер отберет - на экран может не вместиться.
24 Stepa86
 
14.11.11
18:51
(22) кода там не особо многа, особенно если запрос не будет меняться в дин. списке. Половину методов для работы с СКД можно из типовых передрать, из УТ11 например...

для получения таблицы из СКД на код:

//Формирует и возвращает таблицу значений по СКД
//Параметры:
//СКД - схема компоновки данных,
//ВнешниеНаборыДанных - Тип: Структура. Ключ структуры соответствует имени внешнего набора данных. Значение структуры - внешнему набору данных.
//
Функция ТаблицаСКД( СКД , ВнешниеНаборыДанных = Неопределено ) Экспорт
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить( СКД , СКД.НастройкиПоУмолчанию ,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать( МакетКомпоновки , ВнешниеНаборыДанных );
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
   ТаблицаЗначений = Новый ТаблицаЗначений;
   ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
   Возврат ТаблицаЗначений;
   
КонецФункции
25 rotting
 
14.11.11
18:53
(23) я понял, понимаю что список динамически считывается с БД (на то он и динамический), вот мне нужно отобрать и те, которые в экран не влезли
26 izekia
 
14.11.11
18:54
(20) чего??
   Построитель = Новый ПостроительЗапроса;
   Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(СправочникСписок);
   Выборка = Построитель.Результат.Выбрать();
   Пока Выборка.Следующий() Цикл
       Сообщить(Выборка.Ссылка);
   КонецЦикла;
27 izekia
 
14.11.11
18:56
в (18) построитель запроса имел в виду
28 Stepa86
 
14.11.11
18:56
(26) а как же отбор из дин. списка?
29 rotting
 
14.11.11
18:57
(26) Синтаксис:

Новый ОписаниеИсточникаДанных(<ИсточникДанных>)
Параметры:

<ИсточникДанных> (обязательный)

Тип: ТаблицаЗначений; РезультатЗапроса; ОбластьЯчеекТабличногоДокумента.
Описываемый источник данных.

где мне взять переменную с такими типами на УФ?
30 izekia
 
14.11.11
18:59
(28) (29) меня заинтересовало конкретное использование ПостроителяОтчета
я не претендовал на ответ в целом
31 rotting
 
14.11.11
19:00
(30) а жаль....   кто же ответ в целом подскажет???
32 Stepa86
 
14.11.11
19:03
(31) чем тебя команда то не устраивает?
33 izekia
 
14.11.11
19:03
(31) я пока не использую УФ, соответственно мб что-то забыл, но вроде как это достаточно просто сделать ..
34 Джинн
 
14.11.11
19:04
(31) В целом подсказываю - динамический список не предназначен для таких финтов. Поменяйте концепцию.
Для пример УТ11 при подборе использует таблицу значений, заполняемую результатами запроса.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn