d9e5a92d

Глава 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);

   КонецЕсли;

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

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


Содержание раздела