Название: Автоматизированный бухгалтерский учет в программном комплексе «1С-М52 Предприятие» (Меркулова Т.А)

Жанр: Информационные системы и технологии

Просмотров: 1286


7.4. прочие процедуры и функции

Математические функции

ОкрГЧисло!, Число2)

Функция Окр возвращает численное значение результат округления Числа 1

до числа 2 знаков дробной части (если отрицательно, то округляется

соответственно до соответствующей целой части).

При округлении принимается следующий принцип;Окр( 1,5,0) = 1, а

окр(1.50001,0)= 2 , параметр число2 может быть опущен, при этом

принимается, что число2 = 0 •

Пример:

ОкруглЦена=Окр(ЦЕНА,-2)

Цел (Число-)

Функция Цел возвращает целую часть переданного в качестве параметра

числа^отсекая дробную часть.

Пример:

МожноКупить = Цел(НаличностьЦена);

Строковые Функции

СтрДлииа(Строка)

Функция СтрДлииа получает в качества параметра строку и возвращает

численное значение ее длины.

Пример:

Длина = стрДлина("Измерим длину строки");

СокрЛГСтрока)

Функция СокрЛ получает в качестве параметра строку, отсекает стоящие слева пробелы в качестве значения возвращает результирующую строку. Пример:

Фио = сокрЛ(фам1иимя)+""-1-СокрЛ(имя)+"' '+СокрЛ(отчество);

СокрП (Строка)- отсечь стоящие справа пробелы

Функция СокрП получает в качестве параметра строку, отсекает стоящие справа пробелы и в качестве значения возвращает результирующую строку. Пример:

ФИО = СокрЩФамилия)+>>>>-^окрП(ИМЯгЬ>>>>+СокрП(ОТЧЕССТВО);

Лев(Строка, число)

Функция Лев получает в качестве параметра строку, выбирает первые слева символы строки, числом равные числу и возвращает в качестве результирующего значения результирующую строку. Пример:

Фамилия=Лев(фио, 15);

Прав(строка число)

Фунция Прав получает в качестве параметра строку выбирает справа символы строки числом равные числу и возвращает в качестве значения результирующую строку. Пример

Отчество = прав(фио);

Сред[строка, число! ,число2)

функция Сред возвращает подстроку в строке, начиная с символа с номером число!, общим количеством число2 .Позиции в строке считаются, начиная с 1.

Найти (строка 1 строка 2)

Функция Найти находит вхождение строки2 как подстроки 6 строке 1 -возвращает  численное  значение  позиции  первого  значка найденной подстроки (первая позиция имеет индекс J) Если не находит — возвращает число 0. Пример

Симв = иайти(фио, "борис")

Bperf строка)

Функция Врег преобразует все символы строки  в верхний регистр, результирующую строку возвращает в качестве собственного значения. Исходная строка не изменяется. Пример:

Загд = врег("маленькие");

Hperf строка)

Фунекция Нрег преобразует все символы строки в нижний регистр. Результирующую строку возвращает в качестве собственного значения. Исходная строка не изменяется. Пример:

Загд = Нрег("БОЛЬШИЕ");

Функции преобразования типов

Дата(Па раметр)

Функция   преобразует   параметр   в   дату,   руководствуясь принятыми

правилами преобразования и возвращает значение даты.

Пример.

ДатаРожд=Дата(«06.03.1998»);

Строка(Параметр)

Функция преобразует параметр в  строку,  руководствуясь принятыми

правилами преобразования и возвращает значение строки.

Пример.

Стр=Строка(ДатаРожд+1);

ЧислоЩараметр)

Функция   преобразует  параметр   в   число,   руководствуясь принятыми

правилами преобразования и возвращает значение числа.

Пример.

Чис=Чис ло(В ар+Род);

Процедуры и функции форматирования •  Пропись ( <Параметр> )

<Параметр>      Строковое выражение, задающее имя прописи или имя файла, в котором она находится. Возвращаемое значение: Нет.

Процедура Пропись задает образец^ в соответствии с которым будут выводиться числа прописью функцией Формат. Параметр представляет собой строку, задающую имя файла, в котором находится образец прописи чисел. Если строка параметра пустая или состоит из пробелов, устанавливается пропись по умолчанию. Действие данной процедуры распространяется только на текущий программный модуль.

