1С Предприятие 8.0. Описание встроенного языка

         

Общие итоги


Для расчета итогов по всей таблице в предложении ИТОГИ сле­дует указать слово ОБЩИЕ. В этом случае будут вычислены зна­чения агрегатных функций для всех записей таблицы.

Пример:

Выбрать

    Накладная.Контрагент.Наименование,

    Накладная.Номер,

    Накладная.Сумма

Из

    Документ.РасходнаяНакладная Как Накладная

Итоги

    Сумма (Накладная.Сумма) Общие

Результат запроса:



Наименование Номер Сумма
    256 555,45
Павильон 45 на оптовом рынке 00007 6000
Павильон 45 на оптовом рынке 00006 11 500
Торговый дом «Буденовский» 00005 1 500
Торговый дом «Буденовский» 00004 1 500
Торговый дом «Буденовский» 00003 52500
Торговый дом «Буденовский» 00002 16000
Ярмарка одежды 00001 54000
Торговый дом «Буденовский» 00009 555
Павильон 45 на оптовом рынке 00016 80 000,23
Трикотажная фабрика «Заря» 00012 4500
Торговый дом «Буденовский» 00015  
Торговый дом «Буденовский» 00014 16500
Бавария - фарфор 00013 12 000,22



ОформлениеЯчейки


Определяет оформление ячейки табличного документа. Исполь­зуется

для определения свойства Ячейки объекта ОформлениеСтроки.

Пример:

Для каждого ОформлениеЯчейки из ОформлениеСтроки.Ячейки Цикл

ОформлениеЯчейки.ЦветФона = Новый Цвет(5, 12, 120);

КонецЦикла ;

См. также:

ОформлениеСтроки.



ОформлениеСтроки


Определяет оформление строки табличного документа. Использу­ется для определения значений типа ОформлениеСтроки.

См.также:

ОформлениеЯчейки. ТабличноеПоле, событие ПриВыводеСтроки.



Ограничения


Основное назначение объектов XBase - организация экспорта-импорта информации в/из внешних файлов формата DBF.

Объекты XBase не поддерживают поля типа memo.

Объекты XBase поддерживают только монопольный доступ к файлам.

XBase-объекты поддерживают индексные файлы в формате CDX. Однако, использование внешними программами (например, FoxBase) индексных файлов, созданных с помощью объектов XBase, так же, как и использование объектами индексных фай­лов, созданных внешними программами, не рекомендуется из-за возможной несовместимости версий.



Операции выбора в языке запросов


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

Операция выбора описывается следующим набором правил:

<Операция выбора>

ВЫБОР

<Альтернативы выбора>

[ИНАЧЕ

    <Выражение>]

КОНЕЦ

<Альтернативы выбора>

<Одиночный выбор> [<Альтернативы выбора>]

<Одиночный выбор>

КОГДА

    <Логическое выражение>

ТОГДА

    <Выражение>

В операции выбора может указываться неограниченное количест­во альтернативных одиночных выборов КОГДА... ТОГДА. Они обрабатываются в запросе последовательно; если <Логическое выражение> имеет значение ИСТИНА, обработка операции вы­бора завершается; результатом операции является значение вы­ражения, указанного после слова ТОГДА. Логические выражения описаны на стр. 358.

Значение выражения, указанного после слова ИНАЧЕ использует­ся в качестве результата операции выбора в том случае, если во всех ранее указанных альтернативных одиночных выборах преди­кат имел значение ЛОЖЬ.

Пример:

Выбрать

    Справочник.Номенклатура.Наименование,

    Выбор

        Когда Справочник.Номенклатура.ЭтоГруппа = Истина Тогда "Это Группа"

        Когда Справочник.Номенклатура.ЗакупочнаяЦена > 1000 Тогда "1000 -"

        Когда Справочник.Номенклатура.ЗакупочнаяЦена > 100 Тогда "100 - 1000"

        Когда Справочник.Номенклатура.ЗакупочнаяЦена > 10 Тогда "10 - 100"

        Когда Справочник.Номенклатура.ЗакупочнаяЦена > 0 Тогда «0 - 10»

        Иначе "Не Задана"

    Конец Цена

Результат запроса:

Наименование Цена
Брюки детские 100 - 1000
Рубашка «Ковбойка» 1000-
Одежда Это группа
Джинсы женские 1000-
Свитер детский Не задана
Сантехника Это группа
Бытовая техника Это группа
Раковина «Лилия» Не задана
Мойдодыр «Аквариум» Не задана
Смеситель «Ультра» 100 - 1000
Кухонный комбайн Крупе 1000-
Мясорубка Браун Не задана
Электронож Крупе Не задана
Зажигалка для газовой плиты «Огонек» Не задана
Калькулятор бухгалтерский Не задана
Кухонная техника Это группа
Оргтехника Это группа



