|
Перебрать динамический список, обычные формы | ☑ | ||
---|---|---|---|---|
0
stmnf
04.10.19
✎
03:22
|
Здравствуйте
Насколько успел ознакомиться, в УФ что-то такое добавили (через одно место, правда, как всегда), что можно получить текущий состав, например, журнала документов. А что в обычных формах, есть методы? Задача - нажав на кнопку, распечатать все, что отобрано в журнале. |
|||
1
stmnf
04.10.19
✎
03:23
|
*Под журналом понимается форма списка документа.
|
|||
2
Свин-опёр
04.10.19
✎
03:38
|
Событие ПриПолученииДанных для списка документов (не для формы).
МассивДокументов = Новый Массив; Для Каждого Оформление Из ОформленияСтрок Цикл Если Оформление.ДанныеСтроки <> НеОпределено Тогда МассивДокументов.Добавить(Оформление.ДанныеСтроки.Ссылка); КонецЕсли; КонецЦикла; |
|||
3
ДенисЧ
04.10.19
✎
03:55
|
Взять список из формы и засунуть в построитель.
|
|||
4
catena
04.10.19
✎
05:55
|
(2)ПриПолученииДанных у динамического списка?
|
|||
5
catena
04.10.19
✎
05:56
|
(0)Динамический список на обычной форме?
|
|||
6
DrWatson
04.10.19
✎
09:11
|
(4) ПриПолученииДанныхНаСервере - есть такое, уже более 2-х лет с 8.3.10.
|
|||
7
catena
04.10.19
✎
10:30
|
(6)Прикольно :) У меня 8.2.
|
|||
8
ам794123
04.10.19
✎
10:40
|
(0) Динамический список строится на основе СКД. Поэтому все методы системы компоновки данных доступны. независимо от типа форм.
|
|||
9
catena
04.10.19
✎
10:41
|
(8)Вот не говорите только мне, что еще и динамический список на обычной форме бывает.
|
|||
10
ам794123
04.10.19
✎
10:49
|
(9) автор пишет что бывает, а я не проверял, у меня таких конф давно не было.
|
|||
11
xenos
04.10.19
✎
10:55
|
Особенности использования события ПриПолученииДанных табличного поля
Событие ПриПолученииДанных используется для оформления ячеек строк данных, отображаемых табличным полем. Обработчик данного события вызывается табличным полем в тех же случаях, что и обработчик события ПриВыводеСтроки, т.е. при обновлении данных, отображаемых табличным полем или при поиске по подстроке. Важно отметить, что обработчик данного события вызывается табличным полем перед вызовом обработчиков события ПриВыводеСтроки для всех видимых строк табличного поля. Основным отличием данного события от события ПриВыводеСтроки является то, что в обработчике события ПриПолученииДанных можно изменять настройки ячеек группы строк, а не одной строки, как в обработчике события ПриВыводеСтроки. Обрабатывая данное событие можно изменять шрифт, цвет фона или текста, как определенной ячейки, так и всей строки табличного поля, устанавливать высоту или видимость ячеек строки табличного поля, а также устанавливать картинку, флажок или новый текст в ячейке. Параметром данного события является объект типа ОформленияСтрок - коллекция объектов типа ОформлениеСтроки, являющихся оформлениями видимых строк табличного поля. Важно отметить, что в некоторых случаях обработчик события ПриПолученииДанных может вызываться табличным полем при обновлении более одного раза. Например, если текущая строка табличного поля находится в середине видимой области, то при обновлении обработчик события ПриПолученииДанных будет вызван табличным полем два раза: первый раз для группы строк, начиная с текущей строки до верхней видимой и второй раз для строки, следующей за текущей до нижней видимой строки. Такое поведение табличного поля связано с тем, что при обновлении табличное поле пытается сохранить позицию текущей строки в видимой области. Поясним использование события ПриПолученииДанных на следующем примере. Пусть существует форма списка справочника "Номенклатура" с двумя табличными полями. Пусть одно из табличных полей отображает указанный список справочника как дерево, а другое как иерархический список. Требуется в табличном поле, отображающем данные как иерархический список, отображать остатки по позициям номенклатуры. Наиболее эффективным способом для решения данной задачи является использование события ПриПолученииДанных. В обработчике данного события формируется запрос к регистру накопления "УчетНоменклатуры" для получения остатков. В качестве параметра данного запроса передается массив, содержащий ссылки на отображаемые строки табличного поля. Затем выполняется запрос и получается выборка. Полученная выборка обходится и значения остатков устанавливаются ячейке "Остаток". Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок) // Соответствие создается для заполнения остатков в строках табличного поля Соответствие = Новый Соответствие; // Заполнение параметра - массива значений ссылками на отображаемые строки табличного поля СсылкиМассив = Новый Массив; Для каждого Стр из ОформленияСтрок Цикл СсылкиМассив.Добавить(Стр.ДанныеСтроки.Ссылка); Соответствие.Вставить(Стр.ДанныеСтроки.Ссылка, Стр); КонецЦикла; // Сформировать запрос для получения остатков ЗапросОстатка = Новый Запрос; ЗапросОстатка.Текст = "ВЫБРАТЬ | УчетНоменклатурыОстатки.Номенклатура, | УчетНоменклатурыОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.УчетНоменклатуры.Остатки(, Номенклатура В (&Номенклатура)) КАК УчетНоменклатурыОстатки"; ЗапросОстатка.УстановитьПараметр("Номенклатура", СсылкиМассив); Выборка = ЗапросОстатка.Выполнить().Выбрать(); //Вывести остаток в строку, найденную в соответствии по номенклатуре из запроса Пока Выборка.Следующий() Цикл Соответствие.Получить(Выборка.Номенклатура).Ячейки.Остаток.Значение = Выборка.КоличествоОстаток; КонецЦикла; КонецПроцедуры https://its.1c.ru/db/metod8dev#content:2805:hdoc |
|||
12
stmnf
04.10.19
✎
14:00
|
Спасибо
Я так понимаю, надо ПриПолученииДанных сохранить куда-нибудь список документов, чтобы потом его распечатать при нажатии на кнопку? Или при нажатии на кнопку вызовется этот метод? Или его как-то можно вызвать искусственно, Форма.Обновить() там? В общем, поэкспериментирую. |
|||
13
unenu
04.10.19
✎
14:09
|
(12) ни фига не выйдет - в списке будут только то, что система "планирует" показать на клиенте.
правильнее выполнить компоновку списка в отдельном компоновщике в тз с настройками из списка. |
|||
14
stmnf
04.10.19
✎
14:13
|
(13) Ну, в принципе, там не должно быть больше, чем помещается на экране. Заодно защита от дурака некоторая. Впрочем, посмотрю.
Насчет компоновщика - вроде не так давно что-то такое добавили: http://v8.1c.ru/o7/201404list/index.htm Это для всех форм или управляемых только? |
|||
15
sirsp
04.10.19
✎
14:25
|
(0) Как уже писали в (3) :
Построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(СправочникСписок); ТЗ = Построитель.Результат.Выгрузить(); |
|||
16
kamila0713
04.10.19
✎
16:29
|
(11) (6) ПриВыводеСтроки, как по мне, лучше
|
|||
17
kamila0713
04.10.19
✎
16:33
|
ПриПолученииДанных - это еще разобраться, как работает надо. зависит еще от того, где и как ты отбор организовываешь. Просто еще, как вариант имей в виду ПриВыводеСтроки
|
|||
18
hhhh
04.10.19
✎
16:46
|
думаю, всё проще. Нужно нажать "Вывести список"
|
|||
19
kamila0713
04.10.19
✎
16:54
|
(18) ХэдХантер +++++
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |