Основная страница

Глава 13
Работа с Журналами документов


Контекст работы с журналами документов

Журнал документов — средство для работы со списком документов. В терминах языка журнал не является специальным типом данных (он не имеет значения, его нельзя создать при помощи функции СоздатьОбъект).

С журналом в системе связана форма отображения списка документов и программный модуль формы журнала документов (см. «Виды программных модулей»). В локальном контексте этого программного модуля непосредственно доступны реквизиты формы журнала. Кроме того, здесь непосредственно доступен атрибут «только для чтения» — ТекущийДокумент, содержащий значение выбранного в журнале документа.

Атрибуты контекста Модуля формы журнала документов

Описанный в данном разделе атрибут можно вызывать только в Модуле формы журнала (см. «Виды программных модулей»).

ТекущийДокумент

Синтаксис:

ТекущийДокумент

Англоязычный синоним:

CurrentDocument

Описание:

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

ТекущийДокумент.ТекущийДокумент()

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

Пример:

// только в модуле Формы журнала документа

// ———————————————————————————————————————

функция Операция()

   Если Число(ТекущийДокумент.Выбран()) > 0 Тогда

      Возврат "" + ТекущийДокумент.ДатаДок + " " + ТекущийДокумент.Вид;

   Иначе

      Возврат "Пусто";

   КонецЕсли;

КонецФункции

//————————————————————————————————————————

Функция ЖурналСумма()

   Если Число(ТекущийДокумент.Выбран()) > 0 тогда

      Возврат Константа.МинЗарплата.Получить(ДатаДок);

   Иначе

      Возврат 0;

   КонецЕсли;

КонецФункции

Методы контекста Модуля формы журнала документов

Описанные в данном разделе методы доступны только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

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

ВидыОтбора

Установить доступные виды отборов журнала для вызова их в интерактивном режиме.

Синтаксис:

ВидыОтбора(<СписокИменОтборов>)

Англоязычный синоним:

KindsOfSelection

Параметры:

<СписокИменОтборов>

Необязательный параметр. Строковое выражение, содержащее список имен отборов для журнала. Виды указываются через запятую. Если вместо списка — символ "*", то значит для журнала используются все назначенные в конфигураторе виды отборов.

Возвращаемое значение:

Строковое значение, содержащее текущий список имен отборов для журнала, разделенных запятыми (на момент до исполнения метода).

Описание:

Метод ВидыОтбора устанавливает доступные виды отборов журнала для вызова их в интерактивном режиме.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

ВидыОтбора("Склад, Клиент, Автор");

ЗакладкиОтбора

Установить в форме журнала закладки для интерактивного осуществления отбора.

Синтаксис:

ЗакладкиОтбора(<ИмяОтбора>, <ФлагОтбораЗначенийВИнтервалеЖурнала>,

               <ФлагУстановкиЗначенияОтбора>, <3начение0тбора>)

Англоязычный синоним:

TabCtrlSelection

Параметры:

<ИмяОтбора>

Строковое выражение, содержащее имя отбора.

<ФлагОтбораЗначенийВИнтервалеЖурнала>

Числовое выражение: 1 — текущие значения отбора для закладок выбираются только по документам в установленном интервале журнала; 0 — текущие значения отбора для закладок выбираются по всем документам журнала.

<ФлагУстановкиЗначенияОтбора>

Числовое выражение: 1 — для отображения сразу выбирается отбор по параметру <3начение0тбора>; 0 — текущее значение отображаемой закладки отбора устанавливается на первое существующее значение.

<3начение0тбора>

Значение отбора.

Описание:

Метод ЗакладкиОтбора устанавливает в форме журнала закладки для интерактивного осуществления отбора.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

ЗакладкиОтбора("Склады", 1, 1, Константа.ОснСклад);

УстановитьОтбор

Установить отбор журнала.

Синтаксис:

УстановитьОтбор(<ИмяОтбора>, <3начение0тбора>)

Англоязычный синоним:

SetSelection

Параметры:

<ИмяОтбора>

Строковое выражение — имя отбора. Если это значение пустое, то отбор отключается.

<3начениеОтбора>

Значение отбора.

Описание:

Метод УстановитьОтбор принудительно устанавливает отбор для журнала.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Замечание. Во всех журналах, кроме журнала подчиненных документов, работает отбор по виду документа. В этом случае синтаксис вызова метода следующий:

УстановитьОтбор(<ВедДокумента>)

Параметры:

<ВидДокумента>

Строковое выражение — вид документа отбора.

Пример:

Изм = УстановитьОтбор("Склады", Склад1);

ПолучитьОтбор

Возвратить текущее значение отбора журнала.

Синтаксис:

ПолучитьОтбор(<ИмяОтбора>, <3начение0тбора>)

Англоязычный синоним:

GetSelection

Параметры:

<ИмяОтбора>

Имя переменной, куда вернется строковое значение имени отбора.

<3начениеОтбора>

Имя переменной, куда вернется значение отбора.

Возвращаемое значение:

Числовое значение: 1 — есть отбор; 0 — если нет отбора.

Описание:

Метод ПолучитьОтбор возвращает текущее значение отбора журнала. Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