Оператор присваивания


Синтаксис:

<Назначение> = <Источник>;

Параметры:

<Назначения>

В качестве <Назначения> может выступать переменная или свойство объекта встроенного языка, которое допускает запись.

<Источник>

Выражение, значение которого необходимо присвоить.

Описание:

Оператор присваивания (символ "=") означает присваивание значения     <Источник>     переменной,    обозначенной    как <Назначение>.

Пример:

А = В;

Стр1 = "777";

ДатаДокумента= '20020717';



Операторы и синтаксические конструкции


? (вычислить выражение по условию)

Синтаксис:

? {<Логическое выражение>, <Выражение 1>, <Выражение 2>)

Параметры:

<Логическое выражение>

Логическое выражение, результат вычисления которого определяет одно из результирующих выражений, которые будут вычислены. Если результат его вычисления Истина, то будет вычисляться <Выражение 1>. Если результат Ложь - то <Выражение 2>.

<Выражение 1>

Результирующее выражение, которое будет вычисляться, если результат логического выражения Истина.

<Выражение 2>

Результирующее выражение, которое будет вычисляться, если результат логического выражения Ложь.

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

Результат вычисления одного из результирующих выражений.

Описание:

Позволяет вычислить одно из двух заданных выражений в зависимости от результата вычисления логического выражения.

Пример:

Статус = ?(ПолучитьСкидку() > 10, "Особый клиент", "Обычный клиент");

Предупреждение(Статус) ;

Выполнить (Execute)

Синтаксис:

Выполнить(<Строка>)

Параметры:

<Строка>

Срока, содержащая текст исполняемого кода.

Описание:

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

Замечание! Исполняемый код не должен содержать в себе отдельных процедур или функций, т.к. исполнение кода само по себе идет в рамках процедуры или функции, в которой использован этот оператор. А также не должен содержать явного объявления переменных.

Важно! Не рекомендуется реализовывать с помощью этого метода существенную часть функциональности прикладных решений.

Пример:

// Выводит в окно сообщений текущую дату. 

Выполнить ("Сообщить (ТекущаяДата ())");

Для (For)

Синтаксис:

Для <Имя переменной > = <Выражение 1 > По <Выражение 2> Цикл

// Операторы [Прервать;I

// Операторы [Продолжить ; ]

// Операторы

КонецЦикла ;

Параметры:

<Имя переменной>

Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается на 1 при каждом повторении цикла.




Так называемый счетчик цикла.

<Выражение 1>

Числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла.

По

Синтаксическая связка для параметра <Выражение 2>.

<Выражение 2>

Максимальное значение счетчика цикла. Когда переменная <Имя переменной> становится больше чем <Выражение 2>, выполнение оператора цикла Для прекращается.

Цикл

Операторы, следующие за ключевым словом Цикл, выполняются, пока значение переменной <Имя переменной> меньше значения <Выражение 2>.

// Операторы

Исполняемый оператор или последовательность таких операто­ров.

Прервать

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

Продолжить

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

КонецЦикла

Ключевое слово, которое завершает структуру оператора цикла.

Описание:

Оператор цикла Для предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл-КонецЦикла. Перед началом выполнения цикла значение <Выражение 1> присваивается переменной <Имя переменной>. Значение <Имя переменной> автоматически увеличивается при каждом проходе цикла. Величина приращения счетчика при каждом выполнении цикла равна 1. Цикл выполняется пока значение переменной <Имя_переменной> меньше или равно значению <Выражение 2>. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Пример:

// Перебор дней текущего месяца

ПоследнийДеньМесяца = День(КонецМесяца(РабочаяДата));

Для ТекДень = 1 по ПоследнийДеньМесяца Цикл

    Состояние("Обрабатывается день: " + ТекДень);

// Операторы обработки очередного дня месяца

КонецЦикла;

«««««««««« 1С:Предприятие 8.0 »»»»»»»»»»

Описание источников запроса


Задача предложения ИЗ состоит в том, чтобы обозначить список исходных таблиц - источников данных, используемых в данном операторе ВЫБРАТЬ.

Следует, отметить, что предложение ИЗ в языке запросов являет­ся опциональным. Оно может быть опущено в том случае, если источники данных полностью квалифицированы в описании спи­ска полей выборки, содержащегося в предложении ВЫБРАТЬ. Обратите внимание, что ряд примеров в предыдущих разделах не содержал предложения ИЗ.

