Общие итоги
Для расчета итогов по всей таблице в предложении ИТОГИ следует указать слово ОБЩИЕ. В этом случае будут вычислены значения агрегатных функций для всех записей таблицы.
Пример:
Выбрать
Накладная.Контрагент.Наименование,
Накладная.Номер,
Накладная.Сумма
Из
Документ.РасходнаяНакладная Как Накладная
Итоги
Сумма (Накладная.Сумма) Общие
Результат запроса:
Наименование | Номер | Сумма |
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, "Особый клиент", "Обычный клиент");
Предупреждение(Статус) ;
Синтаксис:
Выполнить(<Строка>)
Параметры:
<Строка>
Срока, содержащая текст исполняемого кода.
Описание:
Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения.
Замечание! Исполняемый код не должен содержать в себе отдельных процедур или функций, т.к. исполнение кода само по себе идет в рамках процедуры или функции, в которой использован этот оператор. А также не должен содержать явного объявления переменных.
Важно! Не рекомендуется реализовывать с помощью этого метода существенную часть функциональности прикладных решений.
Пример:
// Выводит в окно сообщений текущую дату.
Выполнить ("Сообщить (ТекущаяДата ())");
Синтаксис:
Для <Имя переменной > = <Выражение 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 | »»»»»»»»»» |
Синтаксис:
Пока <Логическое выражение> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла ;
Параметры:
<Логическое выражение>
Логическое выражение.
Цикл
Операторы, следующие за ключевым словом Цикл, выполняются, пока результат логического выражения равен Истина.
// Операторы
Исполняемый оператор или последовательность таких операторов.
Прервать
Позволяет прервать выполнение цикла в любой точке. После выполнение этого оператора управление передается оператору, следующему за ключевым словом КонецЦикла.
Продолжить
Немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Операторы, следующие в теле цикла за ним, на данной итерации обхода не выполняются.
КонецЦикла
Ключевое слово, которое завершает структуру оператора цикла.
Описание:
Оператор цикла Пока предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл КонецЦикла. Цикл выполняется, пока логическое выражение равно Истина. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.
Пример:
ВыборкаДок = Документы. РасходнаяНакладная. Выбрать();
// Цикл по всем документам
Пока ВыборкаДок.Следующий() Цикл
// отобразим Документ в строке состояния
Состояние ("Обрабатывается документ: " + ВыборкаДок.Номер);
// Операторы выполнения действий над документом
КонецЦикла;
Синтаксис:
Попытка
// Операторы попытки
Исключение
// Операторы исключения
[ВызватьИсключение ; ]
// Операторы исключения
КонецПопытки ;
Параметры:
// Операторы попытки
Исполняемый оператор или последовательность таких операторов.
Исключение
Операторы, следующие за ключевым словом Исключение, выполняются, если при выполнении последовательности операторов произошла ошибка времени выполнения.
// Операторы исключения
Исполняемый оператор или последовательность операторов, которые обрабатывают исключительную ситуацию.
ВызватьИсключение
Оператор позволяет вызвать исключение, в тех случаях, когда, несмотря на отработку исключительной ситуации операторами исключения, необходимо прервать выполнение модуля с ошибкой времени выполнения. Оператор допустим только внутри операторных скобок Исключение - КонецПопытки.
Выполнение данного оператора прекращает выполнение последовательности операторов исключения и производится поиск более «внешнего» обработчика исключения (при вложенных попытках). Если таковой есть, то управление передается на его первый оператор. Если нет, то исключительная ситуация обрабатывается системно, выдается сообщение о первоначально возникшей ошибке, а выполнение модуля прекращается.
КонецПопытки
Ключевое слово, которое завершает структуру оператора обработки исключительных ситуаций.
Описание:
Оператор Попытка управляет выполнением программы, основываясь на возникающих при выполнении модуля ошибочных (исключительных) ситуациях и определяет обработку этих ситуаций.
В качестве ошибочных (исключительных) ситуаций воспринимаются ошибки времени выполнения модуля. Не предусмотрено определяемых пользователем исключений.
Если при выполнении последовательности операторов попытки произошла ошибка времени выполнения, то выполнение оператора, вызвавшего ошибку, прерывается и управление передается на первый оператор последовательности операторов исключения. При этом управление будет передано даже в том случае, если ошибку вызвал оператор, находящийся в процедуре или функции, вызванной из операторов попытки. Если ошибка произошла в вызванной процедуре или функции, то ее выполнение будет прервано, а локальные переменные - уничтожены. Это справедливо для любой вложенности вызовов. После выполнения последовательности операторов исключения управление передается на следующий за ключевым словом КонецПопытки оператор. Если же последовательность операторов попытки выполнилась без ошибок, то последовательность операторов исключения будет пропущена и управление также будет продолжено с оператора, следующего за ключевым словом КонецПопытки.
Конструкции Попытка - Исключение - КонецПопытки могут быть вложенными. При этом, при возникновении исключительной ситуации управление передается на тот обработчик, в попытке которого произошла ошибка. Если же в последовательности операторов исключения этого обработчика выполняется оператор ВызватьИсключение, выполнение передается вышестоящему обработчику исключения и так далее. Если вышестоящего обработчика нет исключительная ситуация обрабатывается системно с прекращением выполнения программного модуля.
В выдаче диагностики помощь может оказать встроенная функция ОписаниеОшибки (см. описание функций встроенного языка).
Пример:
Процедура СформироватьВЕхсеl()
Попытка
// Пытаемся обратиться к программе MS Excel
Табл = СоздатьОбъект("Excel.Application");
Исключение
Предупреждение(ОписаниеОшибки);
Возврат;
КонецПопытки;
// Операторы формирования отчета
КонецПроцедуры
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Поле XBase
Представляет собой поле таблицы базы данных в формате DBF. Используется для получения свойств поля.
ПолеКалендаря (CalendarBox)
Календарь предназначен для ввода и отображения даты.
ПолеКартинки (PictureBox)
Поле картинки предназначено для размещения на форме различных изображений. Механизм ссылки позволяет связать с полем картинки некоторые действия, выполняемые при нажатии на неё.
ПолеСписка (ListBox)
Поле списка предназначено для выбора одного или нескольких значений из списка и является визуальным представлением объекта СписокЗначений. Строки поля списка могут содержать пометки, аналогичные флажкам, при помощи которых можно отмечать выбранные значения. Все действия по изменению списка (добавлению элементов в список, удаление из списка, сортировка списка) проводятся при помощи связанного с полем списка значений.
См. также:
Список значений.
ПолеТабличногоДокумента (TableDocumentField)
Поле табличного документа предназначено для использования табличного документа в форме. Поле табличного документа можно использовать для ввода данных пользователем и представления информации, хранимой в системе или полученной в результате расчетов.
Объект
является визуальным представлением
объекта ТабличныйДокумент и имеет все присущие ему свойства и методы.
См. также:
ТабличныйДокумент.
ПолеТекстовогоДокумента (TextDocumentField)
Поле текстового документа предназначено для размещения в форме окна текстового редактора. Объект является визуальным представлением объекта ТекстовыйДокумент и имеет все присущие ему свойства и методы.
ПолеВвода (TextBox)
Поле ввода является одним из наиболее распространенных элементов управления. Оно используется для ввода значений непосредственно в поле, для выбора значений из списков и для выбора ссылок на различные объекты. Набор различных кнопок управления существенно расширяет сферу его применения.
ПолеВыбора (ComboBox)
Поле выбора предназначено для выбора одного элемента из списка Список элементов для выбора содержится в свойстве СписокВыбора и заполняется перед использованием поля выбора Кроме кнопки выбора из списка поле выбора также может иметь дополнительные кнопки управления.
Поля и записи
Если Вы не знакомы с концепцией базы данных, то ее можно себе представить в виде упорядоченного хранилища информации типа картотеки. Хорошим примером базы данных может служить телефонный справочник организации. Он содержит фамилии, номера телефонов и номера комнат всех сотрудников организации. Каждая строка справочника соответствует одной записи, а каждая колонка - полю. Каждое поле имеет наименование и характеристики информации, для хранения которой оно предназначено: тип, длина, точность. Содержимое поля для конкретной записи называется значением поля. Напри-мер, телефонный справочник, может быть организован в виде таблицы с колонками (полями) "Фамилия Имя Отчество", "№ комнаты", "Телефон", каждая строка (запись) содержит информацию об одном абоненте.
ПолосаРегулирования (TrackBar)
Полоса регулирования предназначена для наглядного визуального изменения числовых значений. Изменение значения связанной переменной происходит от минимального до максимального установленного значения при перемещении "движка" по самой полосе регулирования. Перемещение "движка" может осуществляться с помощью мыши, клавишами управления курсором и клавишами PgUp и PgDn.
Порядок
Порядок предназначен для упорядочивания элементов в списках справочников, документов, журналов, регистров.
Используется для установки и хранения упорядочивания данных в различных списках.
Последовательность3апись.<
Представляет собой запись регистрации документа в последовательности.
Последовательности
Последовательности предназначены обеспечения проведения документов в непрерывной хронологической последовательности. Последовательность может иметь измерения, в разрезе которых можно контролировать и поддерживать последовательность проведения документов. Существует также доступ к записям регистрации отдельных документов в последовательности.
Последовательности Менеджер ( SequencesManager )
Объект предназначен для управления последовательностями и предоставляет доступ к значениям типа ПоследовательностьМенеджер. Объект также позволяет восстанавливать сразу несколько последовательностей. Доступ к объекту осуществляется через свойство глобального контекста Последовательности.
Данный объект является коллекцией значений. В качестве элемента коллекции выступает значение типа ПоследовательностьМенеджер.<Имя последовательности>. Для объекта доступен обход коллекции посредством оператора Для каждого ... из... Цикл. При обходе выбираются элементы коллекции.
ПоследовательностьМенеджер.<Имя
Предназначен для управления последовательностью, как объектом конфигурации. С помощью этого объекта можно получать и устанавливать границы последовательности, проверять принадлежность документа последовательности, проверять непрерывность последовательности по определенный момент времени, а также восстанавливать последовательность.
Доступ к объекту осуществляется через свойство объекта ПоследовательностиМенеджер. Полное имя типа объекта определяется с учетом имя последовательности в конфигурации.
Например, для последовательности УчетТоваров имя типа будет выглядеть ПоследовательностиМенеджер.УчетТоваров.
ПоследовательностьНаборЗаписей.<Имя последовательности>
Представляет собой набор записей регистрации документа в последовательности. Этот набор формируется автоматически при записи документа по заданным соответствиям реквизитов документа и измерениям последовательности. Объект позволяет считывать набор записей регистрации из информационной базы, добавлять, удалять и модифицировать записи в наборе, записывать набор.
Данный объект является коллекцией значений. В качестве элемента коллекции выступает значение типа ПоследовательностьЗапись.<Имя последовательности;-. Для объекта доступен обход коллекции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции.. Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс элемента.
См. также:
ДокументОбъект. <Имя документа>, свойство ПринадлежностьПоследовательностям.