Журнал документов — средство для работы со списком документов. В терминах языка журнал не является специальным типом данных (он не имеет значения, его нельзя создать при помощи функции СоздатьОбъект).
С журналом в системе связана форма отображения списка документов и программный модуль формы журнала документов (см. «Виды программных модулей»). В локальном контексте этого программного модуля непосредственно доступны реквизиты формы журнала. Кроме того, здесь непосредственно доступен атрибут «только для чтения» — ТекущийДокумент, содержащий значение выбранного в журнале документа.
Описанный в данном разделе атрибут можно вызывать только в Модуле формы журнала (см. «Виды программных модулей»).
Синтаксис:
ТекущийДокумент
Англоязычный синоним:
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);
КонецЕсли;
КонецПроцедуры
См. также: СтатусВозврата