После ключевого слова ИЗ указывается список источников. В об­щем случае список источников описывается следующим набором правил:

<Список источников>

<Источник>[, <Источник>[, ...]]

Источники данных запроса перечисляются в списке источников через запятую. Каждый <Источник> в списке источников обя­зательно включает в себя описание источника; кроме того, может быть указан <Перечень соединений> - правила соединений источника с другими источниками. Спецификации соединений описываются ниже.

<Источник>

<Описание источника> [ <Перечень соединений> ]

Если в качестве источника данных выступает таблица информа­ционной базы, <Описание источника> содержит <Имя таблицы>.

<Описание источника>

<Таблица> [ [КАК] <Псевдоним источника>]

Если исходная таблица виртуальная, могут быть указаны <Параметры> ее формирования. Подробно параметры виртуальных таблиц описаны в разделе «Источники данных запросов».

<Таблица>

<Имя таблицы> [(<Параметры>)] | <Описание запроса>

В качестве источника данных запроса может выступать также вложенный запрос; в этом случае описание источника содержит <Описание запроса>. Использование вложенных запросов описано на стр. 315.

В описании источника данных может быть также назначен его псевдоним. В дальнейшем <Псевдоним источника> может использоваться для более удобного обращения к данному источ­нику. Применение псевдонимов источников данных рассмотрено на стр. 313.



Описание полей выборки


После обязательного ключевого слова ВЫБРАТЬ (и уточняющих слов РАЗЛИЧНЫЕ и ПЕРВЫЕ) в тексте запроса задается список полей выборки. Эти поля будут обрабатываться при выборке дан­ных в запросе. Результат запроса также будет иметь набор полей, определенный в данном списке. Поля выборки описываются по следующим правилам:

<Список полей выборки>

<Поле выборки>[, <Поле выборки>[, ...] ] | *

<Поле выборки>

<Описание поля> [ [КАК] <Псевдоним поля>]

<Описание поля>

<Выражение>[.<Группа полей>]

Список полей выборки состоит из одного или нескольких эле­ментов, разделенных запятыми. Каждое <Поле выборки> со­стоит из описания поля выборки и необязательного псевдонима поля.

Вместо перечисления полей в списке выборки можно указать звездочку «*». Это будет означать, что результат запроса должен содержать все поля, которые есть в исходных таблицах - источ­никах данных запроса, описанных в списке источников.

Замечание!

При указании звездочки «*» в списке полей вы­борки в результат не включаются виртуальные поля исходных таблиц.

<Описание поля> определяет, каким образом должны форми­роваться значения поля. В простейшем случае поле выборки яв­ляется ссылкой на поле исходной таблицы. Ссылка может зада­ваться с указанием таблицы, содержащей это поле, или без указа­ния самой таблицы. Разыменование полей рассматривается на стр. 345.

В общем случае поле выборки может представлять собой не толь­ко ссылку на поле исходной таблицы,  а некоторое <Выражение>. Подробно выражения рассмотрены на стр. 344.

Результаты запроса могут быть сгруппированы с помощью агре­гатных функций, указанных в качестве выражений в полях вы­борки. Группировка результатов запроса рассматривается на стр. 316. Агрегатные функции описаны на стр. 345.

Каждому полю выборки может быть назначен псевдоним. В даль­нейшем <Псевдоним поля> может использоваться для более удобного обращения к данному полю. Применение псевдонимов полей рассмотрено ниже.

<Группа полей> может указываться только тогда, когда поле выборки указывает на вложенную таблицу. В этом случае можно указать, какие поля должны обрабатываться в выборке по вло­женной таблице. Если группа полей не указана, в выборке будут обрабатываться все поля вложенной таблицы. Обращение к вло­женным таблицам описывается на стр. 303.



Описание типов значений


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



Описание запроса


Как уже было сказано, в тексте запроса должна обязательно при­сутствовать секция описания запроса, в которой определяются:

• поля, которые будут содержаться в результате запроса;

• источники данных запроса - исходные таблицы;

• условия, влияющие на выборку данных в запросе;

• порядок группировки результатов запроса.

Секция описания запроса состоит из нескольких взаимосвязан­ных предложений:

<Описание запроса>

ВЫБРАТЬ [РАЗЛИЧНЫЕ] [ПЕРВЫЕ <Количество>]

<Список полей выборки>

[ИЗ <Список источников>]

