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

         

Таблица плана видов расчета


Синтаксис:

ПланВидовРасчета.<Имя вида расчета>

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

Ссылка

Тип: ПланВидовРасчетаСсылка.<Имя плана видов расчета>. Ссылка на вид расчета.

ПометкаУдаления

Предопределенный

Код

Наименование

Представление

ПериодДействияБазовый

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

БазовыеВидыРасчета

Тип: Результат запроса. Вложенная таблица базовых видов расчета. Представляет результат запроса к предопределенной табличной части плана видов расчета. Результат состоит из двух колонок: НомерСтроки и ВидРасчета. (только для планов видов расчета которым задано свойство Зависимость от базы)

ВедущиеВидыРасчета

Тип: Результат запроса. Вложенная таблица ведущих видов расчета. Представляет результат запроса к предопределенной табличной части плана видов расчета. Результат состоит из двух колонок: НомерСтроки и ВидРасчета.

ВытесняющиеВидыРасчета

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

<Имя табличной части>

Тип: Результат запроса. Вложенная таблица - табличная часть вида расчета. Представляет результат запроса к табличной части. Результат состоит из двух колонок: НомерСтроки и

ВидРасчета, соответствующих реквизитам табличной части.



ВидыСубконто



Таблица получения оборотов


Синтаксис:

РегистрНакопления.<Имя регистра>.Обороты(<Начало периода> , <Конец периода> , <Периодичность> , <Условие>, <Измерение>)

Описание:

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

При расчете итогов учитываются только активные записи.

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

Период (Period)

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

Примечание: Содержит начальную дату и время периода.

Существует только в случае, если используется разворот по пе­риодам, т.е. параметр Периодичность имеет значения Год, Квартал, Неделя, День, Регистратор,Запись.

Данное поле не может быть использовано в условии отбора запи­сей

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

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

Примечание: Существует только в случае, если параметр

Периодичность имеет значения Регистратор, Запись.

Данное поле не может быть использовано в условии отбора запи­сей

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

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

<Имя ресурса>Оборот (<Имя ресурса>Turnover)

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

Для регистров оборотов оборот подсчитывается как сумма всех движений. Для регистров остатков оборот подсчитывается как сумма всех движений Приход со знаком + (плюс) и Расход со знаком - (минус).

<Имя ресурса>Приход (<Имя pecypca>Receipt)

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




Примечание: Существует только для регистров остатков.
<Имя ресурса>Расход (<Имя pecypca>Expense)
Тип: Число. Набор полей содержит суммы всех движений Расход по ресурсам регистра. Имена полей соответствуют име­нам ресурсов, как они заданы в конфигураторе, с добавлением слова Расход.
Примечание: Существует только для регистров остатков.
Параметры:
<Начало периода> Необязательный
Тип параметра: Значение Тип Дата,  МоментВремени, Граница. Указывается начало периода расчета итогов Значение начала периода по умолчанию включается в период расчета ито­гов Для исключения значения из периода его следует задавать объектом Граница с исключением граничного значения.
Значение по умолчанию: Если параметр не задан, итоги рассчи­тываются с самой первой записи
<Конец периода>    Необязательный
Тип параметра: Значение Тип Дата,  МоментВремени, Граница. Указывается конец периода расчета итогов. Значение конца периода по умолчанию включается в период расчета ито­гов. Для исключения значения из периода его следует задавать объектом Граница с исключением граничного значения
Значение по умолчанию: Если параметр не задан, итоги рассчи­тываются по самую последнюю запись.
<Периодичность>    Необязательный
Тип параметра: Конструкция. Указывается дополнительный раз­ворот итогов по периодичности. Задается один из следующих вариантов:
• Период (Period) - только за период (не разворачивать);
• Регистратор (Recorder) - разворачивать по регистра­тору;
• День (Day) - разворачивать по дням;
• Неделя (Week) - разворачивать по неделям;
• Месяц (Month) - разворачивать по месяцам;
• Квартал (Quarter) - разворачивать по кварталам;
• Год (Year) - разворачивать по годам.
Значение по умолчанию: Период
<Условие>    Необязательный
Тип параметра: Конструкция. Указывается условие на языке за­просов. Условие может оперировать полями регистра накопления. Оно будет использовано для ограничения состава записей, по ко­торым будут выбираться обороты. То есть условие будет приме­няться к исходным записям, а не к уже отобранным.
Значение по умолчанию: Если параметр не задан, анализируются все активные записи регистра.
<Измерение>    Необязательный
Тип параметра: Конструкция. Указывается список измерений, по которым будут развернуты итоги.
Значение по умолчанию: Если не указан, то по всем измерениям.
Пример:
// Получение всех оборотов регистра оборотов

ВЫБРАТЬ * ИЗ РегистрНакопления.Продажи.Обороты()
// Получение оборотов по регистру остатков за указанный период по указанному товару с разворотом по месяцам

ВЫБРАТЬ * ИЗ РегистрНакопления.УчетНоменклатуры.Обороты(&НачПериода, &КонПериода, Месяц, Номенклатура = &ПарНоменклатура)

Таблица получения остатков


Синтаксис:

РегистрНакопления.<Имя регистра>.Остатки(< Период>, <Условие>, <Измерение>)

Описание:

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

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

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

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

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

<Имя ресурса>Остаток (<Имя ресурса>Balance)

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

Параметры:

<Период>    Необязательный

Тип параметра: Значение. Тип: Дата, МоментВремени, Граница. Указывается период, на значение которого рассчиты­ваются остатки. Для расчета остатков по значение периода его необходимо задавать объектом Граница со включением гранич­ного значения.

Значение по умолчанию: Если параметр не задан, итоги рассчи­тываются по самую последнюю запись.

<Условие>    Необязательный

Тип параметра: Конструкция. Указывается условие на языке за­просов. Условие может оперировать полями регистра накопления.

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

Значение по умолчанию: Если параметр не задан, анализируются все активные записи регистра.

<Измерение>    Необязательный

Тип параметра: Конструкция. Указывается список измерений, по которым будут развернуты итоги.

Значение по умолчанию: Если не указан, то по всем измерениям.

Пример:

// Получение остатков по регистру остатков по указанному товару на указанный момент времени

ВЫБРАТЬ * ИЗ РегистрНакопления.УчетНоменклатуры.Остатки(&КонПериода,Номенклатура,&ПарНоменклатура)



Таблица получения остатков и оборотов


Синтаксис:

РегистрНакопления.<Имя регистра>.ОстаткиИОбороты(<Начало периода> , <Конец периода> , <Периодичность> , <Условие>, <Измерение>)

Описание:

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

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

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

Период (Period)

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

Примечание: Содержит начальную дату и время периода.

Существует только в случае, если используется разворот по пе­риодам, т.е. параметр Периодичность имеет значения Год, Квартал, Неделя, День, Регистратор, Запись.

Данное поле не может быть использовано в условии отбора запи­сей.

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

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

Примечание: Существует только в случае, если параметр

Периодичность имеет значения Регистратор, Запись.

Данное поле не может быть использовано в условии отбора запи­сей.

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

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

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

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

<Имя ресурса>Оборот (<Имя ресурсa>Turnover)

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

Для регистров оборотов оборот подсчитывается как сумма всех движений. Для регистров остатков оборот подсчитывается как сумма всех движений Приход со знаком + (плюс) и Расход со знаком - (минус).




<Ими ресурса>Приход (<Имя pecypca>Receipt)
Тип: Число. Набор полей содержит суммы всех движений Приход по ресурсам регистра. Имена полей соответствуют име­нам ресурсов, как они заданы в конфигураторе, с добавлением слова Приход.
<Имя ресурса>Расход (<Имя pecypca>Expense)
Тип: Число. Набор полей содержит суммы всех движений Расход по ресурсам регистра. Имена полей соответствуют име­нам ресурсов, как они заданы в конфигураторе, с добавлением слова Расход.
<Имя ресурса>НачальныйОстаток (<Имя pecypca>InitialBalance)
Тип: Число. Набор полей содержит начальные остатки ресурсов регистра. Имена полей соответствуют именам ресурсов, как они заданы    в     конфигураторе, с добавлением
слова НачальныйОстаток.
<Имя ресурса>КонечныйОстаток (<Имя pecypca>FinalBalance)
Тип: Число. Набор полей содержит конечные остатки ресурсов регистра. Имена полей соответствуют именам ресурсов, как они заданы    в     конфигураторе,
с добавлением слова КонечныйОстаток.
Параметры:
<Начало периода>     Необязательный
Тип параметра: Значение. Тип: Дата,  МоментВремени, Граница. Указывается начало периода расчета итогов. Значение начала периода по умолчанию включается в период расчета ито­гов. Для исключения значения из периода его следует задавать объектом Граница с исключением граничного значения.
Значение по умолчанию: Если параметр не задан, итоги рассчи­тываются с самой первой записи.
<Конец периода>    Необязательный
Тип параметра; Значение. Тип: Дата, МоментВремени, Граница. Указывается конец периода расчета итогов. Значение конца периода по умолчанию включается в период расчета ито­гов. Для исключения значения из периода его следует задавать объектом Граница с исключением граничного значения.
Значение по умолчанию: Если параметр не задан, итоги рассчи­тываются по самую последнюю запись.
<Периодичность>    Необязательный
Тип параметра: Конструкция. Указывается дополнительный раз­ворот итогов по периодичности. Задается один из следующих ва­риантов:


• Период (Period) - только за период (не разворачивать);
• Запись (Record) - разворачивать по записям регистра;
• Регистратор (Recorder) - разворачивать по регистра­тору;
• День (Day) - разворачивать по дням;
• Неделя (Week) - разворачивать по неделям;
• Месяц (Month) - разворачивать по месяцам;
• Квартал (Quarter) - разворачивать по кварталам;
• Год (Year) - разворачивать по годам.
Значение по умолчанию: Период
<Условие>     Необязательный
Тип параметра: Конструкция. Указывается условие на языке за­просов. Условие может оперировать полями регистра накопления. Оно будет использовано для ограничения состава записей, по ко­торым будут выбираться итоги. То есть условие будет применять­ся к исходным записям, а не к уже отобранным.
Значение по умолчанию: Если параметр не задан, анализируются все активные записи регистра.
<Измерение>     Необязательный
Тип параметра: Конструкция. Указывается список измерений, по которым будут развернуты итоги.
Значение по умолчанию: Если не указан, то по всем измерениям.
Пример:
// Получение всех остатков и оборотов регистра остатков

