helpf.pro
Регистрация
 0 
Распечатать

Особенности использования события ПриПолученииДанныхТабличногоПоля

Событие ПриПолученииДанных использется для оформления ячеек строк данных, отображаемых табличным полем. Обработчик данного события вызывается табличным полем в тех же случаях, что и обработчик ПриВыводеСтроки, т.е. при обновлении данных, отображаемых табличным полем или при поиске по подстроке. Важно отметить, что обработчик данного события вызывается табличным полем перед вызовом обработчиков события ПриВыводеСтроки для всех видимых строк табличного поля. Основным отличием данного события от события ПриВыводеСтроки является то, что в обработчике события ПриПолученииДанных можно изменять настройки ячеек группы строк, а не одной строки как в обработчике события ПриВыводеСтроки.

Обрабатывая данное событие можно изменять шрифт, цвет фона или текста, как определенной ячейки, так и всей строки табличного поля, устанавливать высоту или видимость ячеек строки табличного поля, а также устанавливать картинку, флажок или новый текст в ячейке. Параметром данного события является объект типа ОформлениеСтрок - коллекция объектов типа ОформлениеСтроки, являющихся оформлениями строк табличного поля.

Важно отметить, что в некоторых случаях обработчик события ПриПолученииДанных может вызываться табличным полем более одного раза. Например, если текущая строка табличного поля находится в середине видимой области, то при обновлении обработчик события ПриПолученииДанных будет вызван табличным полем два раза: первый раз для группы строк, начиная с текущей строки до верхней видимой и второй раз для строки, следующей за текущей до нижней видимой строки. Такое поведение табличного поля связано с тем, что при обновлении табличное поле пытается сохранить позицию текущий строки в видимой области.

Поясним использовании события ПриПолученииДанных на следующем примере. Пусть существует форма списка справочника "Номенклатура" с двумя табличными полями. Пусть одно из табличных полей отображает указанный список справочника как дерево, а другое как иерархический список. Требуется в табличном поле, отображающем данные как иерархический список, отображать остатки по позициям номенклатуры.

Наиболее эффективным способом решения данной задачи является использование события ПриПолученииДанных. В обработчике данного события формируется запрос к регистру накопления "УчетНоменклатуры" для получения остатков. В качестве параметра данного запроса передается массив, содержащий ссылки на отображаемые строки табличного поля. Затем выполняется запрос и получается выборка. Полученная выборка обходится и значения остатков устанавливаются в ячейке "Остаток".
Код 1C v 8.х
 Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)

// Соответствие создается для заполнения остатков в строках табличного поля
Соответствие = Новый Соответствие;

// Заполнение параметра - массива значений ссылками на отображаемые строки

// табличного поля
СсылкиМассив = Новый Массив;
Для каждого Стр из ОформленияСтрок Цикл
СсылкиМассив.Добавить(Стр.ДанныеСтроки.Ссылка);
Соответствие.Вставить(Стр.ДанныеСтроки.Ссылка, Стр);
КонецЦикла;

// Сформировать запрос для получения остатков
ЗапросОстатка = Новый Запрос;
ЗапросОстатка.Текст = "ВЫБРАТЬ
| УчетНоменклатурыОстатки.Номенклатура,
| УчетНоменклатурыОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.УчетНоменклатуры.Остатки(,

| Номенклатура В (&Номенклатура)) КАК

| УчетНоменклатурыОстатки";

ЗапросОстатка.УстановитьПараметр("Номенклатура", СсылкиМассив);
Выборка = ЗапросОстатка.Выполнить().Выбрать();

// Вывести остаток в строку, найденную в соответствии по номенклатуре из

// запроса
Пока Выборка.Следующий() Цикл
Соответствие.Получить(Выборка.Номенклатура).Ячейки.Остаток.Значение =

Выборка.КоличествоОстаток;
КонецЦикла;

КонецПроцедуры
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 7774
 0 
Распечатать
Возможно, вас также заинтересует
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 2
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р,...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Excel файл как Внешний источник данных 4
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . ...
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Автоматизация обмена данных используя обработку "Универсальный обмен данными в формате XML" 3
Автоматизация обмена между базами используя обработку " Универсальный обмен данными в формате XML" В основу данной публикации положены найденные мною материалы по cозданию обмена между двумя базами с использованием ...
Посмотреть все результаты поиска похожих
Комментарии
E_Migachev
06.12.2011 10:54Комментарий: 2
E_Migachev
ab, это как раз сейчас разрабатываю *13
ab
05.12.2011 22:03Комментарий: 1
ab
Было бы классно если с статьях как-то подбиралась связанная информация.
Например: см. так же Размещение колонки с остатками в списке, использование ПриПолученииДанных
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.