[ГДЕ <Условие отбора>]

[СГРУППИРОВАТЬ ПО <Поля группировки>]

[ИМЕЮЩИЕ <Условие отбора>]

[ДЛЯ ИЗМЕНЕНИЯ [[OF] <Список таблиц верхнего уровня>]]

Описание запроса начинается с обязательного ключевого слова ВЫБРАТЬ.

С помощью ключевого слова РАЗЛИЧНЫЕ можно указать, что в результат не должны попадать повторяющиеся строки.

Конструкция ПЕРВЫЕ <Количество>

позволяет задать пре­дельное количество строк в результате запроса. Будут отобраны самые первые (в соответствии с правилами упорядочивания ре­зультатов запроса) строки. <Количество> задается целым чис­лом.

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

В предложении ИЗ <Список источников> указываются источники данных - таблицы информационной базы, содержимое которых обрабатывается в запросе. Описание источников может быть опущено только в том случае, если они полностью опреде­лены в списке полей выборки. Правила описания источников данных запроса рассматриваются на стр. 305.

Предложение ГДЕ <Условие отбора> позволяет отфильтро­вать результат запроса. В результат попадают только те записи, для которых указанное условие оказывается истинным. Правила описания условий отбора рассматриваются на стр. 315.

Предложение ДЛЯ ИЗМЕНЕНИЯ предназначено для указания необходимости блокировки считываемых в транзакции данных.




Предложение СГРУППИРОВАТЬ позволяет описать порядок группировки результатов запроса. Подробно группировка рас­сматривается на стр. 316.
Предложение ИМЕЮЩИЕ позволяет накладывать условия на ре­зультаты группировки. Описано на стр. 318.
Во всех примерах запросов в данной главе приводится текст за­проса и результат запроса. Подразумевается, что текст запроса передается в качестве параметра методу Выполнить объекта Запрос.
Приведем пример достаточно простого запроса, состоящего из одного оператора ВЫБРАТЬ и списка полей выборки.
Пример:
//В отчет необходимо вывести список товарных накладных.
Выбрать Документ.РасходнаяНакладная.Ссылка
Результат запроса:

Ссылка
Расходная накладная 00005 от 01.03.2002 20:58:28
Расходная накладная 00004 от 01.03.2002 20:50:40
Расходная накладная 00003 от 23.02.2002 0:00:00
Расходная накладная 00002 от 15.01 2002 0:00:01
Расходная накладная 00001 от 25.02 2002 0:00:00
Расходная накладная 00009 от 01.03 2002 10:10:22
Расходная накладная 00016 от 07.07 2002 0:00:00

ОписаниеТипов (TypesDescription)


Представляет собой объект для управления допустимыми типами значений. В основном предназначен для присвоения в качестве значений соответствующим свойствам других объектов. Набор допустимых типов и квалификаторы примитивных типов задают­ся при создании объекта.

Пример:

// Создание описателя типов для таблицы значений

КЧ = Новый КвалификаторыЧисла(12,2);

КС = Новый КвалификаторыСтроки(20);

М = Новый Массив;

М.Добавить(Тип("Строка"));

ОписаниеТиповС = Новый ОписаниеТипов(М, , КС);

М.Очистить();

М. Добавить(Тип("Число"));

ОписаниеТиповЧ = Новый ОписаниеТипов(М, , ,КЧ);

// Создание таблицы значений

Табл = Новый ТаблицаЗначений;

// добавим в таблицу значений три колонки

Табл.Колонки,Добавить("Отдел",ОписаниеТиповС, "Отдел",20);

Табл.Колонки.Добавить("Сотрудник", ОписаниеТиповС," Фамилия сотрудника",20);

Табл.Колонки.Добавить("Оклад",ОписаниеТиповЧ,"Оклад",10);



Основная таблица


Синтаксис:

РегистрСведений.<Имя регистра>

Описание:

Предназначена для получения доступа к записям регистра сведе­ний.

Предоставляемые поля:

Период (Period)

Тип: Дата. Содержит период, к которому относится запись реги­стра.

Примечание: Имеет смысл только для периодических регистров.

Регистратор (Recorder)

Тип: ДокументСсылка.<Имя документа>. Содержит ссыл­ку на документ-регистратор движения.

Примечание: Имеет смысл только для регистров, записываемых регистратором.

НомерСтроки (LineNumber)

Тип: Число. Содержит номер строки, определяемый как поряд­ковый номер записи в наборе записей.

Примечание: Имеет смысл только для регистров, записываемых регистратором.

Активность (Active)