ВЫБРАТЬ * ИЗ РегистрНакопления.УчетНокенклатуры.ОстаткиИОбороты()
// Получение остатков и оборотов регистра остатков за указанный период по указанному складу

ВЫБРАТЬ * ИЗ РегистрНакоплевия.УчетНоменклатуры.ОстаткиИОбороты(&НачПериода,&КонПериода, Склад = &ПарСклад)

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

Таблица получения среза первых (наиболее ранних) записей


Синтаксис:

РегистрСведений.<Имя регистра>.СрезПервых(<Дата>, <Условно>)

Описание:

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

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

Период (Period)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры:

<Дата>    Необязательный

Тип параметра: Значение. Тип: Дата, МоментВремени. Ука­зывается дата или момент времени, на которые будут получены сведения.

Значение по умолчанию: Если параметр не задан, будут выби­раться наиболее ранние записи, без ограничения по дате.

<Условие>    Необязательный

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

Значение по умолчанию: Если параметр не задан, анализируются все активные записи регистра.

Пример:

// Получение всех наиболее ранних записей регистра сведений

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

// Получение всех наиболее ранних записей регистра сведений на

// указанную дату и по указанной валете.

ВЫБРАТЬ * ИЗ РегистрСведений.КурсВал.СрезПервых(&ПарДата, Вал = &ПарВал)



Таблица получения среза последних (наиболее поздних) записей


Синтаксис:

РегистрСведений.<Имя регистра>.СрезПоследних(< Дата> , <Условие>)

Описание:

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

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

Период (Period)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры:

<Дата> Необязательный

Тип параметра: Значение. Тип: Дата, Момент Времени. Ука­зывается дата или момент времени, на которые будут получены сведения.

Значение по умолчанию: Если параметр не задан, будут выбираться наиболее поздние записи, без ограничения по дате.

<Условие>        Необязательный

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

Значение по умолчанию: Если параметр не задан, анализируются все активные записи регистра.

Пример:

// Получение всех наиболее поздних записей регистра сведений

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

// Получение всех наиболее поздних записей регистра сведений

// на указанную дату и по указанной валюте.

ВЫБРАТЬ * ИЗ РегистрСчедений.КурсыВалют.СрезПоследних(&ПарДата, Валюта = &ПарВалюта)



Таблица справочника


Синтаксис:

Справочник.<Имя справочника>

Описание:

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

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

Ссылка (Ref)

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

ПометкаУдаления (DeleteMark)

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

Код (Code)

Тип: Число, Строка. Содержит код элемента справочника.

Наименование (Description)

Тип: Строка. Содержит наименование элемента справочника.

ЭтоГруппа (Is Group)

Тип: Булево. Содержит признак того, что элемент справочника является группой Имеет значения" Истина - элемент является группой, Ложь - не является группой.

Владелец (Owner)

Тип: СправочникСсылка.<Имя справочника>. Содержит ссылку на владельца элемента справочника.

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

Родитель (Parent)

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

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

Представление (Presentation)

Тип: Строка. Содержит представление элемента справочника.

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

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

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

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

<Имя табличной части> (<Имя табличной части>)

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

Пример:

ВЫБРАТЬ * ИЗ Справочник.Номенклатура



Таблица, структура таблицы, файл базы данных


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

Реализация баз данных формата DBF подразумевает, что каждая таблица хранится в отдельном файле. Поэтому в дальнейшем мы будем применять термин "файл базы данных" или "файл БД", имея в виду таблицу базы данных.



Таблица журнала документов


Синтаксис:

ЖурналДокументов.<Имя журнала документов>()

Описание:

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

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

Ссылка (Ref)

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

ПометкаУдаления (DeleteMark)

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

Номер (Number)

Тип: Число, Строка. Содержит номер

документа, зарегистрированного в журнале.

Дата (Date)

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

Проведен (Posted)

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

<Имя графы журнала> (<Имя графы журнала>)

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

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

Пример:

ВЫБРАТЬ * ИЗ ЖурналДокументов.Торговля



Таблица значений


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

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



ТаблицаЗначений (ValueTable)


Объект представляет собой саму таблицу значений. Все основные операции с таблицей производятся именно через этот объект. Он позволяет манипулировать строками таблицы значений и предос­тавляет доступ к коллекции колонок.

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

Пример:

// Пример работы с таблицей значения,

// связь с элементом управления ТабличноеПоле

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

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

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

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

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

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

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

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

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

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

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

Сообщить("Число колонок таблицы значений: " + Табл.Колонки.Количество());

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

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

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

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

Сообщить("Число колонок таблицы значений после добавления (1): "+Табл.Колонки.Количество());

// добавим строку

Стр=Табл.Добавить();

Стр.Отдел="Отдел 1";

Стр.Сотрудник="Иванов";

Стр.Оклад=5600;

// Добавление в форму табличного поля

ЭлементыФормы.Добавить(Тип("ТабличноеПоле"),"ТПоле",Истина);

// указание размеров и положения в форме

ЭлементыФормы.ТПоле.Верх=150; ЭлементыФормы.ТПоле.Лево=150;

ЭлементыФормы.ТПоле.Ширина=350; ЭлементыФормы.ТПоле.Высота=130;

// связь табличного поля с таблицей значений




ЭлементыФормы.ТПоле.Значение = Табл;

