Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Интерактивные возможности табличного документа          
Batchir Подменю пользователя
сообщение 08.02.09, 19:17
Сообщение #1

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

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

Расшифровки

Система "1С:Предприятие 8" поддерживает механизм расшифровок (drill-down, drill-through), когда пользователь щелкает на строке или ячейке отчета и получает более детальный отчет, если конечно это предусмотрено программистом.

Расшифровки делятся на стандартные и нестандартные. Стандартные расшифровки обрабатываются системой автоматически и не требуют дополнительных усилий от программиста, например, для документов будет открыта форма документа, а для элементов справочника будет открыта форма элемента. Если справочник редактируется в списке, то курсор будет установлен на текущем элементе в форме списка. Для выполнения нестандартной расшифровки предназначено событие ОбработкаРасшифровки.

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

Сама процедура "РасшифроватьСтроку" может выглядеть следующим образом (как пример):


Процедура РасшифроватьСтроку(Элемент, Расшифровка, СтандартнаяОбработка)
Если ТипЗнч(Расшифровка) = Тип("ДокументСсылка.ДоговорПродажи") Тогда

СтандартнаяОбработка = Ложь;
Отчет = Отчеты.АнализДоговора.Создать();
Отчет.Договор = Расшифровка; //заполняем реквизит отчета
Отчет.Сформировать(ЭлементыФормы.ПолеТабличногоДокумента1);
КонецЕсли;
КонецПроцедуры



Примечание 1. В модуле приложения (аналог глобального модуля в версии 7.7) больше нет события ОбработкаЯчейкиТаблицы. Вся обработка расшифровок должна быть произведена в модуле формы, где располагается элемент управления "ПолеТабличногоДокумента".

Примечание 2. Событие "ОбработкаРасшифровки" возникает при щелчке на ячейке или рисунке, содержащих расшифровку. Не путайте его с событием "Выбор", возникающим для всех ячеек и рисунков при двойном щелчке мыши или нажатии клавиши Enter, причем, сначала возникает событие "Выбор", а потом "ОбработкаРасшифровки".


Группировки

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

Самый простой способ добавить группировки в отчет — доверить эту задачу системе, тогда от программиста потребуются минимальные усилия. Необходимо всего лишь применить методы НачатьАвтоГруппировкуСтрок/НачатьАвтоГруппировкуКолонок и ЗакончитьАвтоГруппировкуСтрок/ЗакончитьАвтоГруппировкуКолонок, которые включают режим автоматической группировки строк или колонок соответственно. В этом режиме при вызове методов Вывести (для строк) и Присоединить (для колонок) указываются дополнительные параметры для группировки:

Вывести(<Таблица>, <Уровень>, <Имя группы>, <Открыта>)
Присоединить(<Таблица>, <Уровень>, <Имя группы>, <Открыта>)

При использовании группировок очень полезно установить свойство ячейки "АвтоОтступ" в какое-нибудь ненулевое значение, например, 5. Тогда система будет автоматически добавлять заданное количество пробелов слева текста ячейки, основываясь на текущем уровне группировки. В результате отчет приобретет удобный внешний вид для отображения иерархии данных.

Следующий пример выводит список товаров с группировками:



ТабДок = Новый ТабличныйДокумент;
Макет = Справочники.Номенклатура.ПолучитьМакет("Каталог");
Область = Макет.ПолучитьОбласть("Строка");

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

ТабДок.ЗакончитьАвтоГруппировкуСтрок();
ТабДок.Показать();


Примечания

Ячейки табличного документа могут иметь примечания, тогда в правом верхнем углу ячейки выводится маленький красный треугольник. При наведении курсора мыши на ячейку примечание показывается во всплывающем окне.

Программная установка примечаний реализуется следующим образом:


ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;
ТабДок.Очистить();

Макет = Справочники.Номенклатура.ПолучитьМакет("Каталог");
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл

ОбластьЯчеекМакета = Макет.Область("ЯчейкаНаименование");
ОбластьЯчеекМакета.Примечание.Текст = Выборка.Ссылка.Комментарий;

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

КонецЦикла;



Обратите внимание, что свойство "Примечание" у объекта "ОбластьЯчеекМакета" является объектом типа "Рисунок", а не простой строкой. Через этот объект можно редактировать внешний вид примечания, шрифт и цвет текста, фон, линии и т.д.

Резюме
- Табличный документ служит не только для печати документов и отчетов, но имеет также мощные интерактивные возможности. К таким возможностям относятся в первую очередь расшифровки, группировки и примечания (рассмотрены в этом разделе), а также сводные таблицы и элементы управления (будут рассмотрены в других разделах).
- Нестандартные расшифровки, т.е. обрабатываемые программистом, можно реализовать, если только табличный документ выводится в экранную форму (элемент управления "ПолеТабличногоДокумента").
- Самый простой способ задействовать группировки — это включить режим автогруппировок строк, а при выводе каждой области в табличный документ указывать уровень, к которому она относится. Рекомендуется также в макете установить свойство "Автоотступ" для нужных ячеек.
- Примечания "всплывают" при наведении курсора мыши на ячейку. Есть возможность изменить внешний вид примечаний средствами встроенного языка .

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 13:28
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!