Изм = ПолучитьОтбор();

УстановитьИнтервал

Установить интервал журнала.

Синтаксис:

УстановитьИнтервал(<ДатаНач>, <ДатаКон>, <ФлагИзменения>)

Англоязычный синоним:

SetRange

Параметры:

<ДатаНач>

Выражение типа «дата» — начало интервала журнала.

<ДатаКон>

Выражение типа «дата» — конец интервала журнала.

<ФлагИзменения>

Необязательный параметр. Этим флагом регулируется возможность интерактивного изменения интервала журнала. 1 — пользователь может изменить интервал журнала интерактивно, 0 — пользователь не может интерактивно изменить интервал журнала.

Описание:

Метод УстановитьМнтервал позволяет установить интервал журнала. Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

УстановитьИнтервал(НИ, КИ);

НачалоИнтервала

Возвратить дату начала интервала журнала.

Синтаксис:

НачалоИнтервала()

Англоязычный синоним:

BegOfRange

Возвращаемое значение:

Значение даты начала интервала журнала.

Описание:

Метод НачалоИнтервала позволяет получить дату начала интервала журнала.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

НИ = НачалоИнтервала();

КонецИнтервала

Возвратить дату конца интервала журнала.

Синтаксис:

КонецИнтервала()

Англоязычный синоним:

EndOfRange

Возвращаемое значение:

Значение даты конца интервала журнала.

Описание:

Метод КонецИнтервала позволяет получить дату конца интервала журнала.

Данный метод доступен только в контексте Модуля формы журнала документов (см. «Виды программных модулей»).

Пример:

КИ = КонецИнтервала();

ПодчинениеДокументу

Установить документ-владелец для журнала подчиненных документов.

Синтаксис:

ПодчинениеДокументу([<Докум>], [<ФлагАвтоСменыПодчинен>])

Англоязычный синоним:

ParentDoc

Параметры:

<Докум>

Необязательный параметр. Выражение типа «документ» — значение документа, подчиненные документы к которому должен отображать журнал.

<флагАвтоСменыПодчинен>

Необязательный параметр. Числовое выражение: 1 — устанавливает способность автоматически обновлять отображение журнала при смене документа-владельца, если такой режим установлен в параметрах системы («Сервис» - «Один журнал»); 0 — снятие режима автоматического обновления отображения журнала.

Возвращаемое значение:

Текущее значение документа, которому подчинен журнал.

Описание:

Метод ПодчинениеДокументу позволяет установить документ-владелец для журнала подчиненных документов.

Данный метод доступен только в контексте Модуля формы журнала подчиненных документов (см. «Виды программных модулей»).

Пример:

ПодчинениеДокументу(Док, 1);

Предопределенные процедуры Модуля формы журнала документов

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в Модулях формы журналов документов (см. «Виды программных модулей»).

В основном данные процедуры предназначены для расширения возможности программного управления правами доступа к системе.

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

ПриУстановкеОтбора

Предопределенная процедура при установке отбора.

Синтаксис:

ПриУстановкеОтбора(<ИмяРеквизОтбора>, <3начение>)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

<ИмяРеквизОтбора>

Строковое значение — название общего реквизита документа (как оно задано в конфигураторе), по которому производится отбор (например, "Автор").

<3начение>

Значение реквизита отбора. Допустим, у документов существует общий реквизит "Автор", по которому решено провести отбор, значит в этом параметре будет передано конкретное значение этого реквизита, по которому решено провести отбор (например, "Сидоров И. А.").

Описание:

Вызов предопределенной процедуры ПриУстановкеОтбора производится системой 1С:Предприятие неявно при интерактивной попытке установить отбор документов в журнале. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя устанавливать данное значение отбора документов), установка не будет выполнена.

Данная предопределенная процедура может располагаться в модуле формы журнала и в глобальном программном модуле. Если данная процедура присутствует в модуле формы соответствующего журнала, то будет вызвана она, если нет, то будет вызвана процедура из глобального модуля.

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора) Если

   НазваниеНабораПрав() = "Продавец" Тогда

      Если (Имя0тбора = "Автор") И (ЗначОтбора <> ТекущПользователь) Тогда

         Предупреждение("У вас нет права просматривать чужие документы!", 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУстановкеИнтервала

Предопределенная процедура при установке интервала журнала.

Синтаксис:

ПриУстановкеИнтервала(<ДатаНач>, <ДатаКон>)

Англоязычный синоним:

OnSetRange

Параметры:

<ДатаНач>

Дата начала интервала журнала.

<ДатаКон>

Дата конца интервала журнала.

Описание:

Вызов предопределенной процедуры ПриУстановкеИнтервала производится системой 1C:Предприятие неявно при интерактивной попытке установить интервал в журнале документов. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя изменять интервал журнала), установка не будет выполнена.

Пример:

Процедура ПриУстановкеИнтервала(ДатаНач, ДатаКон) Если

   НазваниеНабораПрав() = "Продавец" Тогда

      Предупреждение("У вас нет права изменять интервал журнала! , 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата







Перейти  к оглавлению: Описание встроенного языка