Тип: Булево. Содержит признак активности записи и влияния на получение первых и последних записей

Примечание: Имеет смысл только для регистров, записываемых регистратором.

МоментВремени (PointOfTime)

Тип: МоментВремени. Содержит момент времени записи реги­стра.

Данное поле виртуальное и не хранится в базе данных.

Примечание: Имеет смысл только для регистров, записываемых регистратором.

<Имя измерения>

Тип: Произвольный. Набор полей содержит значения измере­ний регистра. Имена полей соответствуют именам измерений, как они заданы в конфигураторе.

<Имя ресурса>

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

<Имя реквизита>                   

Тип: Произвольный. Набор полей содержит значения реквизи­тов регистра. Имена полей соответствуют именам реквизитов, как они заданы в конфигураторе.

Пример:

ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют



Основная таблица


Синтаксис:

РегистрНакопления.<Имя регистра>

Описание:

Предназначена для получения записей регистра накопления.

Предоставляемые поля:

Период (Period)

Тип: Дата. Содержит период, к которому относится запись реги­стра.

Регистратор (Recorder)

Тип: Любая ссылка на объект ИВ. Содержит ссылку на документ-регистратор движения.

НомерСтроки (LineNumber)

Тип: Число. Содержит номер строки, определяемый как поряд­ковый номер записи в наборе записей.

Активность (Active)

Тип: Булево. Содержит признак активности записи, т.е. влияния на получение итогов.

МоментВремени (PointOfTime)

Тип: МоментВремени. Содержит момент времени записи реги­стра.

Данное поле виртуальное и не хранится в базе данных.

Приход (Receipt)

Тип: Булево. Содержит признак, что данная запись является приходом.

Расход (Expense)

Тип: Булево. Содержит признак того, что данная запись являет­ся расходом.

<Имя измерения>

Тип: Произвольный. Набор полей содержит значения измере­ний регистра. Имена полей соответствуют именам измерений, как они заданы в конфигураторе.

<Имя ресурса>

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

<Имя реквизита>

Тип: Произвольный. Набор полей содержит значения реквизи­тов регистра Имена полей соответствуют именам реквизитов, как они заданы в конфигураторе.

Пример:

ВЫБРАТЬ * ИЗ РегистрНакопления.Продажи



Основной


Синтаксис:

Новый Цвет (< Красный>, <3еленый>, <Синий>)

Параметры:

<Красный> Обязательный

Тип: Число. Значение красной составляющей цвета.

<3еленый> Обязательный

Тип: Число. Значение зеленой составляющей цвета.

<Синий>    Обязательный

Тип: Число. Значение синей составляющей цвета.

Описание:

Формирует абсолютный цвет из трех цветовых составляющих.

«««««««««« 1С:Предприятие 8.0 »»»»»»»»»»



Основные понятия


Для облегчения понимания материала данного раздела читателем, не имеющим опыта работы с базами данных, ниже приводятся пояснения терминов, использованных при описании средства встроенного языка для работы с базами данных - объекта XBase.



Основные приемы работы


Основные приемы работы с запросами во встроенном языке 1С:Предприятия удобнее всего рассматривать на примерах. При­ведем типичный пример использования запроса:

// Создадим Запрос

