1С табличный документ расшифровка

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

Для чего используется расшифровка и как ей пользоваться

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

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

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

Заполнение расшифровки

Расшифровка представляет собой значение, которое присвоено свойству "Расшифровка" области ячеек табличного документа или рисунку табличного документа. Заполнить данное свойство можно одним из следующих способов:

1. Непосредственно присвоив данному свойству значение.

Этот способ может быть удобным в том случае, если табличный документ заполняется при помощи встроенного языка без использования макета и построителя отчета.

Пример:

В данном примере расшифровка устанавливается первой ячейке первой строки поля табличного документа.

2. Использовать параметр расшифровки и метод "Вывести".

Часто табличный документ заполняется при помощи макета и метода табличного документа "Вывести". В таком случае в ячейке макета можно указать свойство "Параметр расшифровки". При вызове метода "Вывести", этот параметр будет использован для заполнения значения свойства расшифровки.

Пример:

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

Отметим, что с параметром расшифровки работа ведется также как и с обычными параметрами, размещенными в ячейках макета.

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

Пример того, как это можно сделать, воспользовавшись объектом Структура:

Аналогично выполняется заполнение расшифровки рисунка табличного документа.

Обратите внимание на свойство "ИспользованиеРасшифровки" ячейки табличного документа. Это свойство указывает, для какой области будет возможно вызвать расшифровку. Если данное свойство имеет значение "Ячейка", обработка расшифровки будет выполняться только для этой ячейки. Если "Строка", то расшифровка будет обрабатываться для всей строки, в которой расположена данная ячейка. Если же данное свойство имеет значение "Без обработки", то расшифровка для данной ячейке не будет обрабатываться вовсе, даже если ячейка будет содержать значение расшифровки.

Обработка расшифровки

После того, как расшифровка заполнена, следует позаботиться об ее обработке.

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

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

Пример:

В тексте обработчика события можно выполнить любые действия по обработке расшифровки. Например, запустить на исполнение некоторый отчет, передав ему в качестве параметра значение расшифровки.

Вопрос: Подскажите пожалуйста, каким образом можно сделать следующее.

У меня есть выводимый в табличный документ результат запроса, к ячейке есть расшифровка.

Я хочу чтобы при двойном клике на ячейку выполнялась процедура которая к примеру запускает отчет по расшифровке ячейки.

Ответ: Расшифровки бывают стандартные и нестандартные.

I) Стандартные:

может использоваться как непосредственно в табличном документе, так и в объекте ПолеТабличногоДокумента (т.е.табличный документ, размещенный не в отдельном окне, а непосредственно на форме).

Чтобы Расшифровка сработала, должны выполняться 3 условия:

1) Для ячейки табличного документа, из которой мы хотим вызвать Расшифровку, должно быть установлено свойство ПараметрРасшифровки. Например, мы хотим, чтобы по двойному щелчку на ячейке с названием контрагента открывалась форма элемента справочника Контрагента, чтобы можно было уточнить какие-то данные, которые в отчет не выводятся. Задаем свойству ПараметрРасшифровки какое-нибудь значение, например, РасшифровкаКонтрагента.

2)В процессе вывода областей макета в результирующий табличный документ нужно ОБЯЗАТЕЛЬНО ПРИСВОИТЬ параметру расшифровки значение нужного типа, например:

3)Должен быть обеспечен запрет редактирования ячейки с расшифровкой, т.е. нужно указать

ТабДок.ТолькоПросмотр = Истина;

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

II) Нестандартные:

по двойному щелчку на ячейке с расшифровкой можно вызвать свою процедуру. Для реализации этого следует выполнить несколько условий:

1)Вывод табличного документа должен осуществляться в объект ПолеТабличногоДокумента;

2)Должно быть присвоено значение свойству ячейки ПараметрРасшифровки, например, РасшифровкаКонтрагента.

3)Параметру расшифровки РасшифровкаКонтрагента присваивается заполненный при формировании табличного документа нужными значениями СписокЗначений или чаще Структура. В частности, может передаваться имя стандартного отчета конфигурации и параметров, которые нужно задать в форме отчета, например, период дат, номер счета и т.д. А потом этот отчет вызывается как процедура.

4)Для объекта ПолеТабличногоДокумента свойство ТолькоПросмотр нужно установить в значение Истина.

5)Код пользовательской процедуры помещается в процедуру

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

Расшифровки бывают стандартные и нестандартные.

I) Стандартные:

может использоваться как непосредственно в табличном документе, так и в объекте ПолеТабличногоДокумента (т.е.табличный документ, размещенный не в отдельном окне, а непосредственно на форме).

Чтобы Расшифровка сработала, должны выполняться 3 условия:

1) Для ячейки табличного документа, из которой мы хотим вызвать Расшифровку, должно быть установлено свойство ПараметрРасшифровки. Например, мы хотим, чтобы по двойному щелчку на ячейке с названием контрагента открывалась форма элемента справочника Контрагента, чтобы можно было уточнить какие-то данные, которые в отчет не выводятся. Задаем свойству ПараметрРасшифровки какое-нибудь значение, например, РасшифровкаКонтрагента.

2) В процессе вывода областей макета в результирующий табличный документ нужно ОБЯЗАТЕЛЬНО ПРИСВОИТЬ параметру расшифровки значение нужного типа, например:

3) Должен быть обеспечен запрет редактирования ячейки с расшифровкой, т.е. нужно указать

В свойствах самой ячейки параметр "Защита" в группе "Основные", необходимо установить в Истина (включить флаг).

II) Нестандартные:

по двойному щелчку на ячейке с расшифровкой можно вызвать свою процедуру. Для реализации этого следует выполнить несколько условий:

1) Вывод табличного документа должен осуществляться в объект ПолеТабличногоДокумента;

2) Должно быть присвоено значение свойству ячейки ПараметрРасшифровки, например, РасшифровкаКонтрагента.

3) Параметру расшифровки РасшифровкаКонтрагента присваивается заполненный при формировании табличного документа нужными значениями СписокЗначений или чаще Структура. В частности, может передаваться имя стандартного отчета конфигурации и параметров, которые нужно задать в форме отчета, например, период дат, номер счета и т.д. А потом этот отчет вызывается как процедура.

4) Для объекта ПолеТабличногоДокумента свойство ТолькоПросмотр нужно установить в значение Истина.

5) Код пользовательской процедуры помещается в процедуру

ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
// первой строкой в ней должна быть такая:

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

Оцените статью
Много толка
Добавить комментарий