Сообщить("Число колонок табличного поля: " + ЭлементыФормы.ТПоле.Колонки, Количество());

// укажем ширину колонок

ЭлементыФормы.ТПоле.Колонки[0].Ширина = 20;

ЭлементиФормы.ТПоле.Колонки[1].Ширина = 20;

ЭлементыФормы.ТПоле.Колонки[2].Ширина = 10;

ЭлементыФормы.ТПоле.Колонки[2].ТекстПодвала = 10;

ЭлементыФормы.ТПоле.ЧередованиеЦветовСтрок = Истина;

ЭлементыФормы.ТПоле.Колонки[2].ОтображатьВПодвале = Истина;

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

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

ЭлементыФормы.ТПоле.Колонки[3].Ширина = 10;

Сообщить(" Число колонок таблицы значений после добавления (2): "+Табл.Колонки.Количество());

//в табличном поле колонка также добавляется

Сообщить("Число колонок табличного поля: "+ЭлементыФормы.ТПоле.Колонки.Количество());

// добавим новую колонку в табличное поле

ЭлементыФормы.ТПоле.Колонки.Добавить("Примечание") ;

ЭлементыФормы.ТПоле.Колонки[4].Ширина = 20;

// просмотр числа колонок таблицы значений и табличного поля

Сообщить("Число колонок таблицы значений не изменилось: "+Табл.Колонки.Количество());

Сообщить("Число колонок табличного поля увеличилось: " +Элементыформы.ТПоле.Колонки.Количество());

//показ имен и установка шрифта колонок

ШрифтШапки = Новый Шрифт ("Arial", 9, истина);

Для каждого Колонка Из Табл.Колонки Цикл

Сообщить("Имя колонки " + ": "+Колонка.Имя);

КонецЦикла;

Для каждого Колонка Из ЭлементыФормы.ТПоле.Колонки Цикл

    Колонка.ШрифтШапки = ШрифтШапки;

КонецЦикла;

// ввод новой строки и данных по строке

ЭлементыФормы.ТПоле.ДобавитьСтроку();

ТекСтр = ЭлементыФормы.ТПоле.ТекущаяСтрока;

ТекСтр.Отдел = "Отдел 2"; ТекСтр.Сотрудник = "Петров";

ТекСтр.Оклад = 6700; ТекСтр.Стаж = 22;

Сообшить("Итог: Фонд = "+Табл.Итог(Табл.Колонки(2).Имя) +

    " Среднее = "+Табл.Итог(Табл.Колонки[2].Имя)/Табл.Количество());
Результат выполнения:
Число колонок таблицы значений: 0

Число колонок таблицы значений после добавления (1) : 3

Число колонок табличного поля: 3

Число колонок таблицы значений после добавления (2) : 4

Число колонок табличного поля: 4

Число колонок таблицы значений не изменилось: 4

Число колонок табличного поля увеличилось: 5

Имя колонки : Отдел

Имя колонки : Сотрудник

Имя колонки : Оклад

Имя колонки : Стаж

Итог: Фонд = 12 300; Среднее = 6 150

Табличная часть


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

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

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




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

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



Табличное поле


Табличное поле - элемент управления, позволяющий работать с различными списками, наборами записей, табличными полями, а также динамическими наборами данных ТаблицаЗначений и ДеревоЗначений.

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



ТабличноеПоле (ТаblеВох)


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



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


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



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


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



ТекстовыйДокумент (TextDocument)


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



ТочкаДиаграммы (ChartPoint)


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



ТочкиДиаграммы (ChartPointsCollection)


Представляет собой коллекцию точек диаграммы.

Данный объект является коллекцией значений. В качестве эле­мента коллекции выступает значение типа ТочкаДиаграммы. Для объекта доступен обход коллекции посредством оператора

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



Удаление записей


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

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



УникальныйИдентификатор (GUID)


Объект предназначен для создания и хранения глобального уни­кального идентификатора GUID.



Упорядочивание по иерархии


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

Пример:

Выбрать

    Справочник.Контрагенты.Наименование,

    Справочник.Контрагенты.ПолноеНаименование

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

    Справочник.Контрагенты.Наименование Иерархия

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

Наименование ПолноеНаименование
Покупатели  
Павильон 45 на оптовом рынке ПБЮЛ «Красина»
Торговый дом «Буденовский» АО «Буденовский ТД»
Фабрика джинсовой одежды 000 «Джинсовая одежда»
Ярмарка одежды 000 «Ярмарка одежды»
Поставщики  
АКБ ПромСтройБанк  
Бавария - фарфор  
Трикотажная фабрика «Заря»  
Фабрика джинсовой одежды 000 «Джинсовая одежда»

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

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

Пример:

Выбрать

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

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

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

Из

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

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

    Накладная.Контрагент Иерархия

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

Для упорядочивания по иерархии необходимо организовать со­единение со справочником.

Пример:

Выбрать

    Контрагент.Наименование,

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

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

Из

    Справочник.Контрагенты Как Контрагент

Левое Соединение

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

По

    Накладная.Контрагент = Контрагент.Ссылка




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

    Контрагент.Наименование Иерархия

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

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

Упорядочивание по ссылочным полям


