Главная » 1С Предприятие » ПЕРЕМЕННЫЕ ЧИСЛОВЫЕ, СИМВОЛЬНЫЕ И ДАТЫ

0

Переменные разделяются на  скалярные и массивы.  В текущей  реализации  1С  можно  использовать только  одномерные массивы,  называемые  также  векторами.

Переменные появляются  в программе:

•   после их объявления, например

перем  а, стр;

//

Объявляем  скалярные переменные а и стр

перем  мас[20];

//

Объявляем  вектор из 20 элементов

•   после  первого размещения имени переменной (числовой,  строковой  и даты)  в правой части оператора присваивания, например

у = Лог(а);                   //           Вводим переменную у, определяем ее тип и значение

•   при     определении     имен    идентификаторов     редактируемых     элементов     диалога (см. разд.  1.5);

•   при  задании  формальных параметров  процедур, например  в  пользовательской  функции

функция  ВычислитьУ(х)          //      х формальный параметр функции ВычислитьУ х = 2.0 * х;                  //           употребляется в функции как переменная

у = 2 * Лог(х);               //         Лог встроенная  функция

возврат у;

конецФункции // ВычислитьУ

формальный параметр x используется  как  скалярная переменная.

При  объявлении  переменной ее тип и  значение  не  определяются. Такая  переменная  имеет пустое значение.  Однако ее можно  употреблять в  выражениях.  Например:

Пример 1. Тип и значение  переменной а не определены. Встроенная функция ПустоеЗначение(а) вернет  1, а результатом последующего выражения будет 0.

перем  а;                             //

Объявляем  скалярную переменную а

Сообщить(ПустоеЗначение(а));

//

Напечатает  1

Сообщить(а);                       //

Напечатает пустую строку

б = 2 * а;

Сообщить(ПустоеЗначение(б));

//

Напечатает 1. То есть б имеет пустое значение

Сообщить(б);                       //

Напечатает 0, а не пустую строку,

// несмотря на то что б имеет пустое значение

Сообщить(б  + 3);

//

Напечатает 3

Сообщить(а  + 3);

//

Напечатает пустую строку

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

Пример 2. Переменные а и стр после  выполнения  присваивания будут иметь  соответственно числовой и символьный тип.

перем  а, стр;                         //               Объявляем  скалярные переменные а и стр

а = 1.22;                             //                 Теперь  переменная а имеет числовой тип

стр = "Это строка";                    //           Теперь  переменная стр имеет символьный тип

Пример  3.  При  вызове функции  ВычислитьУ ее формальный параметр х будет  определен  как числовая переменная (текст  функции ВычислитьУ см.  выше).

процедура Выполнить()

б = ВычислитьУ(3.0);              //        При вызове функции ВычислитьУ определяется Сообщить("б   =  "  +  б);   // тип  и   значение   ее   формального   параметра   х

конецПроцедуры // Выполнить

Замечание.   Переменные,  имена  которых   неизвестны  в  программном  компоненте, нельзя  использовать  в  качестве  фактических  параметров  других  программных компонентов. Например, ошибочен  следующий код:

процедура  ОпределитьХ(х) х = 2.0;

конецПроцедуры // ОпределитьХ

процедура Выполнить()

ОпределитьХ(х);                 //          Этот вызов в текущей  версии недопустим Сообщить(х);

конецПроцедуры // Выполнить

В то же время вполне корректен второй вариант процедуры  Выполнить: процедура Выполнить()

конецПроцедуры // Выполнить

По  ходу выполнения  программы одна  и та же переменная может  менять  свой тип, например:

перем  а;

//

Объявляем  скалярные переменные а

а = 1.22;

//

Теперь  переменная а имеет числовой тип

Сообщить(а);

//

Напечатает 1.22

а = "Это строка";

//

Теперь  переменная а имеет символьный тип

Сообщить(а);

//

Напечатает Это строка

а = ‘24.12.01’

//

Теперь  переменная а имеет тип Дата

Сообщить(а);

//

Напечатает 24.12.01

2.3.  ВВОД ЗНАЧЕНИЙ РАЗНЫХ  ТИПОВ

Значения  имеющихся в  программе переменных  числового,  символьного типа,  дат и  агрегатных типов  можно   определить, используя  диалоги,  вызываемые  приведенными  в  табл.  2.1  функциями;  в  табл.  2.2 приведен их синтаксис,  а в табл.  2.3  описание их параметров.

Функции ввода значений

Таблица 2.1

Синтаксис функций ввода значений

флаг = ВвестиЧисло(пер, заг, длина, точность, [задержка]); флаг = ВвестиСтроку(пер, заг, длина, [признак], [задержка]); флаг = ВвестиДату(пер, заг, [задержка]);

флаг = ВвестиЗначение(пер, заг, тип, [длина], [точность]);

Таблица 2.2

Описание параметров функций ввода значений

Таблица 2.3

Параметр

Описание

длина

Длина числового или символьного  поля  ввода. Задается при  вводе чисел и строк

задержка

Числовое выражение, задающее время ожидания ввода данных в секундах. При его превышении диалог исчезает, функция  возвращает -1, значение переменной пер не  изменяется. Время  ожидания  неограниченно, если задержка  равна нулю или если этот  параметр опущен

заг

Текст  заголовка  окна  диалога,  например  "Ввод сотрудника"

пер

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

Параметр

Описание

признак

Числовое выражение, задающее вид вводимой строки. Если признак равен единице, то появляется  диалог ввода многострочного текста  с разделителями (см. разд. 2.2), в противном случае вводится строка без разделителей строк  (задано по умолчанию)

тип

Тип переменной, значение которой определяется при нажатии на ОК, например "Число", "Строка", "Дата", а также разновидности агрегатных типов Справочник, Документ и Перечисление, например "Справочник.Сотрудники", "Документ.Договор", "Перечисление.Пол". В случае задания несуществующего типа, например "Символ", или типа, с которым функция не работает, например "Календарь", диалог ввода Ьанных не появляется  и значение переменной пер сохраняется, а функция возвращает нуль

точность

Число знаков после десятичной точки в поле ввода числового значения.

Задается при вводе чисел

Замечания:

1.      Все  функции  возвращают число  1, если  нажата  кнопка ОК, или  0 в  противном случае.

2.       Функции  ВвестиДату и  ВвестиЗначение позволяют  задавать  в  поле  ввода  несуществующие даты.  В  этом  случае  в  определяемую переменную  пер  при  нажатии  ОК устанавливается пустое  значение.

Примеры:

перем а, сотр;

флаг = ВвестиЧисло(а, "Введите номер  документа", 10, 0); флаг = ВвестиСтроку(а, "Введите подстроку для поиска", 30); стр = "Это длинная символьная константа,

| поскольку она размещается не на одной,

| а на трех строчках";

// Задаем  надлежащее (достаточно большое) число символов в тексте

// Диалог, появляющийся после вызова функции, приведен на рис. 2.2, а

флаг = ВвестиСтроку(стр, "Отредактируйте текст и нажмите ОК", 500, 1);

// Диалог, появляющийся после вызова функции, приведен на рис. 2.2, б

// После выбора сотрудника переменная сотр будет иметь тип Справочник

флаг = ВвестиЗначение(сотр, "Выберите сотрудника", "Справочник.Сотрудники");

а                                                                                   б

Рис. 2.2. Диалоги ввода данных: а многострочного текста; б сотрудника

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии