Формирует позицию документа согласно переданным параметрам
Синтаксис 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 ".
В форматной строке для числа можно использовать сдвиг разрядов при выводе. Это позволяет, например, отображать числовое значение в тысячах и т. п. В этом случае форматная строка должна заканчиваться символами ">Х" , где Х — количество сдвигаемых разрядов. Например, форматная строка: "Ч010>3" — означает вывод числа в тысячах (сдвиг на три разряда).
Строковое представление числа всегда является правоустановленным.
Кроме того, возможен вывод денежных величин и просто целых чисел прописью. В этом случае форматная строка должна иметь вид "ЧПДС". Наличие буквы "П" (в английском варианте для аналогичной цели используется буква "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 Тогда
ЗафиксироватьТранзакцию();
Иначе
ОтменитьТранзакцию();
КонецЕсли;
КонецПроцедуры