В некоторых случаях в предложении УПОРЯДОЧИТЬ ПО обяза­тельно требуется указать ссылку на какую-либо таблицу (напри­мер, если по данной ссылке в запросе рассчитываются итоги), но при этом желательно упорядочить результат запроса по полям этой самой таблицы.   В этом случае в предложении УПОРЯДОЧИТЬ ПО можно указать требуемые поля в скобках после ссылки на таблицу.

Пример:

//В отчет необходимо вывести данные об отгрузке товаров по накладным,

// упорядочив результаты по наименованию товаров.

Выбрать

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

    Накладная.Количество,

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

Из

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

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

    Накладная.Номенклатура(Наименование),

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

Итоги

    Сумма(Накладная.Количество)

По

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

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

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

Номенклатура Количество Номер
Брюки детские 20  
Брюки детские 3 00012
Брюки детские 7 00013
Брюки детские 10 00014
Джинсы женские 43  
Джинсы женские 20 00001
Джинсы женские 8 00002
Джинсы женские 1 00004
Джинсы женские 1 00005
Джинсы женские 5 00006
Джинсы женские 4 00007
Джинсы женские 1 00009
Джинсы женские 1 00012
Джинсы женские 1 00013
Джинсы женские 1 00014
Кухонный комбайн Крупе 2  
Кухонный комбайн Крупе 2 00015
Мойдодыр «Аквариум» 27  
Мойдодыр «Аквариум» 2 00001
Мойдодыр «Аквариум» 5 00003
Мойдодыр «Аквариум» 20 00016
Раковина «Лилия» 18  
Раковина «Лилия» 8 00003
Раковина «Лилия» 10 00016
Рубашка «Ковбойка» 30  
Рубашка «Ковбойка» 20 00001
Рубашка «Ковбойка» 5 00002
Рубашка «Ковбойка» 5 00006
Свитер детский 1  
Свитер детский 1 00015
Смеситель «Ультра» 10  
Смеситель «Ультра» 10 0003



Упорядочивание результатов запроса


Предложение УПОРЯДОЧИТЬ ПО позволяет сортировать строки в результате запроса.

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

УПОРЯДОЧИТЬ ПО <Условия упорядочивания>

<Условия упорядочивания>

<Поле упорядочивания> [<Порядок>]

[,<Поле упорядочивания> [<Порядок>][, ...]]

<Поле упорядочивания>

<Выражение> | <Упорядочивание ссылочного поля>

<Упорядочивание ссылочного поля>

<Разыменование поля>[( <Имя поля> [, <Имя поля>[, ...] ] )]

<Порядок>

ВОЗР | УБЫВ | ИЕРАРХИЯ

В предложении УПОРЯДОЧИТЬ ПО через запятую перечисляют­ся условия, в соответствии с которыми необходимо упорядочить результат запроса. Выборки упорядочиваются сначала по первому условию, потом по второму и т. д.

<Условие

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

Упорядочивание может осуществляться в порядке возрастания или убывания значений, а для таблиц, для которых задано свойст­во иерархичности - так же и по иерархии (описано на стр. 326). <Порядок> может задаваться для каждого поля независимо. Правила сравнения значений описаны на стр. 360.

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

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

Важно!

Если в запросе рассчитываются итоги (встречается предложение ИТОГИ ПО), то и результат запроса обязательно должен быть упорядочен по тем полям, по которым рассчитываются итоги: поля, указанные в предложении ИТОГИ ПО, обяза­тельно требуется указать и в предложении УПОРЯДОЧИТЬ ПО.

Пример:




// Требуется отобрать 5 самых дорогих товаров,

// расположив их в порядке убывания цены.

Выбрать Первые 5

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

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

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

    Справочник.Номенклатура.ЗакупочнаяЦена Убыв

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

Наименование ЗакупочнаяЦена
Кухонный комбайн Крупе 15000
Джинсы женские 1 500
Рубашка «Ковбойка» 1 100
Брюки детские 800
Смеситель «Ультра» 460

Упорядочивание во вложенных таблицах


В предложении УПОРЯДОЧИТЬ ПО можно определять также и условия упорядочивания записей из вложенных таблиц; причем их можно комбинировать с условиями упорядочивания по табли­це верхнего уровня.

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

Пример:

// В отчет необходимо вывести спецификацию товарных накладных -

// показать сам документ, номенклатуру и количество.

// Документы требуется упорядочить по номеру,

//а состав - по наименованию товара.

Выбрать

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

    Документ.РасходнаяНакладная.Состав(Номенклатура Как Товар, Количество)

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

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

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



Управление интерфейсом


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

Данный объект является коллекцией значений. В качестве эле­мента

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



Управление элементом отбора


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



Управление элементом порядка


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



Условия на значения агрегатных функций


Предложение ИМЕЮЩИЕ <Условие отбора> позволяет накла­дывать условия на значения агрегатных функций. В других кон­струкциях языка запросов, например в предложении ГДЕ, указы­вать в условиях агрегатные функции нельзя.

Пример:

// Необходимо выбрать товары, которых продали более 20 штук.

Выбрать

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

    Сумма (Накладная.Количество) Как Количество

Из

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

Сгруппировать По

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

Имеющие

    Сумма (Накладная.Количество) > 20

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

Номенклатура Количество
Рубашка «Ковбойка» 30
Джинсы женские 43
Мойдодыр «Аквариум» 27

Важно! В условии отбора можно использовать только агрегат­ные функции и поля, по которым осуществляется группировка.



Условия в языке запросов


В языке запросов используются условия отбора, в соответствии с которыми осуществляется отбор данных в предложениях ГДЕ, ИМЕЮЩИЕ и СОЕДИНЕНИЕ. Условия описываются по следующим правилам:

<Условие отбора>

<Логическое слагаемое> [ИЛИ <Логическое слагаемое>]

<Логическое слагаемое>

<Логический сомножитель> [И <Логический сомножитель>]

<Логический сомножитель>

НЕ <Логический сомножитель> | ( <Условие отбора> ) | <Логическое выражение>

В простейшем случае условие является выражением, результат которого имеет значение логического типа. Логические выраже­ния описаны ниже.

Условия могут определяться и как более сложные логические выражения, где фигурируют простые логические выражения, со­единенные между собой с помощью логических операторов И, ИЛИ, НЕ.

Логические операторы имеют приоритет:

• Самый высокий приоритет имеет логический оператор НЕ.

• Следующим по приоритету является оператор И.

• Самый низкий приоритет у оператора ИЛИ.

В условиях сначала вычисляются простые логические выражения, затем операции НЕ, затем операции И, в последнюю очередь -операции ИЛИ. Для того, чтобы обеспечить другой порядок вы­числений, можно использовать круглые скобки ().



Вид (Kind)


Использование:

Только чтение.

Описание:

Тип: системное пе­речисление ВидЦвета. Содержит вид цвета.



Виды программных модулей


В системе 1C-Предприятие существуют несколько видов программных модулей. Они различаются по месту размещения и доступному контексту.

Общие модули

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

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

Для общих модулей конфигурации предусмотрен признак выполнения «Предпочтительно на сервере». Это означает, что данный модуль  будет   предпочтительно   исполняться  на сервере 1C: Предприятия. Если исполнение модуля происходит на сервере, то выполнение операторов, приводящих к интерактивному диалогу с пользователем или выводу сообщений на экран, в теле процедур и функций такого модуля будет приводить к ошибке выполнения. Например, вызов диалогов ввода данных, выдача предупреждений и тому подобные действия. Это относится и ко всем процедурам и функциям, вызываемым в процессе выполнения. Исключение составляет метод глобального контекста Сообщить.

Важно! При проектировании процедур и функций общих модулей следует иметь в виду, что в одном общем модуле не доступны процедуры и функции, объявленные в другом общем модуле с ключевым словом Экспорт.

Глобальный модуль

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

Существует набор правил взаимодействия глобального модуля и общих модулей:




• в общих модулях недоступны переменные, процедуры и функции, объявленные в глобальном модуле с ключевым словом

Экспорт;

• в глобальном модуле доступны процедуры и функции, объявленные в общих модулях с ключевым словом Экспорт;

Модули прикладных объектов

Набор прикладных объектов имеет собственные модули. К таким объектам относятся:

• справочники;

• документы;

• отчеты;

• обработки.

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

Модули форм

Эти модули содержатся в формах конфигурации. Каждая форма имеет свой индивидуальный модуль. В этих модулях возможно объявление переменных, процедур и функций, которые будут доступны при работе с формой извне во встроенном языке, дополняя контекст формы.

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

Вложенные таблицы в списке источников


В списке источников могут фигурировать и вложенные таблицы - табличные части справочников и документов.

Пример:

//В отчет необходимо вывести спецификацию товарных накладных -

// показать сам документ, номенклатуру и количество.

//В списке источников указана вложенная таблица «Состав» -

// табличная часть накладной.

// Выборка ограничена восемью записями, чтобы не перегружать пример.

Выбрать Первые 8

Ссылка, Номенклатура, Количество

Из

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

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

Ссылка Номенклатура Количество
Расходная накладная 00007 от 25.02.2002 21:03:21 Джинсы женские 4
Расходная накладная 00006 от 25.02.2002 0:00:00 Джинсы женские 5
Расходная накладная 00006 от 25.02.2002 0:00:00 Рубашка «Ковбойка» 5
Расходная накладная 00005 от 01.03.2002 20:58:28 Джинсы женские 1
Расходная накладная 00004 от 01.03.2002 20:50:40 Джинсы женские 1
Расходная накладная 00003 от 23.02.2002 0:00:00 Мойдодыр «Аквариум» 5
Расходная накладная 00003 от 23.02.2002 0:00:00 Раковина «Лилия» 8
Расходная накладная 00003 от 23.02.2002 0:00:00 Смеситель «Ультра» 10

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



Вложенные таблицы в списке полей выборки


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

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

<Группа полей>

( <Список вложенных полей> ) | *

<Список вложенных полей>

<Вложенное поле [, <Вложенное поле>[, ...] ]

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

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

<Вложенное поле>

<Выражение> [[КАК] <Псевдоним поля>]

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

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

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

Пример:

//В отчет необходимо вывести спецификацию товарных накладных,

// сам документ, номенклатуру и количество.

Выбрать

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

    Документ.РасходнаяНакладная.Состав.(Номенклатура Как Товар, Количество)

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

Ссылка Состав
Товар Количество
Расходная накладная 00007 от 25.02.2002 21:03:21 Джинсы женские 4
Расходная накладная 00006 от 25.02.2002 0:00:00 Джинсы женские 5
Рубашка «Ковбойка» 5
Расходная накладная 00005 от 24.02.2002 0:00:00 Джинсы женские 1
Расходная накладная 00004 от 01.03.2002 20:50:40 Джинсы женские 1
Расходная накладная 00003 от 23.02.2002 0:00:00 Мойдодыр «Аквариум» 5
Раковина «Лилия» 8
Смеситель «Ультра» 10

Обратите внимание, что поле «Состав» результата запроса пред­ставляет собой вложенную таблицу, имеющую поля «Номенкла­тура» и «Количество».

Пример:

//В отчет вывести все поля табличной части накладной.

Выбрать

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

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



Вложенные запросы в списке источников


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

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

Пример:

Выбрать

    Ссылка, Номенклатура, Количество

Из

    (Выбрать Первые 8

        Ссылка, Номенклатура, Количество

    Из

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

Как

    ВложенныйЗапрос

Результат будет точно таким же, как и в предыдущем примере.

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



Внешние обработки


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

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



ВнешняяОбработка ( ExternalProcessing )


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



Встроенные функции языка запросов


В языке запросов определены встроенные функции, которые мо­гут использоваться в выражениях в списке полей выборки (см. стр. 300) и в условии отбора в предложении ГДЕ (см. стр. 315). Опре­делены следующие встроенные функции:

<Встроенная функция>

ПОДСТРОКА( <Выражение>, <3начение>, <3начение> ) |

ГОД( <Выражение> ) |

КВАРТАЛ( <Выражение> ) |

МЕСЯЦ( <Выражение> ) |

ДЕНЬГОДА( <Выражение> ) |

ДЕНЬ( <Выражение> ) |

НЕДЕЛЯ( <Выражение> ) |

ДЕНЬНЕДЕЛИ( <Выражение> ) |

ЧАС( <Выражение> ) |

МИНУТА( <Выражение> ) |

СЕКУНДА( <Выражение> )

Функция ПОДСТРОКА

Данная функция предназначена для выделения подстроки из строки.

<Выражение>

 - строка, из которой необходимо выделить под­строку. Выражение, имеющее тип Строка.

<3начение>

 - позиция символа, с которого начинается вы­деляемая из строки подстрока. Значение типа Число.

<3начение>

 - длина выделяемой подстроки. Значение типа Число.

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

Пример:

Выбрать

    Справочних.Контрагенты.Наименование,

    Подстрока(Справочник.Контрагенты.Наименование, 3, 5) Как Подстрока

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

Наименование Подстрока
Поставщики ставщ
Трикотажная фабрика «Заря» икота
Фабрика джинсовой одежды брика
Покупатели купат
Ярмарка одежды марка
Торговый дом «Буденовский» рговы
Павильон 45 на оптовом рынке вильо
Бавария - фарфор вария
Фабрика джинсовой одежды брика
АКБ ПромСтройБанк Б Про

Функция ГОД

Данная функция предназначена для вычисления номера года из значения типа Дата.

Параметр функции - это выражение, имеющее тип Дата.




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

Функция КВАРТАЛ

Данная функция предназначена для вычисления номера квартала из з гачения типа Дата. Номер квартала находится в диапазоне 1-4.

Параметр функции - это выражение, имеющее тип Дата.

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

Функция МЕСЯЦ

Данная функция предназначена для вычисления номера месяца из значения типа Дата. Номер месяца находится в диапазоне 1 -12.

Параметр функции - это выражение, имеющее тип Дата-

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

Функция ДЕНЬГОДА

Данная функция предназначена для вычисления дня года из зна­чения типа Дата. День года находится в диапазоне 1 - 366.

Параметр функции - это выражение, имеющее тип Дата.

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

Функция ДЕНЬ

Данная функция предназначена для вычисления дня месяца из значения типа Дата. День месяца находится в диапазоне 1 - 31.

Параметр функции - это выражение, имеющее тип Дата.

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



Функция НЕДЕЛЯ

Данная функция предназначена для вычисления номера недели года из значения типа Дата.

Параметр функции - это выражение, имеющее тип Дата.

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

Функция ДЕНЬНЕДЕЛИ

Данная функция предназначена для вычисления дня недели из значения типа Дата. День недели находится в диапазоне 1 (по­недельник) - 7 (воскресенье).

Параметр функции - это выражение, имеющее тип Дата.

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

Функция ЧАС

Данная функция предназначена для вычисления часа суток из значения типа Дата. Час суток находится в диапазоне 0 - 23.

Параметр функции - это выражение, имеющее тип Дата.

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

Функция МИНУТА

Данная функция предназначена для вычисления минуты часа из значения типа Дата. Минута часа находится в диапазоне 0 - 59.

Параметр функции - это выражение, имеющее тип Дата.

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

Функция СЕКУНДА

Данная функция предназначена для вычисления секунды минуты из значения типа Дата. Секунда минуты находится в диапазоне 0 - 59.

Параметр функции - это выражение, имеющее тип Дата.

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


Данная книга является описанием встроенного


Данная книга является описанием встроенного языка системы 1С:Предприятие и предназначена для специалистов, выполняющих конфигурирование системы для решения конкретной задачи автоматизации учета.
1С:Предприятие является гибкой настраиваемой системой, с помощью которой можно решать широкий круг задач в сфере автоматизации деятельности предприятий. Специфические алгоритма конфигурации описываются в системе 1С:Предприятие в режиме запуска Конфигуратор (далее по тексту - конфигуратор) в про­граммных модулях, содержащих тексты на встроенном языке системы 1С:Предприятие.

ВыделенныеСтроки (SelectedUnes)


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

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

См. также:

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



Выполнение и работа с запросами во встроенном языке


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



Выражения языка


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

Арифметические операции

В языке определены следующие виды арифметических операций:

сложение              (Оп1 + Оп2)

вычитание             (Оп1 - Оп2)

умножение             (Оп1 * Оп2)

деление                (Оп1 / Оп2)

остаток от деления    (Оп1 % Оп2)

унарный минус    (-Оп1)

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

Сложение   определено  для следующих типов операндов:

    Число+Число     Дата+ Число   (к дате прибавляется число дней)

Вычитание  определено для следующих типов операндов:

    Число-Число     Дата-Число (от даты отнимается число дней)

    Дата-Дата   (результатом  является число дней между датами)

Умножение:

    Число*Число

Деление:

    Число/Число

Остаток от деления:

    Число%Число

Замечание! При выполнении операции % (остаток отделения) оба операнда операции округляются до целого значения.




Операция конкатенации

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

Пример:

ФИО = Фамилия + " " + Имя + " " + Отчество;

Логические операции

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

Операции сравнения:

В языке определены следующие виды операций сравнения:

больше            (Оп1 > Оп2)

больше или равно    (Оп1 >= Оп2)

равно              (Оп1 = Оп2)

не равно            (Оп1 <> Оп2)

меньше             (Оп1 < Оп2)

меньше или равно   (Оп1 <= Оп2)

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

больше Число>Число Строка>Строка Дата>Дата

больше или равно:     Чиcлo>=Чиcлo Строка> = Строка  Дата>=Дата

меньше:              Число<Число Строка<Строка  Дата<Дата

меньше или равно:    Число<=Число  Строка<= Строка  Дата<=Дата

равно:              Любой тип=Любой тип

не равно:           Любой тип <> Любой тип

Булевы операции:

В языке определены следующие виды булевых операций:

И (AND)             конъюнкция (булево И)

ИЛИ (OR)           дизъюнкция (булево ИЛИ)

НЕ (NOT)            логическое отрицание (булево отрицание НЕ)

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

Уровни старшинства логических операций:

Уровень 1          операнды заключенные в скобки

Уровень 2          НЕ

Уровень 3          И 

Уровень 4          ИЛИ

Замечание!

При вычислении логического выражения вычисляются только необходимые части выражения. Например, в выражении "(Цена > 0) И ПроверкаСуммы()", если Цена <" 0, то функция ПроверкаСуммы() не вызывается.

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

Выражения в языке запросов


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

<Выражение>

<Разыменование поля> |

<Агрегатная функция> |

<Встроенная функция> |

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

<Приведение типа>[.<Разыменование поля>] |

<3начение> |

<Выражение> <Бинарная операция> <Выражение> |

<Унарная операция> <Выражение> |

( <Выражение> )

<Бинарная операция>

+ | - | * | /

<Унарная операция >

- |  +

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

Выражения в списке полей выборки, в предложениях ИМЕЮЩИЕ, ИТОГИ, УПОРЯДОЧИТЬ ПО могут быть агрегатными функциями. Агрегатные функции описаны на стр. 345.

Выражение может быть встроенной функцией языка запросов. Встроенные функции описаны на стр. 349. Могут использоваться операции выбора, описанные на стр. 354, и операции приведения типа значения, описанные на стр. 356.

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



XBase


Для работы с базами данных формата DBF в системе может ис­пользоваться специальный объект - XBase. Механизм работы с базами данных формата DBF предназначен для обеспечения воз­можности манипулирования ими непосредственно из встроенного языка 1C: Предприятия. Каждый объект XBase может быть свя­зан с одним файлом базы данных.



XBase (XBase)


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



Запись изменений в базу данных


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



Запрос (Query)


Объект предназначен для выполнения запросов к базе данных.



Зеленый (G)


Использование:

Только чтение.

Описание:

Тип: Число. Содержит зеленую составляющую цвета.

Примечание:

Если цвет задан не абсолютным, то содержит -1.



ЖурналДокументовМенеджер. <Имя


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

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

Пример:

Выборка = ЖурналыДокументов. Реализация. Выбрать();

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

КонецЦикла;



ЖурналДокументовСписок.<Имя журнала> ( DocumentsJournalList .< Имя журнала>)


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

См. также:

ДокументСписок. <Имя документа>.



ЖурналДокументовВыборка.<Имяжурнала> ( DocumentsJournalSelection .<Имя журнала>)


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

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



Журналы документов


Журналы документов являются средством для отображения в едином списке документов нескольких видов. Журнал докумен­тов может иметь несколько форм и макетов табличного докумен­та.



ЖурналыДокументовМенеджер ( DocumentsJournalsManager )


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

ЖурналыДокументов.

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

Пример:

// менеджер журналов документов предоставляет доступ к

// менеджеру журнала Реализация.

Выборка = ЖурналыДокументов.Реализация.Выбрать();

См. также:

Глобальный контекст, свойство ЖурналыДокументов.



ЗначениеДиаграммы (ChartValue)


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

См.также:

Диаграмма, метод ПолучитьЗначение.