Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C_pr77_Lang1.doc
Скачиваний:
12
Добавлен:
20.11.2019
Размер:
2.43 Mб
Скачать

МонопольныйРежим

Определение режима работы программы.

Синтаксис:

МонопольныйРежим()

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

ExclusiveMode

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

Число 1 — если программа запущена в монопольном режиме;

Число 0 — если программа запущена в сетевом режиме.

Описание:

Функция МонопольныйРежим возвращает число 1 — если программа запу­щена в монопольном режиме и 0 если нет.

Пример:

Процедура Загрузка()

Если МонопольныйРежим() > 0 Тогда

ЗагрузитьНаряды();

Иначе

Предупреждение("Для запуска этой операции требуется" +

"монопольный режим доступа !!!");

КонецЕсли;

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

ОсновнойЯзык

Определение основного языка конфигурации.

Синтаксис:

ОсновнойЯзык()

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

GeneralLanguage

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

Число 1 — если основной язык конфигурации — русский;

Число 0 — если основной язык конфигурации — английский.

Описание:

При помощи функции ОсновнойЯзык можно прочитать текущее значение основного языка конфигурации.

Замечание: Значение основного языка конфигурации задается в конфигура­торе (Метаданные-Глобалъный_модуль-Свойство-Задача-Основной язык).

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

Пример:

*

В данном примере при записи периодического реквизита справочника (че­рез диалоговое окно «История») система передает в предопределенную процедуру строковое значение названия объекта. Нижеследующая проце­дура определяет, что введено значение курса валюты и сообщает об этом.

Процедура ПриЗаписиИстории(ИмяОбъекта, Объект, Значение, ДатаИстории)

Если ОсновнойЯзык() = 1 Тогда

СПР = "Справочник";

Иначе

СПР = "Reference";

КонецЕсли;

Если ИмяОбъекта = СПР + ".Валюты.Текущ_курс" Тогда

Сообщить("Добавлено новое значение курса");

Сообщить("Для валюты " + Объект.Наименование);

Сообщить("На дату " + ДатаИстории);

Сообщить("Установлено значение " + Значение);

КонецЕсли;

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

См. также: ПриУдаленииИстории, ПриЗаписиИстории

Процедуры работы с транзакциями

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

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

Для начала транзакции используется процедура НачатьТранзацию. Для фиксации сделанных в процессе выполнения изменений применяется процеду­ра ЗафиксироватьТранзакцию. Для отмены изменений, сделанных в процес­се выполнения транзакции — процедура ОтменитьТранзакцию. Таким обра­зом, все действия с базой данных, выполняемые внутри скобок: НачатьТранзакцию — ЗафиксироватьТранзацию собственно и являются транзакцией.

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

Замечание. В Модуле документа (при проведении документов) в предопреде­ленных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения система сама по умолчанию выполня­ет все действия через транзакцию, поэтому никаких специальных дейст­вий в этих предопределенных процедурах предпринимать не нужно.

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

При обработке транзакции (в том числе в Модуле документа) не следует использовать элементы интерактивного управления (например, операторы Предупреждение, Вопрос, ВвестиЧисло и т. п.), т. к. в этом случае при от­крытой транзакции система ожидает отклика пользователя, а это может препятствовать нормальной работе других пользователей (в результате документы у всех остальных пользователей в этот момент могут не проводиться). Если в конфигурации необходимо при проведении документа выдавать пользователю некоторые сообщения, то следует использовать операторы Сообщить или Состояние.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]