Системные функции — это встроенные функции языка, доступные в любом программном модуле конфигурации. Доступ к системным функциям в текстах программных модулей непосредственный, то есть просто имя функции (без предварительной ссылки на какой-либо объект). Вызов любой системной функции в тексте программного модуля можно записывать как вызов процедуры, то есть в языке допускается игнорировать их возвращаемое значение.
Системные функции, речь о которых пойдёт в данной статье, используются для получения определённой информации о среде исполнения: компьютере, системе «1С:Предприятие», режиме работы и конкретном пользователе.
Функции для получения сведений о каталогах
Получить сетевое имя компьютера, работающего в данный момент с программой, позволяет системная функция ИмяКомпьютера()
(англоязычный синоним — ComputerName()
). Параметров у данной функции нет, а возвращаемым значением является строковое значение.
Пример использования:
Компьютер = ИмяКомпьютера();
Получить имя каталога технологической платформы системы «1С:Предприятие» позволяет системная функция КаталогПрограммы()
(англоязычный синоним — BinDir()
). Параметров у данной функции нет, а возвращаемым значением будет строка вида «C:\Program Files\1Cv77\BIN\
».
Пример использования:
Каталог1С = КаталогПрограммы();
Получить имя каталога текущей информационной базы позволяет системная функция КаталогИБ()
(англоязычный синоним — IBDir()
). Параметров у данной функции нет, а возвращаемым значением будет строка вида «D:\1S_Base\1SBDB\
».
Пример использования:
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1 Тогда Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "v7plus.dll") <> 1 Тогда Предупреждение("Компонента v7plus.dll не найдена!"); Возврат; КонецЕсли; КонецЕсли;
Получить имя рабочего каталога пользователя позволяет системная функция КаталогПользователя()
(англоязычный синоним — UserDir()
). Параметров у данной функции нет, а возвращаемым значением будет строка вида «D:\1S_Base\1SBDB\usr1\
». Если каталог пользователя в Конфигураторе не задан, функция возвращает имя каталога информационной базы.
Пример использования:
ФайлВыгрузки = КаталогПользователя() + "1sbtrans.txt";
Получить имя каталога временных файлов, как он установлен в системе «1С:Предприятие», позволяет функция КаталогВременныхФайлов()
(англоязычный синоним — TempFilesDir()
). Это может быть каталог, установленный в командной строке запуска системы «1С:Предприятие» или, если не указан, то каталог временных файлов установленный в операционной системе, например, C:\WINDOWS\Temp\
.
Пример использования:
ВремКаталог = КаталогВременныхФайлов()+ "temp.grp\";
Функции для получения сведений о пользователе
Получить имя пользователя, работающего в данный момент с программой, позволяет системная функция ИмяПользователя()
(англоязычный синоним — UserName()
). Параметров у данной функции нет, а возвращаемым значением будет строка — имя пользователя, как оно указано в Конфигураторе.
Пример использования:
Пользователь = СокрЛП(ИмяПользователя());
Примечание: Имя пользователя устанавливается в Конфигураторе в списке пользователей (см. рис. ниже), вызвать который можно через главное меню последовательно выбрав пункты «Администрирование −> Пользователи».
Получить полное имя пользователя, работающего в данный момент с программой, позволяет системная функция ПолноеИмяПользователя()
(англоязычный синоним — UserFullName()
). Параметров у данной функции нет, а возвращаемым значением будет строка — полное имя пользователя, как оно указано в Конфигураторе (см. рис. выше).
Пример использования:
Спр = СоздатьОбъект("Справочник.Сотрудники"); Спр.НайтиПоНаименованию(ПолноеИмяПользователя()); Менеджер = Спр.ТекущийЭлемент(); Если Менеджер.Выбран() = 0 Тогда Предупреждение("Не выбран менеджер!"); КонецЕсли;
Получить название набора прав пользователя, работающего в данный момент с программой, позволяет системная функция НазваниеНабораПрав()
(англоязычный синоним — RightName()
). Возвращаемым значением функции будет строка, содержащая содержащее название набора прав пользователя, либо пустая строка.
Синтаксис функции:
НазваниеНабораПрав(<ВыдИспНабПрав>);
где <ВыдИспНабПрав> — числовое значение — флаг, указывающий выдавать используемый набор прав или нет. Возможные значения: 0 — выдавать установленный пользователю набор прав; 1 — выдавать пустую строку, если пользователю набор прав назначен, но установлен режим отключения контроля набора прав (см. рис. ниже). Параметр <ВыдИспНабПрав> является необязательным. Значение по умолчанию — 0.
Пример использования:
МоиПрава = НазваниеНабораПрав();
Примечание: Набор прав пользователя устанавливается в Конфигураторе в списке пользователей, вызвать который можно через главное меню последовательно выбрав пункты «Администрирование −> Пользователи». В окне свойств пользователя следует перейти на вкладку «Роль» и выбрать набор прав в поле «Права».
Получить название интерфейса пользователя, работающего в данный момент с программой, позволяет системная функция НазваниеИнтерфейса()
(англоязычный синоним — UserInterfaceName()
). Параметров у данной функции нет, а возвращаемым значением будет строка — название интерфейса, заданного для пользователя в Конфигураторе (поле «Интерфейс» на рис. выше).
Пример использования функции:
МоиИнтерфейс = НазваниеИнтерфейса();
Узнать режим работы программы позволяет функция МонопольныйРежим()
(англоязычный синоним — ExclusiveMode()
), которая возвращает число 1, если программа запущена в монопольном режиме, или 0, если режим многопользовательский. Параметров у данной функции нет.
Пример использования:
Процедура Загрузка() Если МонопольныйРежим() > 0 Тогда ЗагрузитьНаряды(); Иначе Предупреждение("Для запуска этой операции требуется монопольный режим доступа!!!"); КонецЕсли; КонецПроцедуры // Загрузка()
Проверить наличие права доступа к указанному объекту для текущего пользователя позволяет системная функция ПравоДоступа()
(англоязычный синоним — AccessRight()
). Функция возвращает число 1, если право доступа есть, или 0, если права доступа нет.
Синтаксис функции:
ПравоДоступа(<НазваниеПрава>, <Объект>)
где
- <НазваниеПрава> — строка с названием права доступа, как оно выводится в Конфигураторе (без пробелов);
- <Объект> — строка с наименованием типа и вида объекта, например,
"Справочник.Сотрудники"
. Для глобальных прав этот параметр не указывается. Для объектов, у которых нет вида, записывается только тип объекта, например,"Операция"
.
Пример использования:
Если ПравоДоступа("Чтение", "Документ.Счет") = 1 Тогда . . . КонецЕсли; // Если режим "Монопольный" Если ПравоДоступа("МонопольныйРежим") = 1 Тогда . . . КонецЕсли;
Функция проверки языка системы
Узнать значение основного языка конфигурации позволяет функция ОсновнойЯзык()
(англоязычный синоним — GeneralLanguage()
). Параметров у этой функции нет, а возвращаемым значением будет число 1, если основным языком конфигурации является русский, или 0, если основным языком конфигурации является английский.
Пример использования:
Процедура ПриЗаписиИстории(ИмяОбъекта, Объект, Значение, ДатаИстории) Если ОсновнойЯзык() = 1 Тогда СПР = "Справочник"; Иначе СПР = "Reference"; КонецЕсли; Если ИмяОбъекта = СПР + ".Валюты.Текущ_курс" Тогда Сообщить("Добавлено новое значение курса"); Сообщить("Для валюты " + Объект.Наименование); Сообщить("На дату " + ДатаИстории); Сообщить("Установлено значение " + Значение); КонецЕсли; КонецПроцедуры
Примечание: Значение основного языка конфигурации задается в Конфигураторе в окне свойств корневого элемента структуры метаданных.
Значение основного языка конфигурации используется системой в нескольких случаях, а именно, когда система передаёт в качестве параметра в предопределённую процедуру название объекта конфигурации. В этом случае название агрегатного типа данных передаётся либо в русском, либо в английском написании — в зависимости от текущей установки основного языка конфигурации.
Установка заголовка системы
Получить или установить заголовок окна программы позволяет системная функция ЗаголовокСистемы()
(англоязычный синоним — SystemCaption()
). Возвращаемым значением функции является строка — заголовок программы на момент предшествующий вызову функции.
Синтаксис функции:
ЗаголовокСистемы(<Заголовок>)
где <Заголовок> — строковое выражение, содержащее заголовок окна программы, который необходимо установить.
Пример использования:
// Устанавливаем заголовок ЗаголовокСистемы(СокрЛП(Константа.НазваниеОрганизации));
Примечание: Обычно заголовок окна складывается из нескольких подстрок:
- подстроки «1С:Предприятие»;
- подстроки, взятой из синонима или идентификатра конфигурации (см. окно свойств корневого элемента структуры метаданных);
- подстроки, установленной методом
ЗаголовокСистемы()
; - подстроки, взятой из синонима или идентификатора открытой формы (когда открыта какая-либо форма).
Возвращает функция ЗаголовокСистемы()
только ту часть заголовка (подстроку), которая была установлена с помощью этой системной функции ранее.
Другие статьи по схожей тематике