Ниже приводится пример текста файла, содержащего образец прописи чисел:

{ Speller",

{ Money ", { Рубль " , " Рубля " , " Рублей " , " Копейка " , " Копейки " , " Копеек " } } ,

{ Numbers ", { Один" , "Два" , "Три" , "Четыре" , "Пять" , "Шесть" , "Семь" , "Восемь" . Девять" , "Одна" , "Две" . "Десять" , "Одиннадцать" , "Двенадцать", «Тринадцать" , "Четырнадцать" , "Пятнадцать" , "Шестнадцать", "Семнадцать" , "Восемнадцать" , "Девятнадцать" , "Двадцать" , "Тридцать", "Сорок" , "Пятьдесят" , "Шестьдесят" , "Семьдесят" , "Восемьдесят", "Девяносто" , "Сто" , "Двести" , "Триста" , "Четыреста" , "Пятьсот", " Шестьсот" , "Семьсот" , "Восемьсот" , "Девятьсот" , "Тысяча" , "Тысячи", " Тысяч ", "Миллион" , "Миллиона" , "Миллионов" , "Миллиард" , "Миллиарда" , "Миллиардов" , "Триллион" , "Триллиона" , "Триллионов" } } , { "Date", { "Январь" , "Февраль" , "Март" , "Апрель" , "Май" , "Июнь" , "Июль" , "Август" , "Сентябрь" , "Октябрь" , "Ноябрь" , "Декабрь" , "Января" , "Февраля" , "Марта" , "Апреля" , "Мая" , "Июня" , "Июля" , "Августа" , "Сентября" , "Октября" , "Ноября" , "Декабря" , "г. " , "Квартал'7 } } Пример:

Процедура Печать (Тип) Таб^СоздатьОбъект ( " Таблица " ) ;

Пропись ("lcue.spl"); // задаем имя файла прописи Таб. Опции (0.0,0,0); Таб.ТолькоПросмотр ( 1 ); Таб.Показать ( "Печать отчета" , " " ) ;

Пропись (""); // возвращаем значение прописи по умолчанию КоиецПроцедуры

• Формат (<Параметр>, <Форматная строка>) Возвращаемое значение: Строковое значение.

Функция Формат форматирует переданный параметр, руководствуясь информацией, содержащейся в параметре <Форматная_строка>. Возвращает сформатированную строку.

Параметр может быть сформатирован как число, строка или дата. Если тип параметра не соответствует виду форматирования, указанному в форматной строке, то будет произведено соответствующее преобразование типа.

Форматная строка состоит из символа, определяющего тип данных, для которого будет производиться форматирование и дополнительных параметров, уточняющих, как должно быть сформатировано значение, представленное первым параметром. Результатом работы функции является строковое значение, представляющее результаты форматирования. Символы, определяющие тип форматируемых данных: ч ■— число (англоязычный синоним: N); С — строка (англоязычный синоним: S); Д — дата (англоязычный синоним: D) ,

Между символом, определяющим тип форматируемого значения и дополнительными уточняющими параметрами может находиться любое число пробелов.

Для числовых значений форматная строка должна иметь вид: "4m. nDT" или "4т", где тип - целые числа. Целое положительное число m определяет длину поля в котором будет размещаться строковое представление числа, а целое положительное число п определяет число знаков после десятичной точки. D — представляет собой любой символ (кроме пробела и цифры), которым в сформатированной строке целая часть будет отделяться от дробной, а т — символ (также кроме пробела и цифры), которым будут разделяться триады целой части числа Символы D и Т являются необязательными.

Если в форматной строке проставить символ "0" (ноль) перед длиной поля, то нулевые значения при выводе будут подавляться (выводится пустая строка). Пример: "4015.2".

Если в форматной строке проставить символ "-" перед длиной поля, то нулевые значения при выводе будут отображаться прочерком. Пример:"4-17 .2".

В форматной строке для числа можно использовать сдвиг разрядов при выводе. Это позволяет, например, отображать числовое значение в тысячах и т.п. В этом случае форматная строка должна заканчиваться символами ">Х " , где X — количество сдвигаемых разрядов. Например, форматная строка:

"401ОЗ" — означает вывод числа в тысячах (сдвиг на три разряда). Строковое представление числа всегда является правоустановленным. Кроме того, возможен вывод денежных величин и просто целых чисел прописью. В этом случае форматная строка должна иметь вид "4ПДС''. Наличие буквы "П" (в английском варианте для аналогичной цели используется буква "S") определяет сам факт вывода числа прописью. Символ "Д" (в английском варианте — "М") обозначает вывод денежной величины и является необязательным. Символ "С" (в английском варианте — "Н") также необязателен и означает вывод с копейками.

Для форматирования строк используется следующая форматная строка: "Сп", где п — положительное целое число определяющее ширину поля, в котором будет размещаться строка. В случае, если ширина поля превосходит длину строки, сформатироваиная строка будет дополнена справа пробелами, если же ширина поля меньше длины строки — строка будет усечена справа.

Для форматирования даты используется форматная строка вида "Ц<ПодстрокаФормата>", где <Т7одстрока<1>орма.та> представляет собой строку, определяющую вид сформатированного представления даты:

DDMMYY (ДДММГГ)

дата в виде ДД.ММ.ГГ    DDMMYYYY (ддммгггг)

дата в видеДД.ММ.ГГГГ   DDMMMMYYYY (ддммммгтгг)

дата в виде ДД месяц прописью ГГГГ MMMMYYYY (ммммгггг)

дата в виде месяц прописью   ГГГГ MMMMYY (ММММГТ)

дата в виде месяц прописью   ГГ QQQQYYYY (ККККТПТ)

дата в виде N квартала  ГГГГ QQQQYY (ККККГГ)

дата в виде N квартала  ГГ

Пример:

ДолгКлиента=Строка(Формат(-Долг() ,"412.2") )+" "+ Валюта.Сокрназв; • Шаблон ( <Строка шаблон>)

<Строка_шаблон>    Строковое выражение, содержащее шаблон

формирования результирующей строки.

Возвращаемое значение: Строковое значение.

Функция Шаблон возвращает строковое значение, сформированное в соответствии с заданным параметром <Строка_ишблон>, заменив в ней все встроенные выражения, заключенные в квадратные скобки, на их строковые значения.

Строковое значение параметра <Строка_иа6лон> обрабатывается следующим образом: символы "[" , "]" (квадратные скобки) являются специальными символами, которые выделяют поля, содержащие встроенные выражения. Например: Имя клиента [Имя], телефон: [Телефон]

После встроенного выражения может стоять символ "#", после которого следует Форматнаястрока;описанная в функции Формат. В этом случае в данное поле будет проставлен результат выражения, обработанный функцией

Формат. Пример:

Стр=Шаблон("Это название услуги: [Услуга-Наименование]'"); // выдает: "Это название услуги: Вывоз мусора"

ФиксШаблои ( <Строка шаблон> )

<Строка_шаблон>    Строковое выражение, содержащее шаблон

формирования результирующей строки.

Возвращаемое значение: Строковое значение.

Функция ФиксШаблон возвращает строковое значение, сформированное в соответствии с заданным параметром <Строка_шаблон>, заменив в ней все встроенные выражения, заключенные в квадратные скобки, на их значения. В отличие от функции Шаблон, поля замещаются значениями выражений с сохранением своей длины в символах, то есть обрезаются, если поле короче результата вычисления выражения и дополняются пробелами, если длиннее. Если результат числовой, то в границах поля строка прижимается к правой границе.

Строковое значение параметра <Строка_шаблон> обрабатывается следующим образом: символы "[" , "]" (квадратные скобки) являются специальными символами, которые выделяют поля, содержащие встроенные выражения. Выделенные поля фиксируют свою длину с учетом ограничивающих скобок. Например: Имя Клиента [Имя], телефон: [Телефон]

После встроенного выражения может стоять символ "#", после которого следует Форматная_строка описанная в функции Формат. В этом случае в данное поле будет проставлен результат выражения, обработанный функцией. Формат.

Пример:

/ / ниже - пример с дополнением пробелами

Стр=Ша6лон ("Это название услуги [Услуга»Наименование ]"); // выдает: "Это название услуги1 Вывоз мусора " / / далее - с сокращением строки

Стр.Шаблон("Это название услуги [Услуга.Наименование]");

 

Функции для вызова диалога ввода данных

ВвестиЧисло (Число Модсказка Ллина Точность )

Число        Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное значение числа.

Подсказка Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю.

Длина        Длина вводимого числа.

Точность   Количество знаков после десятичной точки.

Возвращаемое значение; Числовое значение: 1 — если в диалоге нажата кнопка «ОК»; 0 — если нажата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.

Функция ВвестиЧисло выполняет вызов диалога для ввода числа.

Пример:

Если ВвестиЧисло(Ном, "Введите номер приказа" ,5,0,10)=1 Тогда ВыбДок.СоздатьОбъект ( " Документ. Приказ " ) ; ВыбДок.НайтиПоНомеру (Строка (Ном), Дата (0)); Если ВыбДок. Выбран ()-1 Тогда //... ИначеЕсли; //... КонецЕсли; КонецЕсли;

• ВвестиСтроку (Строка, Подсказка, ДлинаСтроки, Признак)

<Строка> Имя переменной, ранее объявленной в программном модуле. В эту переменную будет помещено введенное строковое значение.

<Подсказка> Текст заголовка окна диалога ввода. Может

использоваться в качестве подсказки конечному пользователю.

<ДлинаСтроки> Числовое выражение — длина строки.

<Признак> Необязательный параметр. Числовое выражение, если 0 — ввод простой строки без разделителей строк, если 1 — ввод многострочного текста с разделителями строк. Значение по умолчанию —0.

Возвращаемое значение: Числовое значение: 1 — если в диалоге нажата кнопка «ОК», 0 — если нажата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.

Функция ВвестиСтроку выполняет вызов диалога для ввода строки.

Пример:

Процедура ВводКодовПродукции ( )

Если Продукция. Вод=Перечисление.ВидПродукции. Наша Тогда НК=Код;

Если ВвестиСтроку(НК, "Введите код продукции" ,40,1,9)=1 Тогда

Код-НК; КонецЕсли; Иначе Код= " " ; Возврат;

КонецЕслн; КонецПроцедуры

•  ВвестиДату ( Дата, Подсказка)

дата    Имя переменной, ранее объявленной в программном модуле. В

эту переменную будет помещено введенное значение даты. Подсказка Текст заголовка окна диалога ввода. Может использоваться в качестве    подсказки конечному пользователю.

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

Числовое значение: 1 — если в диалоге нажата кнопка «ОК»", 0 — если нажата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожидания ответа.

Функция ВвестиДату выполняет вызов диалога для ввода даты.

Пример:

Процедура ВводДатьтСсуды ( )

Если ВидРасчета=ВидРасчета.БеспропентнаяСсуда Тогда

ДатаСсуды=Дата ( 0 ) ;

Возврат; КонецЕслн;

Если ДатаСсуды=Дата ( 0 ) Тогда

ДатаСсуды=ДатаДок+3 0; КонецЕслн; Д-ДатаСсуды;

Если ВвестиДату (Д, "Введите дату ссуды" )=1 Тогда

ДатаСсуды=Д; Иначе

ВидРасчета= ВидРасчета. БеспроцентнаяСсуда;

КонецЕслн;

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

•  ВвестиПеречислеиие ГЗиачеиие, Подсказка) ^

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

Подсказка Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю.

Возвращаемое зиачепие: Числовое значение: 1 —■ если в диалоге нажата кнопка «ОК», 0 — если на жата кнопка «Отмена»; -1 (минус единица) — если

закончилось время ожида ния ответа.

Функция ВвестиПеречисление выполняет вызов диалога для ввода перечисления.

Пример:

Процедура УстПризнак1 ( )

ВыбПризн=Перечисление. ТипСотрудника. Штатный ;

Если ВвестиПеречисление (ВыбПризн ."Выберите тип") > 0 Тогда

Тип = ВыбПризн;

Иначе

Тип= Перечисление . ТипСотрудника. Штатный ;

КонецЕсли;

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

Процедура УстПризнак2 ( ) ВыбПризн— " ТипСотрудника ";

Если ВвестиПеречисление(ВыбПризн, "Выберите тип") > 0 Тогда

Тип = ВыбПризн;

Иначе

Тип=Перечисление .ТипСотрудника. Штатный;

КонецЕсли;

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

Процедуры и функции общего назначения • Вопрос ( Текст вопроса. Режим)

<Реж1Ш>   Числовое или строковое выражение, определяющее режим

вывода окна вопроса.

Функция Вопрос выводит на экран окно вопроса. Текст определяется параметром <Текст_вопроса>. Параметр <Режим> определяет варианты возможных ответов.

Если параметр <Режим> задан числовым значением, то возможные варианты передаваемого параметра:

кнопка «ОК».

кнопка «ОК» и Отмена

кнопки Отказ, Повтор, Отмена

кнопка Да,Нет,Отмеиа.

кнопка Да,Нет.

кнопка повтор,Отмена.

Если параметр <Режим> задан строковым значением, то функция возвращает строковое значение. Язык для возврата такой же, какой использован в параметре <Режим>.

Любое другое Числовое значение параметра <Режшг> эквивалентно значению 0 (кнопка «ОК»), равно как и отсутствие указанного параметра. Функция возвращает числовой результат:

Выбрана кнопка «ОК».

Выбрана кнопка «Отмена».

Выбрана кнопка «Стоп».

Выбрана кнопка «Повтор».

Выбрана кнопка «Дальше».

Пример:

Рез=Вопрос ("Вы получили данное сообщение?",4) ;

Предупреждение (Текст сообщения ) Текст сообщения      Строковое выражение. Возвращаемое значение: Нет.

Процедура Предупреждение выводит на экран окно предупреждения (Mes-sageBox). Текст определяется параметром <Текстсообщения>. Пример:

Предупреждение ( "Доброе утро! " );

Сообщить (Текст сообщения^) <Текст сообщения>     Строковое выражение. Возвращаемое значение: Нет.

Процедура Сообщить выводит <Текст_соо6щения> в окно сообщений. Пример:

Сообщить ( "Доброе утро " ); • Состояние (Текст сообщении)

Текст сообщения Строковое выражение.

Возвращаемое значение: Нет. Процедура Состояние выводит строку текста в строку состояния (статус-бар). Текст определяется параметром Текст сообщения.

Пример: Состояние ( "Доброе утро ! " )

? ( <Логич выраж>\% <Выраж1>, <Выраж2>) Логич_еыраж    Логическое выражение. Выраж! Выражение.

Выраж2 Выражение. Возвращаемое значение: Результирующее значение. Функция ? вычисляет значение <Логич_еыраж> и если его значение — истина, то возвращает вычисленное значение <Выраж1>- Если значение <Логич_еыраж> — ложь, то возвращает вычисленное значение <Выраж2>.

Пример:

Сир. ВыбратьЭлементы ( );

Пока ( Спр. ПолучитьЭлемент ( ) >0 ) Цикл

Состояние (Спр.Наименование);

Сообщить (Спр .Наименование) ;

Sec=? (Спр.ЭтоГруппа=1 , "Folder" , "DL" ); Таб. ВывестиСекцию ( Sec+" -VI" ) ; Таб. ПрисоединитьСекцию ( Sec+"-V3 " ); КонецЦнкла;

Сигнал ( )

Процедура Сигнал издает короткий звуковой сигнал.

Пример:

Сигнал ( ) ;

Разм ( Ими массива )

Возвращаемое значение: Числовое значение размерности массива. Функция  Разм  возвращает  числовое  значение  размерности массива> переданного в качестве параметра. Пример:

Перем Массив_для_хранения[ 10]; Размер=Разм (Массив__для_хранения);

ИмяПользователя (1

Возвращаемое значение: Строковое значение — имя пользователе работающего в данный момент с программой,

Функция ИмяПользователя возвращает имя пользователя (указанное в конфигураторе в списке пользователей), работающего в данный момент с программой.

Пример:

Спр=СоздатьОбъект ( " Справочник. Сотрудники *' ); Спр. НайтиПоКоду (ИмяПользователя ( ) ); Менеджер=Спр. ТекущийЭлемент ( ) ; Если Менеджер. Выбран ()=0 Тогда Предупреждение ("Не выбран менеджер!"); КонецЕслн;