Запрос = Новый Запрос("ВЫБРАТЬ Товар.Наименование Наименование,

| Товар.Родитель.Наименование НаименованиеРодителя

|        ИЗ Справочник.Товары Товар");

// Выполним запрос и запишем результат в переменную РезультатЗапроса.

РезультатЗапроса = 3апрос.Выполнить();

// Получим выборку из результата запроса.

Выборка = РезультатЗапроса.Выбрать();

// Пока в выборке есть записи ...

Пока Выборка.Следующий() Цикл

    // ... выведем в окно сообщений поля из результата.

    Товар = Выборка.Наименование;

    Родитель = Выборка.НаименованиеРодителя;

    Сообщить("Товар: " + Товар + " Родитель: " + Родитель);

КонецЦикла ;

Как видно из этого примера, работа с запросом ведется при по­мощи трех основных объектов:

• Запрос - объект, выполняющий сам запрос. Представлен в примере переменной с именем Запрос.

• РезультатЗапроса - объект, содержащий полученные при выполнении запроса данные. Представлен в примере пе­ременной с именем РезультатЗапроса.

• ВыборкаИзРезультатаЗапроса - объект, позволяющий обходить (т.е. перебрать) записи из результата. Представлен в примере переменной с именем Выборка.

Рассмотрим

подробнее объект ВыборкаИзРезультатаЗапроса. Для этого нам понадобится следующий запрос:

Выбрать

    Товар, Количество

Из

    Документ.РасхНакл.Состав

Упорядочить по

    Товар

Итоги

    Сумма(Количество) По Товар,

    Товар Иерархия

Его результат представлен в таблице:

Товар Количество
1 Сантехника 104
2 Кран 84
3 Кран 10
4 Кран 8
5 Кран 44
6 Кран 22
7 Смеситель 20
8 Смеситель 5
9 Смеситель 1
10 Смеситель 14
11 Мебель 134
12 Стол 26
13 Стол 1
14 Стол 15
15 Стол 10
16 Стул 108
17 Стул 55
18 Стул 5
19 Стул 32
20 Стул 16

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



Основные секции текста запроса


Текст запроса можно описать следующим правилом:

<Текст Запроса >

<Описание запроса>

[<Объединение запросов>]

[<Упорядочивание результатов>]

[АВТОУПОРЯДОЧИВАНИЕ]

[<Описание итогов>]

Как видно из этого правила, текст запроса состоит из нескольких частей, или секций:

<Описание запроса> - это единственная обязательная сек­ция в тексте запроса, и во многих случаях достаточно указать только ее. В секции определяются источники данных запроса, поля выборки, группировки и т. д. Эта секция, в свою очередь, описывается целым набором правил и подробно рассматривается ниже.

<Объединение запросов> - язык запросов позволяет объе­динять результаты выполнения нескольких запросов. Объедине­ние запросов описано на стр. 319.

В секции <Упорядочивание результатов> можно опреде­лить условия упорядочивания строк в результате запроса. Упоря­дочивание результата запроса рассматривается на стр. 324.

АВТОУПОРЯДОЧИВАНИЕ позволяет включить режим автомати­ческого упорядочивания строк в результате запроса. Данный ре­жим описывается на стр. 331.

В секции <Описание итогов> можно указать, какие итоги необходимо рассчитывать в запросе. Описание данной секции приводится на стр. 332.



Отбор


Используется для установки и хранения условий фильтра­ции элементов в списках и наборах записей. Отбор элементов в списках помогает, если необходимо выбрать элементы по опреде­ленному критерию из большого списка элементов.

Отбор представляет собой коллекцию элементов отбора. Используется для управления элементами отбора, доступными для данного спи­ска набора записей. Каждый из элементов может устанавливать одно условие. Весь объект представляет собой составное условие, состоящее из отдельных условий, описываемых элементами, со­единяющимися по "И".



ОтчетМенеджер. < Имя отчета >


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

Полное имя типа объекта определяется с учетом имени отчета в конфигурации. Например, для отчета Продажи имя типа будет выглядеть ОтчетыМенеджер.Продажи.



ОтчетОбъект.<Имя отчета >


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



Отчеты


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

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



ОтчетыМенеджер ( ReportsManager )


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

Данный объект является коллекцией значений. В качестве эле­мента коллекции      выступает      значение      типа ОтчетМенеджер. <Имя отчета>. Для объекта доступен об­ход коллекции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции.



Панель


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



Панель (Panel)


Используется для доступа к свойствам и событиям панели в це­лом.



ПараметрыМакетаТабличногоДокументa (TableDocumentTemplateParameters)


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

Данный объект является коллекцией значений. Возможно обра­щение к значению параметра посредством оператора [...]. В качестве аргумента передается индекс параметра.

См.также:

ТабличныйДокумент, свойство Параметры.



ПеречислениеМенеджер. < Имя перечисления>


Предназначен для получения ссылок на значения перечисления (в том числе пустой ссылки). Доступ к объекту осуществляется через свойство объекта

ПеречисленияМенеджер.

Полное имя типа объекта определяется с учетом имени конкрет­ного перечисления конфигурации. Например, для перечисления ВидыКонтаргентов имя     типа     будет      выглядеть Перечисления.ВидыКонтаргентов.

Данный объект является коллекцией значений. В качестве эле­мента      коллекции      выступает      значение      типа ПеречислениеСсылка. <Имя перечисления>. Для объекта доступен обход коллекции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции.



ПеречислениеСсылка. < Имя перечисления>


Представляет собой ссылку на значение перечисления. Использу­ется для ссылки на значение перечисления в реквизитах объектов информационной базы и переменных встроенного языка.



Перечисления


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

Например, в конфигурации можно задать перечисление "ВидыКонтраентов", определяющее допустимые виды контрагентов, со значениями "Организация" и "ФизЛицо".

Набор значений перечисления задается при конфигурировании.



ПеречисленияМенеджер ( EnumsManager )


Объект предназначен для управления перечислениями и предос­тавляет доступ к значениям типа ПеречислениеМенеджер. Доступ к объекту осуществляется через свойство глобального контекста Перечисления.

Данный объект является коллекцией значений. В качестве эле­мента коллекции     выступает      значение      типа ПеречислениеМенеджер. <Имя перечисления>. Для объ­екта доступен обход коллекции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции.

Пример:

ВидКонтрагента = Перечисления.ВидыКонтаргентов.Организация;



Перечислимые свойства объектов метаданных


Объект предоставляет доступ к системным перечислениям, вы­ступающим в качестве значений свойств объектов метаданных. Состав и описание системных перечислений объектов метаданных описан в разделе "Системные перечисления свойств объектов ме­таданных".



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


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

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

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

Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо значение Неопределено.

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

Пример:

Перем Глоб;

// Описание функции

Функция МояФункция(Знач Пар1, Пар2, ПарЗ) Экспорт

    лок = Глоб + Пар1 + Пар2 + ПарЗ;

    Пар1 =40;

    Возврат Лок;

КонецФункции ;

// Описание функции

Процедура МояПроцедура(Пар1, Пар2, ПарЗ) Экспорт

    Лок = Глоб + Пар1 + Пар2 + ПарЗ;

    Пар1 = 40;

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

Глоб = 100; А = 10;

Рез = МояФункция(А, 10, 10); // Вызов функции

// Здесь Рез =130, а переменная А = 10, несмотря на то, что в теле

// функции значение параметра Пар1 изменено на 40.

МояПроцедура(А, 10, 10); // Вызов процедура

// Здесь переменная А = 40, поскольку в теле

// процедуры значение параметра Пар1 изменено на 40.



Переключатель (RadioButton)


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



Пока Цикл


«««««««««« 1С:Предприятие 8.0 »»»»»»»»»»

Пока (While)

Синтаксис:

Пока <Логическое выражение> Цикл

// Операторы

[Прервать;]

// Операторы

[Продолжить;]

// Операторы

КонецЦикла ;

Параметры:

<Логическое выражение>

Логическое выражение.

Цикл

Операторы, следующие за ключевым словом Цикл, выполняются, пока результат логического выражения равен Истина.

// Операторы

Исполняемый оператор или последовательность таких операторов.

Прервать

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

Продолжить

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

КонецЦикла

Ключевое слово, которое завершает структуру оператора цикла.

Описание:

Оператор цикла Пока предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл КонецЦикла. Цикл выполняется, пока логическое выражение равно Истина. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Пример:

ВыборкаДок = Документы. РасходнаяНакладная. Выбрать();

// Цикл по всем документам

Пока ВыборкаДок.Следующий() Цикл

    // отобразим Документ в строке состояния

    Состояние ("Обрабатывается документ: " + ВыборкаДок.Номер);

    // Операторы выполнения действий над документом

КонецЦикла;

Попытка (Try)

Синтаксис:

Попытка

// Операторы попытки

Исключение

// Операторы исключения

[ВызватьИсключение ; ]

// Операторы исключения

 КонецПопытки ;

Параметры:

// Операторы попытки

Исполняемый оператор или последовательность таких операто­ров.

Исключение

Операторы, следующие за ключевым словом Исключение, выполняются, если  при  выполнении  последовательности операторов произошла ошибка времени выполнения.

// Операторы исключения




Исполняемый оператор или последовательность операторов, которые обрабатывают исключительную ситуацию.

ВызватьИсключение

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

Выполнение данного оператора прекращает выполнение последо­вательности операторов исключения и производится поиск более «внешнего» обработчика исключения (при вложенных попытках). Если таковой есть, то управление передается на его первый оператор. Если нет, то исключительная ситуация обрабатывается системно, выдается сообщение о первоначально возникшей ошибке, а выполнение модуля прекращается.

КонецПопытки

Ключевое слово, которое завершает структуру оператора обработ­ки исключительных ситуаций.

Описание:

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

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

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



Конструкции Попытка - Исключение - КонецПопытки могут быть вложенными. При этом, при возникновении исключительной ситуации управление передается на тот обработчик, в попытке которого произошла ошибка. Если же в последовательности операторов исключения этого обработчика выполняется оператор ВызватьИсключение, выполнение передается вышестоящему обработчику исключения и так далее. Если вышестоящего обработчика нет исключительная ситуация обрабатывается системно с прекращением выполнения программного модуля.

В выдаче диагностики помощь может оказать встроенная функция ОписаниеОшибки (см. описание функций встроенного языка).

Пример:

Процедура СформироватьВЕхсеl()

Попытка

    // Пытаемся обратиться к программе MS Excel

    Табл = СоздатьОбъект("Excel.Application");

Исключение

    Предупреждение(ОписаниеОшибки);

    Возврат;

КонецПопытки;

// Операторы формирования отчета

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

«««««««««« 1С:Предприятие 8.0 »»»»»»»»»»

Поле XBase


Представляет собой поле таблицы базы данных в формате DBF. Используется для получения свойств поля.



ПолеКалендаря (CalendarBox)


Календарь предназначен для ввода и отображения даты.



ПолеКартинки (PictureBox)


Поле картинки предназначено для размещения на форме различ­ных изображений. Механизм ссылки позволяет связать с полем картинки некоторые действия, выполняемые при нажатии на неё.



ПолеСписка (ListBox)


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

См. также:

Список значений.



ПолеТабличногоДокумента (TableDocumentField)


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

Объект

является визуальным представлением

объекта ТабличныйДокумент и имеет все присущие ему свойства и методы.

См. также:

ТабличныйДокумент.



ПолеТекстовогоДокумента (TextDocumentField)


Поле текстового документа предназначено для размещения в форме окна текстового редактора. Объект является визуальным представлением объекта ТекстовыйДокумент и имеет все присущие ему свойства и методы.



ПолеВвода (TextBox)


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



ПолеВыбора (ComboBox)


Поле выбора предназначено для выбора одного элемента из спи­ска Список элементов для выбора содержится в свойстве СписокВыбора и заполняется перед использованием поля вы­бора Кроме кнопки выбора из списка поле выбора также может иметь дополнительные кнопки управления.



Поля и записи


Если Вы не знакомы с концепцией базы данных, то ее можно себе представить в виде упорядоченного хранилища информации типа картотеки. Хорошим примером базы данных может служить те­лефонный справочник организации. Он содержит фамилии, но­мера телефонов и номера комнат всех сотрудников организации. Каждая строка справочника соответствует одной записи, а каждая колонка - полю. Каждое поле имеет наименование и характери­стики информации, для хранения которой оно предназначено: тип, длина, точность. Содержимое поля для конкретной записи называется значением поля. Напри-мер, телефонный справочник, может быть организован в виде таблицы с колонками (полями) "Фамилия Имя Отчество", "№ комнаты", "Телефон", каждая строка (запись) содержит информацию об одном абоненте.



ПолосаРегулирования (TrackBar)


Полоса регулирования предназначена для наглядного визуального изменения числовых значений. Изменение значения связанной переменной происходит от минимального до максимального уста­новленного значения при перемещении "движка" по самой полосе регулирования. Перемещение "движка" может осуществляться с помощью мыши, клавишами управления курсором и клавишами PgUp и PgDn.



Порядок


Порядок предназначен для упорядочивания элементов в списках справочников, документов, журналов, регистров.




Используется для установки и хранения упорядочивания данных в различных списках.



Последовательность3апись.<


Представляет собой запись регистрации документа в последова­тельности.



Последовательности


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



Последовательности Менеджер ( SequencesManager )


Объект предназначен для управления последовательностями и предоставляет доступ       к      значениям      типа ПоследовательностьМенеджер. Объект также позволяет восстанавливать сразу несколько последовательностей. Доступ к объекту осуществляется через свойство глобального контекста Последовательности.

Данный объект является коллекцией значений. В качестве эле­мента     коллекции      выступает      значение      типа ПоследовательностьМенеджер.<Имя последовательности>. Для объекта доступен обход коллек­ции посредством оператора Для каждого ... из... Цикл. При обходе выбираются элементы коллекции.



ПоследовательностьМенеджер.<Имя


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

Доступ к объекту осуществляется через свойство объекта ПоследовательностиМенеджер. Полное имя типа объекта определяется с учетом имя последовательности в конфигурации.

Например, для последовательности УчетТоваров имя типа будет выглядеть ПоследовательностиМенеджер.УчетТоваров.



ПоследовательностьНаборЗаписей.<Имя последовательности>


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

Данный объект является коллекцией значений. В качестве эле­мента коллекции      выступает      значение      типа ПоследовательностьЗапись.<Имя последовательности;-. Для объекта доступен обход коллек­ции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции.. Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс элемента.

См. также:

ДокументОбъект. <Имя документа>, свойство ПринадлежностьПоследовательностям.