Глава 7-2 Функции работы с позицией документа
Формирует позицию документа согласно переданным параметрам
Синтаксис 1:
СформироватьПозициюДокумента(Докум, ФлагСмещения)
Синтаксис 2:
СформироватьПозициюДокумента(Дата, Час, Мин,
Сек, ФлагКонцаСекунды)
Англоязычный синоним:
MakeDocPosition
Параметры:
Докум |
Значение документа (или его позиция), позиция которого определяется. |
ФлагСмещения |
Необязательный параметр. Число: -1 (минус единица) — предыдущая позиция.
1 — следующая позиция. 0 — текущая позиция. Значение по умолчанию — 0.
Использование данного параметра позволяет получить предыдущую или последующую
позицию от уже имеющейся позиции. |
Дата |
Значение типа «дата», на которую формируется позиция документа. |
Час |
Значение типа «число», которое определяет час, на который формируется
позиция документа. |
Мин |
Значение типа «число», которое определяет минуту, на которую формируется
позиция документа. |
Сек |
Значение типа «число», которое определяет секунду, на которую формируется
позиция документа. |
ФлагКонцаСекунды |
Необязательный параметр. Число: 1 — позиция будет браться от следующей
секунды. 0 — позиция от указанной секунды. Значение по умолчанию — 0. |
Возвращаемое значение:
Строковое значение — сформированная позиция документа (см. «Позиция документа»).
Описание:
Функция СформироватьПозициюДокумента формирует и возвращает
позицию документа согласно переданным параметрам.
Пример:
ПозицияВыбДокум=СформироватьПозициюДокумента(ВыбДокумент);
Раскладывает позицию документа на составляющие и возвращает строковое представление
позиции документа
Синтаксис:
РазобратьПозициюДокумента(Позиция, Дата, Час,
Мин , Сек, Документ)
Англоязычный синоним:
SplitDocPosition
Параметры:
Позиция |
Строковое значение позиции документа. |
Дата |
Необязательный параметр. Имя переменной, куда система вернет значение
даты позиции документа. |
Час |
Необязательный параметр. Имя переменной, куда система вернет числовое
значение часа позиции документа. |
Мин |
Необязательный параметр. Имя переменной, куда система вернет числовое
значение минуты позиции документа. |
Сек |
Необязательный параметр. Имя переменной, куда система вернет числовое
значение секунды позиции документа. |
Документ |
Необязательный параметр. Имя переменной, куда система вернет значение
документа данной позиции документа. |
Возвращаемое значение:
Представление позиции документа в строковом виде, например: «12.07.98 12:57:14
ПрихНакл 24»
Описание:
Функция РазобратьПозициюДокумента раскладывает позицию
документа на составляющие и возвращает строковое представление позиции документа.
Пример:
Позиция = РазобратьПозициюДокумента(ВыбДокумент.ПозицияДокумента());
Задать образец вывода числа прописью.
Синтаксис:
Пропись(Образец)
Англоязычный синоним:
Spelling
Параметры:
Образец |
Необязательный параметр. В данном параметре можно передавать:
-строковое выражение, задающее имя файла прописи (в поставляемом комплекте
файлы прописей имеют расширение .SPL);
- объект типа «СписокЗначений» в котором в специальном формате задан
образец прописей.
Если параметр Образец пустой или состоит
из пробелов, то устанавливается образец прописей по умолчанию (файл 1CV7.spl). |
Описание:
Процедура Пропись задает образец, в соответствии с которым
будут выводиться прописные значения функцией Формат.
В параметре Образец может быть передана строка, задающая
имя файла прописей. Файл прописей представляет собой текстовый файл специальной
структуры, в котором находятся образцы прописей чисел, названия денежной единицы,
дат, дней недели и т. п. Пример файла прописей можно посмотреть в поставляемом
комплекте (файл lCV7.spl).
Ниже приводится фрагмент текста файла прописей, содержащий образец прописи
для валюты мужского рода:
{Speller,
{Money,
{Рубль, Рубля, Рублей,
Копейка, Копейки, Копеек, М}},
Ниже приводится фрагмент текста файла, содержащий образец прописи для валюты
женского рода (добавляется параметр F в описание названия валюты):
{Speller,
{Money,
{условная единица, Условные единицы,
Условных единиц, Сотая, Сотые,
Сотых, F}},
Кроме того, в параметре Образец
может быть передан объект типа «СписокЗначений», содержащий в качестве своих
значений объекты типа «Список-Значений» каждый из которых содержит набор слов
используемых в прописи определенного типа. Типы прописей соответвуют секциям
файла SPL:
Money
Numbers
Date
DateRange
WeekDay
Списки значений с наборами слов определенного типа прописей должны следовать
либо в строго определенной последовательности, либо значение, являющееся списком
значений, должно иметь в качестве своего строкового представления название типа
прописи — в этом случае в переданном списке значений могут присутствовать не
все списки значений соотвутствующие секциям файла SPL.
В списке значений конкретного типа прописи должны быть слова в последовательности,
строго соответвующей последовательности слов в данной секции в файле SPL.
Действие данной процедуры распространяется только на текущий программный модуль.
Пример:
Процедура Печать(Тип)
Таб = СоздатьОбъект(Таблица);
// ...
Пропись(1cue.spl); // задаем имя файла прописи
Таб.Опции(0, 0, 0, 0);
Таб.ТолькоПросмотр(1);
Таб.Показать(Печать отчета, );
Пропись();
// возвращаем значение прописи по умолчанию
КонецПроцедуры
Форматировать переданный параметр.
Синтаксис:
Формат(Параметр, Форматная_строка)
Англоязычный синоним:
Format
Параметры:
Параметр |
Выражение. |
Форматная_строка |
Строковое выражение. |
Возвращаемое значение:
Строковое значение.
Описание:
Функция Формат форматирует переданный параметр, руководствуясь
информацией, содержащейся в параметре Форматная_строка.
Возвращает сформатированную строку.
Параметр может быть сформатирован как число, строка или дата. Если тип параметра
не соответствует виду форматирования, указанному в форматной строке, то будет
произведено соответствующее преобразование типа.
Форматная строка состоит из символа, определяющего тип данных, для которого
будет производиться форматирование, и дополнительных параметров, уточняющих
как должно быть сформатировано значение представленное первым параметром. Результатом
работы функции является строковое значение, представляющее результаты форматирования.
Символы, определяющие тип форматируемых данных:
Ч — число (Англоязычный синоним: N)
С — строка (Англоязычный синоним: S)
Д — дата (Англоязычный синоним: D)
Между символом, определяющим тип форматируемого значения
и дополнительными уточняющими параметрами может находиться любое число пробелов.
Для числовых значений форматная строка должна иметь вид: Чm.nDT или Чm,
где т
и п—
целые числа. Целое положительное число m определяет длину поля в котором будет
размещаться строковое представление числа, а целое положительное число n
определяет число знаков после десятичной точки. D — представляет
собой любой символ (кроме пробела и цифры), которым в сфор-матированной строке
целая часть будет отделяться от дробной, а T
— символ (также кроме пробела и цифры), которым будут разделяться триады целой
части числа. Символы D
и Т являются
необязательными.
Если в форматной строке проставить символ 0
(ноль) перед длиной поля, то нулевые значения при выводе будут подавлятся (выводится
пустая строка). Пример: Ч015.2.
Если в форматной строке указано (0) перед
всеми прочими спецификациями, то все позиции в поле вывода числа, соответствующие
незадействованным старшим разрядам будут заполнены символами 0.
Например:
Формат(123.15, Ч(0)10.2) = 0000123.15
Если в форматной строке проставить символ -
перед длиной поля, то нулевые значения при выводе будут отображаться прочерком.
Пример: 4-17.2
.
В форматной строке для числа можно использовать сдвиг разрядов при выводе.
Это позволяет, например, отображать числовое значение в тысячах и т. п. В этом
случае форматная строка должна заканчиваться символами Х
, где Х
— количество сдвигаемых разрядов. Например, форматная строка: Ч0103 — означает вывод числа в тысячах
(сдвиг на три разряда).
Строковое представление числа всегда является правоустановленным.
Кроме того, возможен вывод денежных величин и просто целых чисел прописью.
В этом случае форматная строка должна иметь вид ЧПДС.
Наличие буквы П (в английском варианте для аналогичной
цели используется буква S) определяет
сам факт вывода числа прописью. Символ Д (в английском
варианте — M) обозначает вывод денежной величины и
является необязательным. Символ С (в английском
варианте — H) также необязателен и означает вывод с копейками.
Для форматирования строк используется следующая форматная строка:
Сn, где n — положительное целое число определяющее ширину поля, в котором
будет размещаться строка. В случае, если ширина поля превосходит длину строки
сформатированная строка будет дополнена справа пробелами, если же ширина поля
меньше длины строки — строка будет усечена справа.
Для форматирования даты используется форматная строка вида ДПодстрокаФормата,
где Подстрока
Формата представляет собой строку, определяющую вид сформатированного
представления даты:
DDMMYY (ДДММГГ) |
дата в виде ДД.ММ.ГГ |
DDMMYYYY
(ДДММГГГГ) |
дата в виде ДД.ММ.ГГГГ |
DDMMMMYYYY
(ДДММММГГГГ) |
дата в виде ДД месяц прописью ГГГГ |
(0)DDMMMMYYYY
((0)ДДММММГГГГ) |
этот формат представляет собой вариант предыдущего формата с тем отличием,
что число месяца всегда выводится двумя цифрами, т. е. для чисел меньших
10 спереди будет добавлен 0. Например: Формат('01.01.1999', ' 'Д(0)ДДММММГГГГ'
') = 01 Января 1999 г. |
MMMMYYYY
(ММММГГГГ) |
дата в виде месяц прописью ГГГГ |
MMMMYY (ММММГГ) |
дата в виде месяц прописью ГГ |
ММММ (ММММ) |
дата в виде месяц прописью |
QQQQYYYY
(ККККГГГГ) |
дата в виде N квартала ГГГГ |
QQQQYY (ККККГГ) |
дата в виде N квартала ГГ |
QQQQ |
дата в виде N квартала |
YYYYMMDD
(ГГГГММДД) |
дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как
строка 19981110 |
WWWW (HHHH) |
выводит наименование дня недели, соответствующее указанной дате. Наименования
дней недели берутся из файла прописи. |
Пример:
ДолгКлиента = Строка(Формат(-Долг(), Ч12.2)) +
+ Валюта.Сокр_назв;
Сформировать строку по шаблону.
Синтаксис:
Шаблон(Строка_шаблон)
Англоязычный синоним:
Template
Параметры:
Строка_шаблон |
Строковое выражение, содержащее шаблон формирования результирующей строки. |
Возвращаемое значение:
Строковое значение.
Описание:
Функция Шаблон возвращает строковое значение, сформированное
в соответствии с заданным параметром Строка_шаблон,
заменив в ней все встроенные выражения, заключенные в квадратные скобки, на
их строковые значения.
Строковое значение параметра Строка_шаблон
обрабатывается следующим образом: символы [ , ] (квадратные
скобки) являются специальными символами, которые выделяют поля, содержащие встроенные
выражения. Например:
Имя клиента [Имя], телефон: [Телефон]
После встроенного выражения может стоять символ #, после которого
следует Форматная_строка описанная в функции
Формат. В этом случае в данное поле будет проставлен
результат выражения, обработанный функцией Формат.
Пример:
Стр = Шаблон(Это название услуги: [Услуга.Наименование]);
// выдает: Это название услуги: Вывоз мусора
Сформировать строку по фиксированному шаблону.
Синтаксис:
ФиксШаблон(Строка_шаблон)
Англоязычный синоним:
FixTemplate
Параметры:
Строка_шаблон |
Строковое выражение, содержащее шаблон формирования результирующей строки. |
Возвращаемое значение:
Строковое значение.
Описание:
Функция ФиксШаблон возвращает строковое значение, сформированное
в соответствии с заданным параметром Строка_шаблон,
заменив в ней все встроенные выражения, заключенные в квадратные скобки, на
их значения. В отличие от функции Шаблон, поля замещаются значениями выражений
с сохранением своей длины в символах, то есть обрезаются, если поле короче результата
вычисления выражения и дополняются пробелами если длиннее. Если результат числовой,
то в границах поля строка прижимается к правой границе.
Строковое значение параметра Строка_шаблон
обрабатывается следующим образом: символы [ , ] (квадратные
скобки) являются специальными символами, которые выделяют поля, содержащие встроенные
выражения. Выделенные поля фиксируют свою длину с учетом ограничивающих скобок.
Например:
Имя Клиента [Имя], телефон: [Телефон]
После встроенного выражения может стоять символ #, после которого
следует Форматная_строка описанная в функции
Формат. В этом случае в данное поле будет проставлен
результат выражения, обработанный функцией Формат.
Пример:
// ниже - пример с дополнением пробелами
Стр = Шаблон(Это название услуги [Услуга.Наименование
]);
// выдает: Это название услуги Вывоз мусора
// далее - с сокращением строки
Стр = Шаблон(Это название услуги [Услуга.Наименование]);
// выдает: Это название услуги Выполенние формирован
Вызов диалога для ввода значения заданного типа.
Синтаксис:
ВвестиЗначение(3начение, Подсказка, Тип,
Длина, Точность)
Англоязычный синоним:
InputValue
Параметры:
3начение |
Имя переменной, ранее объявленной в программном модуле. В эту переменную
будет помещено введенное значение. |
Подсказка |
Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки
конечному пользователю. |
Тип |
Строковое выражение — название типа данных, которое требуется ввести.
Например: Строка, Число, Справочник.Товары,
Документ . РасходнаяНакладная и т. п. |
Длина |
Необязательный параметр. Длина вводимого значения (для типов данных «Строка»,
«Число»). |
Точность |
Необязательный параметр. Количество знаков после десятичной точки (для
типа данных «Число»). |
Возвращаемое значение:
Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если нажата кнопка
«Отмена»;
Описание:
Функция ВвестиЗначение выполняет вызов диалога для ввода
значения заданного типа.
Пример:
Если ВвестиЗначение(Ном, Введите номер приказа,
Число, 5, 0) = 1 Тогда
ВыбДок = СоздатьОбъект(Документ.Приказ);
ВыбДок.НайтиПоНомеру(Строка(Ном), Дата(0));
Если ВыбДок.Выбран() = 1 Тогда
// . . .
ИначеЕсли;
// . . .
КонецЕсли;
КонецЕсли;
Вызов диалога для ввода числа.
Синтаксис:
ВвестиЧисло(Число, Подсказка, Длина,
Точность , Таймаут)
Англоязычный синоним:
InputNumeric
Параметры:
Число |
Имя переменной, ранее объявленной в программном модуле. В эту переменную
будет помещено введенное значение числа. |
Подсказка |
Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки
конечному пользователю. |
Длина |
Длина вводимого числа. |
Точность |
Количество знаков после десятичной точки. |
Таймаут |
Необязательный параметр. Числовое выражение интервала времени ожидания
ответа в секундах, в течение которого система будет ожидать ответа пользователя.
Если данный параметр опущен или равен 0, то время ожидания бесконечно.
Значение по умолчанию — 0. |
Возвращаемое значение:
Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если нажата кнопка
«Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.
Описание:
Функция ВвестиЧисло выполняет вызов диалога для ввода
числа.
Пример:
Если ВвестиЧисло(Ном, Введите номер приказа, 5,
0, 10) = 1 Тогда
ВыбДок = СоздатьОбъект(Документ.Приказ);
ВыбДок.НайтиПоНомеру(Строка(Ном), Дата(0));
Если ВыбДок.Выбран() = 1 Тогда
// . . .
ИначеЕсли;
// . . .
КонецЕсли;
КонецЕсли;
Вызов диалога для ввода строки.
Синтаксис:
ВвестиСтроку(Строка, Подсказка, ДлинаСтроки,
Признак, Таймаут)
Англоязычный синоним:
InputString
Параметры:
Строка |
Имя переменной, ранее объявленной в программном модуле. В эту переменную
будет помещено введенное строковое значение. |
Подсказка |
Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки
конечному пользователю. |
ДлинаСтроки |
Числовое выражение — длина строки. |
Признак |
Необязательный параметр. Числовое выражение, если 0 — ввод простой строки
без разделителей строк, если 1 — ввод многострочного текста с разделителями
строк. Значение по умолчанию — 0. |
Таймаут |
Необязательный параметр. Числовое выражение интервала времени ожидания
ответа в секундах, в течение которого система будет ожидать ответа пользователя.
Если данный параметр опущен или равен 0, то время ожидания бесконечно.
Значение по умолчанию — 0. |
Возвращаемое значение:
Числовое значение: 1 — если в диалоге нажата кнопка «ОК», 0 — если нажата кнопка
«Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.
Описание:
Функция ВвестиСтроку выполняет вызов диалога для ввода
строки.
Пример:
Процедура ВводКодовПродукции()
Если Продукция.Вид = Перечисление.ВидПродукции.Наша Тогда
НК = Код;
Если ВвестиСтроку(НК, Введите код продукции,
40, 1, 9) = 1 Тогда
Koд = HK;
КонецЕсли;
Иначе
Код = ;
Возврат;
КонецЕсли;
КонецПроцедуры
Вызов диалога для ввода даты.
Синтаксис:
ВвестиДату(Дата, Подсказка, Таймаут)
Англоязычный синоним:
InputDate
Параметры:
Дата |
Имя переменной, ранее объявленной в программном модуле. В эту переменную
будет помещено введенное значение даты. |
Подсказка |
Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки
конечному пользователю. |
Таимаут |
Необязательный параметр. Числовое выражение интервала времени ожидания
ответа в секундах, в течение которого система будет ожидать ответа пользователя.
Если данный параметр опущен или равен 0, то время ожидания бесконечно.
Значение по умолчанию — 0. |
Возвращаемое значение:
Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если нажата кнопка
«Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.
Описание:
Функция ВвестиДату выполняет вызов диалога для ввода
даты.
Пример:
Процедура ВводДатыСсуды()
Если ВидРасчета = ВидРасчета.БеспроцентнаяСсуда Тогда
ДатаСсуды = Дата(0);
Возврат;
КонецЕсли;
Если ДатаСсуды = Дата(0) Тогда
ДатаСсуды = ДатаДок + 30;
КонецЕсли;
Д = ДатаСсуды;
Если ВвестиДату(Д, Введите дату ссуды) = 1 Тогда
ДатаСсуды = Д;
Иначе
ВидРасчета = ВидРасчета.БеспроцентнаяСсуда;
КонецЕсли;
КонецПроцедуры
Ввод периода в виде диалога.
Синтаксис:
ВвестиПериод(НачалоПериода, КонецПериода, Подсказка)
Англоязычный синоним:
InputРег1od
Параметры:
НачалоПериода |
Идентификатор переменной, в которую функция возвращает дату начала периода. |
КонецПериода |
Идентификатор переменной, в которую функция возвращает дату конца периода. |
Подсказка |
Необязательный параметр. Строковое выражение, содержащее строку, которая
будет выводиться в заголовке окна диалога. Если не указано — стандартная
подсказка. |
Возвращаемое значение:
Числовое значение: 1 — выбор осуществлен , 0 — выбор не осуществлен (пользователем
нажата кнопка «Отмена», клавиша Esc или закрыто окно диалога).
Описание:
Функция ВвестиПериод выдает на экран диалог специального
вида, при помощи которого пользователь может выбрать период. Выбранный пользователем
период записывается в переменные, передаваемые как параметры при вызове метода.
Пример:
Дата1 = '01.01.97';
Дата2 = '31.03.97';
Если ВвестиПериод(Дата1, Дата2, Введите период отчета)
1 Тогда
Возврат 0;
КонецЕсли;
Вызов диалога для ввода перечисления.
Синтаксис:
ВвестиПеречисление(3начение, Подсказка, Таймаут)
Англоязычный синоним:
InputEnum
Параметры:
3начение |
Имя переменной, ранее объявленной в программном модуле. Переменная должна
содержать значение типа «Перечисление» или строковое значение. Если тип
передаваемого в качестве параметра значения — перечисление, то вызывается
диалог со списком заданного вида перечисления. Если тип передаваемого
в качестве параметра значения — строка, то в ней должен быть идентификатор
требуемого вида перечисления, как он задан в конфигураторе. В эту же переменную
будет помещено выбранное в диалоге значение перечисления. |
Подсказка |
Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки
конечному пользователю. |
Таймаут |
Необязательный параметр. Числовое выражение интервала времени ожидания
ответа в секундах, в течение которого система будет ожидать ответа пользователя.
Если данный параметр опущен или равен 0, то время ожидания бесконечно.
Значение по умолчанию — 0. |
Возвращаемое значение:
Числовое значение: 1 — если в диалоге нажата кнопка «ОК», 0 — если нажата кнопка
«Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.
Описание:
Функция ВвестиПеречисление выполняет вызов диалога для
ввода перечисления.
Пример:
*
Процедура УстПризнак1()
ВыбПризн = Перечисление.ТипСотрудника.Штатный;
Если ВвестиПеречисление(ВыбПризн, Выберите тип)
0 Тогда
Тип = ВыбПризн;
Иначе
Тип = Перечисление.ТипСотрудника.Штатный;
КонецЕсли;
КонецПроцедуры
*
Процедура УстПризнак2()
ВыбПризн = ТипСотрудника;
Если ВвестиПеречисление(ВыбПризн, Выберите тип)
0 Тогда
Тип = ВыбПризн;
Иначе
Тип = Перечисление.ТипСотрудника.Штатный;
КонецЕсли;
КонецПроцедуры
Вывести окно вопроса.
Синтаксис:
Вопрос(Текст_вопроса, Режим, Таймаут)
Англоязычный синоним:
DoQueryBox
Параметры:
Текст_вопроса |
Строковое выражение текста вопроса. |
Режим |
Числовое или строковое выражение, определяющее режим вывода окна вопроса. |
Таймаут |
Необязательный параметр. Числовое выражение интервала времени ожидания
ответа в секундах, в течение которого система будет ожидать ответа пользователя.
Если данный параметр опущен или равен 0, то время ожидания бесконечно.
Значение по умолчанию — 0. |
Возвращаемое значение:
Если параметр Режим задан числовым значением,
то функция возвращает числовое значение:
-1 |
Закончилось время ожидания ответа. |
1 |
Выбрана кнопка «ОК». |
2 |
Выбрана кнопка «Отмена». |
3 |
Выбрана кнопка «Стоп». |
4 |
Выбрана кнопка «Повтор». |
5 |
Выбрана кнопка «Пропустить». |
6 |
Выбрана кнопка «Да». |
7 |
Выбрана кнопка «Нет». |
Если параметр Режим задан строковым значением,
то функция возвращает строковое значение. Язык для возврата такой же, какой
использован в пара-метре Режим.
Русск. яз. |
Англ.яз. |
Описание |
Таймаут |
Timeout |
Закончилось время ожидания ответа. |
ОК |
ОК |
Выбрана кнопка «ОК». |
Отмена |
Cancel |
Выбрана кнопка «Отмена». |
Стоп |
Abort |
Выбрана кнопка «Стоп». |
Повтор |
Retry |
Выбрана кнопка «Повтор». |
Пропустить |
Ignore |
Выбрана кнопка «Пропустить». |
Да |
Yes |
Выбрана кнопка «Да». |
Нет |
No |
Выбрана кнопка «Нет». |
Описание:
Функция Вопрос выводит на экран окно вопроса. Текст определяется
параметром Текст_вопроса.
Параметр Режим
определяет варианты возможных ответов.
Если параметр Режим задан числовым значением,
то возможные варианты передаваемого параметра:
0 |
Кнопка «ОК». |
1 |
Кнопки «ОК» и «Отмена». |
2 |
Кнопки «Стоп», «Повтор», «Пропустить». |
3 |
Кнопки «Да», «Нет», «Отмена». |
4 |
Кнопки «Да», «Нет». |
5 |
Кнопки «Повтор», «Отмена». |
Любое другое числовое значение параметра Режим эквивалентно
значению 0 (кнопка «ОК»), равно как и отсутствие указанного параметра.
Если параметр Режим задан строковым значением,
то возможные варианты передаваемого параметра:
Русскоязычное написание |
Англоязычное написание |
ОК |
ОК |
ОК+Отмена |
OK+Cancel |
Стоп+Повтор+Пропустить |
Abort+Retry+Ignore |
Да+Нет+Отмена |
Yes+No+Cancel |
Да+Нет |
Yes+No |
Повтор+Отмена |
Retry+Cancel |
Пример:
Рез = Вопрос(Вы получили данное сообщение?, 4);
Если Вопрос(Все нормально?, Да+Нет)
= Да Тогда
// . . .
КонецЕсли;
Вывести окно предупреждения.
Синтаксис:
Предупреждение(Текст_сообщения, Таймаут)
Англоязычный синоним:
DoMessageBox
Параметры:
Текст_сообщения |
Строковое выражение. |
Таймаут |
Необязательный параметр. Числовое выражение интервала времени ожидания
в секундах, в течение которого система будет ждать ответа пользователя.
Если данный параметр опущен или равен 0, то время ожидания бесконечно.
Значение по умолчанию — 0. |
Описание:
Процедура Предупреждение выводит на экран окно предупреждения
(MessageBox). Текст определяется параметром Текст_сообщения.
По поведению данная процедура эквивалентна функции:
Вопрос(Текст_сообщения, 0, Таймаут), но
не возвращает значения.
Если закончилось время ожидания ответа, то окно предупреждения автоматически
удаляется с экрана.
Пример:
// Выводим сообщение 5 секунд
Предупреждение(Доброе утро!, 5);
Вывести строку в окно сообщений.
Синтаксис:
Сообщить(Текст_сообщения, ИмиджМаркера)
Англоязычный синоним:
Message
Параметры:
Текст_сообщения |
Строковое выражение. |
ИмиджМаркера |
Необязательный параметр. Строковое выражение, которое задает тип пиктограммы
выводимой перед сообщением. Возможные значения:
I,
!,
!!,
!!!,
. — обычное сообщение,
— без маркера. |
Описание:
Процедура Сообщить выводит Текст_сообщения
в окно сообщений. Перед сообщениями можно отображать специальные пиктограммы,
которыми можно помечать сообщения различной важности.
Пример:
Сообщить(Доброе утро!, I);
Очистить окно сообщений.
Синтаксис:
ОчиститьОкноСообщений()
Англоязычный синоним:
ClearMessageWindow
Описание:
Процедура ОчиститьОкноСообщений очищает окно сообщений.
Пример:
ОчиститьОкноСообщений();
Вывести сообщение в строку состояния.
Синтаксис:
Состояние(Текст_сообщения)
Англоязычный синоним:
Status
Параметры:
Текст_сообщения |
Строковое выражение. |
Описание:
Процедура Состояние выводит строку текста в строку состояния
(статус-бар). Текст определяется параметром Текст_сообщения.
Пример:
Состояние(Доброе утро!)
Вычислить выражение по условию.
Синтаксис:
?(Логич_выраж, Выраж1, Выраж2)
Англоязычный синоним:
?
Параметры:
Логич_выраж |
Логическое выражение. |
Выраж1 |
Выражение. |
Выраж2 |
Выражение. |
Возвращаемое значение:
Результирующее значение.
Описание:
Функция ? вычисляет значение Логич_выраж
и если его значение — истина, то возвращает вычисленное значение Выраж1.
Если значение Логич_выраж — ложь, то возвращает вычисленное
значение Выраж2.
Пример:
Спр.ВыбратьЭлементы();
Пока (Спр.ПолучитьЭлемент() 0) Цикл
Состояние(Спр.Наименование);
Сообщить(Спр.Наименование);
Sec = ?(Спр.ЭтоГруппа = 1, Folder, DL);
Таб.ВывестиСекцию(Sес + -V1);
Таб.ПрисоединитьСекцию(Sec + -V3);
КонецЦикла;
Вывести звуковой сигнал.
Синтаксис:
Сигнал()
Англоязычный синоним:
Веер
Описание:
Процедура Сигнал издает короткий звуковой сигнал.
Пример:
Сигнал();
Определить размерность массива.
Синтаксис:
Разм(Имя_массива)
Англоязычный синоним:
Dim
Параметры:
Имя_массива |
Идентификатор массива. |
Возвращаемое значение:
Числовое значение размерности массива.
Описание:
Функция Разм возвращает числовое значение размерности
массива переданного в качестве параметра.
Пример:
Перем Массив_для_хранения[10];
Размер = Разм(Массив_для_хранения);
Получить/установить заголовок окна программы.
Синтаксис:
ЗаголовокСистемы(3аголовок)
Англоязычный синоним:
SystemCaption
Параметры:
Заголовок |
Строковое выражение. |
Возвращаемое значение:
Строковое значение — заголовок системы до исполнения метода.
Описание:
Метод ЗаголовокСистемы позволяет получить/установить
заголовок окна программы.
Пример:
ЗаголовокСистемы(Оптово-розничная конфигурация)
Получить сетевое имя компьютера.
Синтаксис:
ИмяКомпьютера()
Англоязычный синоним:
ComputerName
Возвращаемое значение:
Строковое значение — сетевое имя компьютера, работающего в данный момент с
программой.
Описание:
Функция ИмяКомпьютера возвращает сетевое имя компьютера,
работающего в данный момент с программой.
Пример:
Компьютер = ИмяКомпьютера();
Получить имя пользователя.
Синтаксис:
ИмяПользователя()
Англоязычный синоним:
UserName
Возвращаемое значение:
Строковое значение — имя пользователя, работающего в данный момент с программой.
Описание:
Функция ИмяПользователя возвращает имя пользователя (указанное
в конфигураторе в списке пользователей), работающего в данный момент с программой.
Пример:
Спр = СоздатьОбъект(Справочник.Сотрудники);
Спр.НайтиПоКоду(ИмяПользователя());
Менеджер = Спр.ТекущийЭлемент();
Если Менеджер.Выбран() = 0 Тогда
Предупреждение(Не выбран менеджер!);
КонецЕсли;
Получить полное имя пользователя.
Синтаксис:
ПолноеИмяПользователя()
Англоязычный синоним:
UserFullName
Возвращаемое значение:
Строковое значение, содержащее полное имени пользователя.
Описание:
Функция ПолноеИмяПользователя возвращает полное имя пользователя,
указанное в конфигураторе при авторизации доступа.
Пример:
Спр = СоздатьОбъект(Справочник.Сотрудники);
Спр.НайтиПоНаименованию(ПолноеИмяПользователя());
Менеджер = Спр.ТекущийЭлемент();
Если Менеджер.Выбран() = 0 Тогда
Предупреждение(Не выбран менеджер!);
КонецЕсли;
Получить название набора прав пользователя.
Синтаксис:
НазваниеНабораПрав(ВыдИспНабПрав)
Англоязычный синоним:
RightName
Параметры:
ВыдИспНабПрав |
Выдавать используемый набор прав или нет. Необязательный параметр. Число:
0 — выдает установленный пользователю набор прав; 1 — выдает пустую строку,
если пользователю набор прав назначен, но установлен режим отключения
контроля набора прав. Значение по умолчанию — 0. |
Возвращаемое значение:
Строковое значение, содержащее название набора прав пользователя.
Описание:
Функция НазваниеНабораПрав возвращает название набора
прав, заданное пользователю в конфигураторе.
Пример:
МоиПрава = НазваниеНабораПрав();
Проверяет для текущего пользователя наличие права доступа для заданного объекта.
Синтаксис:
ПравоДоступа(НазваниеПрава, Объект)
Англоязычный синоним:
AccessRight
Параметры:
НазваниеПрава |
Строка с названием права доступа, как оно выводится в конфигурации (без
пробелов). |
Объект |
Строка с наименованием типа и вида объекта (записывается через точку).
Для глобальных прав этот параметр не указывается. Для объектов, у которых
нет вида, записывается только тип объекта, например, «Операция». |
Возвращаемое значение:
Число: 1 — если право доступа есть, иначе 0.
Описание:
Функция ПравоДоступа проверяет для текущего пользователя
наличие права доступа для заданного объекта.
Пример:
Доступ = ПравоДоступа(Чтение, Документ.Счет);
Доступ1 = ПравоДоступа(МонопольныйРежим);
Получить название интерфейса пользователя.
Синтаксис:
НазваниеИнтерфейса()
Англоязычный синоним:
UserInterfaceName
Возвращаемое значение:
Строковое значение, содержащее название интерфейса пользователя.
Описание:
Функция НазваниеИнтерфейса возвращает название интерфейса,
заданное пользователю в конфигураторе.
Пример:
МойИнтерфейс = НазваниеИнтерфейса();
Получить каталог пользователя.
Синтаксис:
КаталогПользователя()
Англоязычный синоним:
UserDir
Возвращаемое значение:
Строковое значение, содержащее имя рабочего каталога пользователя.
Описание:
Функция КаталогПользователя возвращает имя рабочего каталога
пользователя, заданный пользователю в конфигураторе.
Пример:
МояДиректория = КаталогПользователя();
Получить каталог базы данных.
Синтаксис:
КаталогИБ()
Англоязычный синоним:
IBDir
Возвращаемое значение:
Строковое значение, содержащее имя каталога базы данных.
Описание:
Функция КаталогИБ возвращает имя каталога базы данных.
Пример:
МояБД = КаталогИБ();
Получить каталог программы.
Синтаксис:
КаталогПрограммы()
Англоязычный синоним:
BinDir
Возвращаемое значение:
Строковое значение, содержащее имя каталога программы.
Описание:
Функция КаталогПрограммы возвращает имя каталога, где
размещены исполняемые файлы системы 1С:Предприятие.
Пример:
МояДирПрог = КаталогПрограммы();
Получить каталог временных файлов.
Синтаксис:
КаталогВременныхФайлов()
Англоязычный синоним:
TempFilesDir
Возвращаемое значение:
Строковое значение, содержащее имя каталога временных файлов.
Описание:
Функция КаталогВременныхФайлов возвращает имя каталога
временных файлов, как он установлен в системе 1С:Предприятие. Это может быть
каталог, установленный в командной строке запуска системы или, если не указан,
то каталог временных файлов установленный в операционной системе.
Пример:
МояВремДир = КаталогВременныхФайлов();
Определение режима работы программы.
Синтаксис:
МонопольныйРежим()
Англоязычный синоним:
ExclusiveMode
Возвращаемое значение:
Число 1 — если программа запущена в монопольном режиме;
Число 0 — если программа запущена в сетевом режиме.
Описание:
Функция МонопольныйРежим возвращает число 1 — если программа
запущена в монопольном режиме и 0 если нет.
Пример:
Процедура Загрузка()
Если МонопольныйРежим() 0 Тогда
ЗагрузитьНаряды();
Иначе
Предупреждение(Для запуска этой операции требуется
+
монопольный режим доступа !!!);
КонецЕсли;
КонецПроцедуры
Определение основного языка конфигурации.
Синтаксис:
ОсновнойЯзык()
Англоязычный синоним:
GeneralLanguage
Возвращаемое значение:
Число 1 — если основной язык конфигурации — русский;
Число 0 — если основной язык конфигурации — английский.
Описание:
При помощи функции ОсновнойЯзык можно прочитать текущее
значение основного языка конфигурации.
Замечание: Значение основного языка конфигурации задается в
конфигураторе (
Метаданные-Глобалъный_модуль-Свойство-Задача-Основной язык).
Значение основного языка конфигурации используется
системой в нескольких случаях, а именно, когда система передает в качестве параметра
в предопределенную процедуру название объекта конфигурации. В этом случае название
агрегатного типа данных передается либо в русском либо в английском написании
— в зависимости от текущей установки основного языка конфигурации.
Пример:
*
В данном примере при записи периодического реквизита справочника (через диалоговое
окно «История») система передает в предопределенную процедуру строковое значение
названия объекта. Нижеследующая процедура определяет, что введено значение курса
валюты и сообщает об этом.
Процедура ПриЗаписиИстории(ИмяОбъекта, Объект, Значение, ДатаИстории)
Если ОсновнойЯзык() = 1 Тогда
СПР = Справочник;
Иначе
СПР
= Reference;
КонецЕсли;
Если ИмяОбъекта = СПР + .Валюты.Текущ_курс Тогда
Сообщить(Добавлено новое значение курса);
Сообщить(Для валюты + Объект.Наименование);
Сообщить(На дату + ДатаИстории);
Сообщить(Установлено значение + Значение);
КонецЕсли;
КонецПроцедуры
См. также: ПриУдаленииИстории,
ПриЗаписиИстории
Понятие транзакций соответствует общепринятому пониманию транзакций баз данных.
В системе 1С:Предприятие транзакции активно используются самой системой при
записи различной информации. Транзакция гарантирует неизменность информации
в базе данных для других пользователей до ее завершения и целостное сохранение
информации.
Возможность использования транзакций в языке должна применяться только в тех
программных модулях, которые выполняют запись изменений в информационной базе
(в справочниках, константах, документах). Их не следует использовать в алгоритмах
формирования движений документов. Транзакции также не стоит использовать при
одиночных записях. Типичный пример когда следует использовать транзакции — это
процедура, которая будет во всех элементах справочника менять некоторый параметр.
Для начала транзакции используется процедура НачатьТранзацию.
Для фиксации сделанных в процессе выполнения изменений применяется процедура
ЗафиксироватьТранзакцию.
Для отмены изменений, сделанных в процессе выполнения транзакции — процедура
ОтменитьТранзакцию.
Таким образом, все действия с базой данных, выполняемые внутри скобок: НачатьТранзакцию
— ЗафиксироватьТранзацию собственно и являются транзакцией.
Действия, заключенные в транзакцию, выполняются быстрее. Особенно существенно
разница проявляется в многопользовательском режиме и особенно существенна разница
для операций, связанных с изменением содержимого базы данных, хотя и для операций
только чтения разница может быть в разы.
Замечание. В Модуле документа (при проведении документов) в
предопределенных процедурах ОбработкаПроведения и ОбработкаУдаленияПроведения
система сама по умолчанию выполняет все действия через транзакцию, поэтому никаких
специальных действий в этих предопределенных процедурах предпринимать не нужно.
Транзакция, выполняемая одним пользователем может мешать выполнению транзакций
другими пользователями. Таким образом, важно соизмерять получающееся ускорение
от применения транзакций с возможными побочными эффектами. Другими словами,
возможно, что ускорение таково, что операция начинает выполняться столь быстро,
что можно пренебречь влиянием на других пользователей (например, ожидание секунду
– другую), а может это будет приводить к конфликтам — все зависит от конкретного
алгоритма конфигурации.
При обработке транзакции (в том числе в Модуле документа) не следует использовать
элементы интерактивного управления (например, операторы Предупреждение,
Вопрос,
ВвестиЧисло и т. п.), т. к. в этом
случае при открытой транзакции система ожидает отклика пользователя, а это может
препятствовать нормальной работе других пользователей (в результате документы
у всех остальных пользователей в этот момент могут не проводиться). Если в конфигурации
необходимо при проведении документа выдавать пользователю некоторые сообщения,
то следует использовать операторы Сообщить
или Состояние.
Открыть обработку транзакции.
Синтаксис:
НачатьТранзакцию()
Англоязычный синоним:
BeginTransaction
Описание:
Процедура НачатьТранзакцию открывает транзакцию для обработки
информации.
Пример:
Процедура УдалитьПустые()
Спр = СоздатьОбъект(Справочник.Подразделения);
Спр.ВыбратьЭлементы();
НачатьТранзакцию();
Пока Спр.ПолучитьЭлемент() = 1 Тогда
Если Спр.Количество = 0 Тогда
Спр.Удалить();
КонецЕсли;
КонецПока;
ЗафиксироватьТранзакцию();
КонецПроцедуры
Завершить успешную транзакцию.
Синтаксис:
ЗафиксироватьТранзакцию()
Англоязычный синоним:
CoinmitTransation
Описание:
Процедура ЗафиксироватьТранзакцию завершает успешную транзакцию.
Пример:
Процедура УдалитьПустые()
Спр = СоздатьОбъект(Справочник.Подразделения);
Спр.ВыбратьЭлементы();
НачатьТранзакцию();
Пока Спр.ПолучитьЭлемент() = 1 Тогда
Если Спр.Количество = 0 Тогда
Спр.Удалить();
КонецЕсли;
КонецПока;
ЗафиксироватьТранзакцию();
КонецПроцедуры
Завершить транзакцию без записи изменений.
Синтаксис:
ОтменитьТранзакцию()
Англоязычный синоним:
RollBackTransaction
Описание:
Процедура ОтменитьТранзакцию завершает транзакцию без записи
изменений.
Пример:
*
В данном примере приведена процедура заполнения справочника валют значениями
курсов из внешнего текстового файла. В процедуре используется обработка транзакции,
причем, если в процессе загрузки обнаружилось наличие некорректных данных во
внешнем файле, то процедура завершается с отменой транзакции.
Процедура ЗагрузкаКурсовВалют()
Влт = СоздатьОбъект(Справочник.Валюты);
Текст = СоздатьОбъект(Текст);
Текст.Открыть(ИмяФайла);
Если Текст.КоличествоСтрок() = 0 Тогда
Сообщить(Текст пустой!);
Возврат;
КонецЕсли;
Успешно = 1;
НачатьТранзакцию();
Для Ном = 1 по Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(Ном);
Если СтрДлина(Стр) = 0 Тогда
Продолжить;
КонецЕсли;
Поле=0;
Пока СтрДлина(Стр) 0 Цикл
Поле = Поле + 1;
Инд = Найти(Стр, -);
Если Инд 0 Тогда
Если Инд 3 Тогда
Стр1 = Сред(Стр, 2, Инд-3);
// не берем кавычки спереди и сзади, и символ
тильды.
Иначе
// если значение поля пропущено
Стр1 = ;
КонецЕсли;
Стр=Сред(Стр, Инд + 1);
// не берем символ тильды
Иначе
Стр = Сред(Стр, 2);
Инд = Найти(Стр, );
Стр1 = Сред(Стр, 1, Инд-1);
Стр = ;
КонецЕсли;
Если Поле = 1 Тогда
Код = Стр1;
ИначеЕсли Поле = 2 Тогда
Курс = Стр1;
ИначеЕсли Поле = 3 Тогда
ДатаКурса = Стр1;
КонецЕсли;
КонецЦикла;
Влт.ИспользоватьДату(Дата(ДатаКурса));
Влт.НайтиПоКоду(Код);
Если Влт.Выбран() 0 Тогда
Сообщить(Формат(Ном, 45) + - загрузка
Курса=
+ Формат(Курс, 45) + от
+ ДатаКурса);
Влт.Текущ_курс = Число(Курс);
Влт.Записать();
Сообщить( – Загружен!);
Иначе
Успешно = 0;
Сообщить(В базе данных нет валюты с кодом
+ Код);
Сообщить(Импорт данных отменён!);
Прервать;
КонецЕсли;
Состояние(Загружено +Ном+ строк.);
КонецЦикла;
Если Успешно = 1 Тогда
ЗафиксироватьТранзакцию();
Иначе
ОтменитьТранзакцию();
КонецЕсли;
КонецПроцедуры
Содержание раздела