С: Предприятие 8.0 Описание встроенного языка
Введение | ||
Глава 1-1. Общее описание языка | ||
Операторы и синтаксические конструкции | ||
Основные приемы работы | ||
Глава 1-2.
Встроенные функции языка |
||
Функции работы со значениями типа Строка | ||
Функции работы со значениями типа Число | ||
Функции работы со значениями типа Дата | ||
Функции преобразования значений | ||
Функции форматирования | ||
Прочие | ||
Глава 1-3. Глобальный контекст | ||
Свойства | ||
Процедуры и функции интерактивной работы | ||
Функции для вызова диалога ввода данных | ||
Функции форматирования | ||
Функции обращения к конфигурации | ||
Процедуры и функции сеанса работы | ||
Процедуры и функции сохранения значений | ||
Процедуры и функции работы с операционной системой | ||
Процедуры и функции работы с внешними компонентами | ||
Процедуры и функции работы с файлами | ||
Процедуры и функции работы с информационной базой | ||
Процедуры и функции работы с данными информационной базы | ||
События | ||
Глава 1-4.
Общие объекты |
||
ХранилищеЗначения | ||
Картинка | ||
УникальныйИдентификатор | ||
Коллекция | ||
ТекстовыйДокумент | ||
ТабличныйДокумент | ||
Работа с объектами метаданных | ||
Работа с файлами | ||
XBase | ||
Описание типов значений | ||
Глава 1-5. Универсальные коллекции значений | ||
Массив | ||
Структура | ||
Соответствие | ||
Список значений | ||
Таблица значений | ||
Дерево значений | ||
Глава 2-1. Интерфейсные | ||
Форма | ||
Диаграмма | ||
Командная панель | ||
Панель | ||
Переключатель | ||
ПолеВвода | ||
ПолеВыбора | ||
ПолеКартинки | ||
ПолеСписка | ||
ПолосаРегулирования | ||
Разделитель | ||
РамкаГруппы | ||
ТабличноеПоле | ||
ПолеТабличногоДокумента | ||
ПолеТекстовогоДокумента | ||
Флажок | ||
Свойства интерфейсных объектов | ||
Работа с пользовательским интерфейсом | ||
Глава 2-2. Работа с запросами | ||
Источники данных (таблицы) запросов | ||
Язык запросов | ||
Запрос | ||
РезультатЗапроса | ||
ВыборкаИзРезультатаЗапроса | ||
Коллекция КолонокРезультатаЗапроса | ||
Колонка РезультатаЗапроса | ||
Глава 3-1. Прикладные объекты | ||
Константы | ||
Справочники | ||
Документы | ||
Журналы документов | ||
Перечисления | ||
Отчеты | ||
Обработки | ||
Внешние обработки | ||
Регистры сведений | ||
Регистры накопления | ||
Критерии отбора | ||
Последовательности | ||
Универсальные объекты |
Агрегатная функция КОЛИЧЕСТВО
Функция подсчитывает количество значений параметра, попавших в выборку. В отличие от других агрегатных функций функция КОЛИЧЕСТВО допускает три способа использования.
• Во-первых, функция позволяет подсчитать количество значений указанного поля, не равных NULL.
• Во-вторых, функция позволяет подсчитать количество различных значений указанного поля, не равных NULL. Для этого перед спецификацией поля надо указать ключевое слово РАЗЛИЧНЫЕ.
• В-третьих, функция позволяет подсчитать количество строк в результате запроса. Для этого в качестве параметра функции надо указать звездочку «*».
В качестве параметра функции можно указывать ссылки на поля, содержащие значения любого типа.
Пример:
ВЫБРАТЬ
Количество(*) Как Всего,
Количество(Различные Накладная.Номенклатура) Как Разные
Из
Документ.РасходнаяНакладная.Состав Как Накладная
Результат запроса:
Всего | Разные |
24 | 8 |
Агрегатная функция МАКСИМУМ
Функция вычисляет максимальное значение из всех попавших в выборку значений поля.
В качестве параметра функции можно указывать ссылки на поля, содержащие значения любого типа.
При определении максимального значения применяются правила сравнения значений, описанные на стр. 360.
Агрегатная функция МИНИМУМ
Функция вычисляет минимальное значение из всех попавших в выборку значений поля.
В качестве параметра функции можно указывать ссылки на поля, содержащие значения любого типа.
При определении минимального значения применяются правила сравнения значений, описанные на стр. 360.
Агрегатная функция СРЕДНЕЕ
Функция вычисляет среднее значение всех попавших в выборку значений поля.
В качестве параметра функции можно указывать только ссылки на поля, содержащие числовое значение.
Если поле не может содержать числовых значений, то применение функции СРЕДНЕЕ к такому полю вызовет ошибку. Если поле может содержать числовые значения (имеет составной тип данных), то данная функция может быть применена к такому полю. Но если среди значений поля в выборке встретится нечисловое значение (помимо значений NULL), это вызовет ошибку.
Агрегатная функция СУММА
Функция вычисляет арифметическую сумму всех попавших в выборку значений поля.
В качестве параметра функции можно указывать только поля, содержащие числовое значение.
Если поле не может содержать числовых значений, то применение функции СУММА к такому полю вызовет ошибку. Если поле может содержать числовые значения (имеет составной тип данных), то данная функция может быть применена к такому полю. Но если среди значений поля в выборке встретится нечисловое значение (помимо значений NULL), это вызовет ошибку.
Агрегатные функции языка запросов
В языке запросов предусмотрены агрегатные функции, которые используются при группировке результатов запроса и при подсчете итогов. Агрегатные функции предназначены для обобщения значений указанного параметра. Определены следующие агрегатные функции:
СУММА ( <Выражение > ) |
СРЕДНЕЕ ( <Выражение> ) |
МИНИМУМ ( <Выражение> ) |
МАКСИМУМ ( <Выражение> ) |
КОЛИЧЕСТВО ( [РАЗЛИЧНЫЕ] <Выражение> | * )
Пример:
Выбрать
Накладная.Номенклатура.Наименование,
Сумма(Накладная.Сумма) Как Сумма,
Среднее(Накладная.Сумма) Как Среднее,
Максимум(Накладная.Сумма) Как Максимум,
Минимум(Накладная.Сумма) Как Минимум,
Количество(Накладная.Сумма) Как Колич
Из
Документ.РасходнаяНакладная.Состав Как Накладная
Сгруппировать По
Накладная.Номенклатура
Итоги Общие
Результат запроса:
Наименование | Сумма | Среднее | Максимум | Минимум | Колич |
265 955,45 | 12 511,12 | 40 000,23 | 555 | 8 | |
Брюки детские | 28 500,22 | 9 500,07 | 15000 | 3000 | 3 |
Рубашка «Ковбойка» | 24000 | 8000 | 16000 | 4000 | 3 |
Джинсы женские | 63555 | 6 355,5 | 30000 | 555 | 10 |
Свитер детский | 6400 | 6400 | 6400 | 6400 | 1 |
Раковина «Лилия» | 60 000,23 | 30000,115 | 40 000,23 | 20000 | 2 |
Мойдодыр «Аквариум» | 65500 | 21 833,33 | 40000 | 8000 | 3 |
Смеситель «Ультра» | 15000 | 15000 | 15000 | 15000 | 1 |
Кухонный комбайн Крупс | 3000 | 3000 | 3000 | 3000 | 1 |
Агрегатные функции могут использоваться в списке полей выборки, предложениях ИМЕЮЩИЕ, ИТОГИ, УПОРЯДОЧИТЬ ПО.
Автоупорядочивание результатов
Предложение АВТОУПОРЯДОЧИВАНИЕ позволяет включить режим автоматического формирования полей для упорядочивания результата запроса.
Автоупорядочивание работает по следующим принципам:
• Если в запросе было указано предложение УПОРЯДОЧИТЬ ПО, то каждая ссылка на таблицу, находящаяся в этом предложении, будет заменена полями, по которым по умолчанию сортируется таблица (для справочников это код или наименование, для документов - дата документа). Если поле для упорядочивания ссылается на иерархический справочник, то будет применена иерархическая сортировка по этому справочнику.
• Если в запросе отсутствует предложение УПОРЯДОЧИТЬ ПО, но есть предложение СГРУППИРОВАТЬ ПО, тогда результат запроса будет упорядочен по полям, присутствующим в ПО, в той же последовательности и, в случае если группировка велась по полям - ссылкам, то по полям сортировки по умолчанию таблиц, на которые были ссылки.
• В случае же, если в запросе отсутствуют предложения и УПОРЯДОЧИТЬ ПО и СГРУППИРОВАТЬ ПО, результат будет упорядочен по полям сортировки по умолчанию для таблиц, из которых выбираются данные, в порядке их появления в запросе.
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
БиблиотекаСтилей (StylesLib)
Представляет собой библиотеку стилей конфигурации.
Данный объект является коллекцией значений. В качестве элемента коллекции выступает значение типа Стиль. Для объекта доступен обход коллекции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции. Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс элемента.
Цвет (Color)
Объект предназначен для определения и хранения значение цвета. Цвет может определяться абсолютным значением (сочетанием красного, синего и зеленого цветов), браться из элементов стиля, из палитры Windows, или использоваться один из web-цветов.
Может присваиваться в качестве значения атрибутов других объектов, параметров методов, процедур или функций, имеющих тип Цвет.
Пример:
ЦветВажнойКнопки = Новый Цвет (255, 0, 0); // красный
ЦветОбычнойКнопки = ЦветСтиля.ЦветФонаКнопки;
Если ОстатокТовара <= Товар.ТочкаЗаказа Тогда
ЭлементыФормы.КнопкаЗаказать.ЦветФонаКнопки = ЦветВажнойКнопки;
Иначе
ЭлементыФормы.КнопкаЗаказать.ЦветФонаКнопки = ЦветОбычнойКнопки;
КонецЕсли ;
Действие (Action)
Предназначен для получения действия, которое можно назначить в качестве обработчика события элемента управления или команды пользовательского интерфейса. Для обработки такого события вызывается процедура модуля формы (глобального или общего модулей для пользовательских интерфейсов), имя которой задано при создании действия.
//В модуле описана процедура Сформировать(), выполнение которой
// назначим кнопке "Сформировать" в качестве действия при нажатии
ОбработкаНажатия = Новый Действие("Сформировать");
КнопкаСформировать = ЭлементыФормы.КнопкаСформировать;
КнопкаСформировать.УстановитьДействие("Нажатие", ОбработкаНажатия) ;
Дерево значений
Дерево значений представляет собой динамически формируемый набор значенийлюбого типа, сходный с объектом ТаблицаЗначений. В отличие от таблицы значений, строки дерева значений могут образовывать иерархические структуры: каждая строка дерева может иметь набор (коллекцию) подчиненных строк, каждая из подчиненных строк в свою очередь также может иметь набор подчиненных строк и так далее. При этом поиск значений, сортировка, получение итогов могут осуществляться либо по текущему уровню иерархии, либо включая все подчиненные. Дерево значений может иметь визуальное представление, если с ним связать элемент управления ТабличноеПоле. Внешний вид такого элемента будет похож на дерево групп справочника.
Необходимо отметить, что дерево значений, связанное с элементом управления ТаблкчноеПоле, будет иметь все колонки, имеющиеся в табличном поле, с соответствующими именами. Кроме того, дерево значений может иметь также и собственные колонки, не отображаемые в табличном поле, при этом их имена должны отличаться от имен колонок табличного поля.
ДеревоЗначений (ValueTree)
Используется для доступа к свойствам и методам дерева значений в целом.
Диаграмма
Диаграмма позволяет размещать в таблицах и формах системы 1С:Предприятие диаграммы и графики различного вида. Диаграмма представляет собой определенную фигуру или фигуры, которые строятся на основании матрицы данных М х N. Данные, организованные в виде матрицы, удобно представить как значения, полученные в результате замеров некоторой величины в определенных точках, причем замеры производились сериями. Серии диаграммы могут быть представлены строками матрицы данных, а значения в точках - столбцами (или наоборот).
Например, в диаграмме, отражающей объемы продаж различной номенклатуры по месяцам удобно представить в качестве точек месяцы, в качестве серий - виды номенклатуры.
Точки диаграммы отмечаются на координатных осях специальными маркерами. Значения в сериях объединяются общей линией либо областью одного цвета. Отдельная область, называемая легендой диаграммы, содержит список меток, соответствующих сериям.
Для большей наглядности количество выводимых серий диаграммы можно ограничить, используя одно из правил, по которому самые маленькие серии будут объединяться в общую сводную серию.
Диаграмма может быть вставлена в форму либо в табличный документ. Для вставленной в табличный документ диаграммы можно задать область табличного документа, содержащую необходимые данные (свойство ИсточникДанных).
Следует различать два режима работы диаграммы - связь с источником данных посредством свойства ИсточникДанных и наполнение диаграммы данными при помощи метода УстановитьЗначение. Данные режимы не могут комбинироваться.
Пример: в виде диаграммы можно представить в графической форме результаты отчета об объемах продаж за период в разрезе номенклатуры и покупателей.
Диаграмма (Chart)
Используется для доступа к свойствам, методам и событиям диаграммы в целом.
ДиалогВыбораФайла (FileDialog)
Представляет собой диалог специального вида для открытия файла или нескольких файлов, сохранения файла или выбора каталога.
Пример:
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "';
Фильтр = "Текст (*.txt) |*.txt";
ДиалогОткрытияФайла.Фильтр = фильтр ;
ДиалогОткрытияФайла.МножественныйВыбор = Истина;
ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбрать() Тогда
МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
Для каждого ИмяФайла Из МассивФайлов Цикл
ВыбФайл = Новый Файл(ИмяФайла);
Сообщить(ИмяФайла+"; Размер = "+ВыбФайл.Размер());
КонецЦикла;
Иначе
Предупреждение("Файл(ы) не выбран!");
КонецЕсли;
ДокументМенеджер. < Имя документа > (DocumentManager.<Имя документа>)
Объект предназначен для управления документом, как объектом конфигурации. С помощью этого объекта осуществляется поиск документов, получение выборки документов, создание нового документа, работа с формами и макетами документа. Доступ к объекту осуществляется через свойства объекта
ДокументыМенеджер. Полное имя типа объекта определяется с учетом имени документа конфигурации. Например, для документа РасходнаяНакладная имя типа будет выглядеть ДокументМенеджер.РасходнаяНакладная.
Пример:
Результат = Документы.РасходнаяНакладная.НайтиПоНомеру(НомерДок, РабочаяДата) ;
Если Результат.Пустая() Тогда
Предупреждение("Документ не найден!");
Иначе
Результат.ПолучитьФорму().Открыть() ;
КонецЕсли;
ДокументОбъект. < Имя документа > (DocumentObject.<Имя документа>)
Объект для модификации документов. Позволяет изменять реквизиты документа и записывать его.
Важно! У всех событий этого объекта назначены предопределенные процедуры-обработчики. Имена процедур соответствуют именам событий. Процедуры должны располагаться в модуле документа.
См. также:
ДокументСсылка.<Имя документа>
ДокументВыборка.<Имя документа>
ДокументСписок.<Имя документа>
Объект предназначен для управления списком документов, отображаемым в табличном поле.
ДокументСсылка. < Имя документа> ( DocumentRef .< Имя документа>)
Используется для указания ссылки на документ в реквизитах других объектов и переменных встроенного языка. Данный объект не содержит средств для модификации документа, однако позволяет обращаться к его реквизитам и другой информации об документе. При обращении к свойствам объекта будет выполняться считывание всех данных документа из информационной базы, но оно будет оптимизировано при многократном обращении к данному документу как через этот объект, так и через другое равное ему значение.
ДокументВыборка.<Имя документа> ( DocumentSelection .< Имя документа>)
Объект этого типа возвращается методом Выбрать у объекта типа ДокументМенеджер и представляет собой специализированный способ перебора документов.
Обход документов выполняется системой динамически. Это означает, что использование выборки не считывает все документы сразу, а выбирает их порциями из информационной базы. Такой подход позволяет достаточно быстро обходить с помощью выборки большие списки документов и не загружает в память всех элементов выборки.
Важно! Данному объекту доступны все свойства объекта ДокументСсылка.
См. также:
ДокументСсылка.<Имя документа>
ДокументОбъект.<Имя документам>
Документы
Документ - одно из основных понятий системы 1С:Предприятие. При помощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях, а также ее просмотр и корректировка.
В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумажных документов, являющихся основаниями для тех или иных учетных действий или расчетов. Тем не менее, использование этого типа данных может выходить далеко за рамки простой фиксации изменений, внесенных в учетные регистры.
Структура каждого конкретного вида документа определяется при его создании в конфигураторе. У любого вида документа существуют реквизиты, которые создаются автоматически - это Дата и Номер. Номер создается, если при конфигурировании длина номера указана больше 0. Другие реквизиты документа определяются в конфигураторе отдельно для каждого создаваемого
вида документа.
ДокументыМенеджер ( DocumentsManager )
Объект предназначен для управления документами и предоставляет доступ к значениям типа ДокументМенеджер. Доступ к
объекту осуществляется через свойство глобального контекста Документы.
Данный объект является коллекцией значений. В качестве элемента коллекции выступает значение типа ДокументМенеджер.<Имя документа>. Для объекта доступен обход коллекции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции.
Пример:
// менеджер документов предоставляет доступ к менеджеру
// документа РасходнаяНакладная.
НовДок = Документы.РасходнаяНакладная.СоздатьДокумент();
См. также:
Глобальный контекст, свойство Документы.
Дополнение дат
В случае, если поле, по которому рассчитываем итоги, является полем типа "Дата" то возможно дополнение результатов датами в заданном периоде. Делается это при помощи ключевого слова ПЕРИОДАМИ, после которого в скобках указывается вид периода (Секунда, Минута, Час, День, Неделя, Декада, Месяц, Квартал, Полугодие, Год), начальная и конечная даты интересуемого периода. В случае, если даты не указаны, будут использованы первая и последняя даты, участвующие в результате.
Пример:
ВЫБРАТЬ
Получатель,
НачалоПериода(Дата, Месяц) Период,
Количество(Ссылка) КоличествоПокупок
ИЗ
Документ.РасхНакл
СГРУППИРОВАТЬ ПО
Получатель,
НачалоПериода(Дата, Месяц)
ИТОГИ
Сумма(КоличествоПокупок)
ПО
Период Периодами(Месяц, ДатаВремя(2000,07,01), ДатаВремя(2000,12,01))
Результат запроса:
Получатель | Период | КоличествоПокупок |
01.07.2000 0:00:00 | 3 | |
Маг. "Мебель" | 01.07.2000 0:00:00 | 1 |
Урюпинскторг | 01.07.2000 0:00:00 | 1 |
Маг. "Хозяин" | 01.07.2000 0:00:00 | 1 |
01.08.2000 0:00:00 | 1 | |
Маг. "Гигант" | 01.08.2000 0:00:00 | 1 |
01.09.2000 0:00:00 | 1 | |
Урюпинскторг | 01.09.2000 0:00:00 | 1 |
01.10.2000 0:00:00 | 0 | |
01.11.2000 0:00:00 | 0 | |
01.12.2000 0:00:00 | 0 |
Следует иметь ввиду , что такое представление результата получится, только, если при обходе результата по группировке "Период" использовать в качестве источника измерения все записи "Период".
Дополнение контекста объектов и форм
В языке есть возможность, при обращении к объектам и формам извне, из других программных модулей, обращаться к переменным, процедурам и функциям этих модулей, как к свойствам и методам самих объектов и форм. Можно обращаться к тем переменным, процедурам и функциям, которые объявлены с ключевым словом Экспорт. Для форм дополнительно возможно обращение к реквизитам формы.
Пример:
// Пример использования процедуры печати документов из журнала
// документов. Допустим, у нас есть несколько различных документов,
// причем у всех есть процедура Печать(). Модуле журнала документов
// располагается кнопка «Печать», которая вызывает процедуру печати
// текущего документа журнала.
Процедура ПечатьНажатие(Элемент)
// Получим текущий документ, на котором установлен курсор.
ТекДок = ЭлементыФормы.ЖурналСписок.ТекущаяСтрока;
// Получим основную форму текущего документа.
ФрмТекДок = ТекДок.ПолучитьФорму() ;
// Вызовем процедуру печати, расположенную в модуле формы документа.
ФрмТекДок.Печать() ;
КонецПроцедуры
ДвоичныеДанные (BinaryData)
Значение содержит двоичные данные, которые считываются из файла.
Значение может быть сохранено в ХранилищеЗначений.
Хранимые данные могут быть записаны в файл.
Пример:
МояКартинка = Новый ДвоичныеДанные("С:\Мои документы\Картинка1.bmр");
ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка);
// сохранение значения типа ХранилищеЗначения в базе данных
НовНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
НовНоменклатура.Наименование = "Диван ""Маргарита""";
// реквизит Изображение имеет тип ХранилищеЗначения
НовНоменклатура.Изображение = ХранилицеКартинки;
НовНоменклатура.Записать();
// выгрузка значения типа ДвоичныеДанные из хранилища значений в файл
Имяфайла = "С:\Мои документы\Картинка2 .bmр") ;
НовНоменклатура.Изображение.Записать(ИмяФайла);
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Двуязычное представление ключевых слов
Одной из существенных особенностей языка запросов 1C: Предприятия является то, что как и во встроенном языке, все ключевые слова имеют два варианта написания: на русском и английском языках. Далее в этой главе указываются русские варианты написания ключевых слов. Ниже приведена таблица, в которой приведены соответствия русского и английского и вариантов написания ключевых слов языка запросов ...... (пропущено)
Файл (File)
Используется для доступа к параметрам файлов или каталогов. Необходимо отметить, что данный объект не предназначен для чтения и записи из файлов.
Пример:
ИмяФайла = "C:\Test\readme.txt";
ВыбФайл = Новый Файл(ИмяФайла);
Если ВыбФайл.Существует() Тогда
Стр = "Результат выполнения:"+Символа.ПС+
+"Файл: "+ВыбФайл.ПолноеИмя+Символы.ПС+
+"Имя: "+ ВыбФайл.Имя+Символы.ПС+
+"Имя без расширения: "+Вы6Файл.ИмяБезРасширения+Символы.ПС+
+"Расширение: " +ВыбФайл. Расширение+Символы. ПС+
+"Путь: "+ВыбФайл.Путь+Символы.ПС+
+"Размер: "+ВыбФайл.Размер()+Символы.ПС+
+"Это файл: "+ВыбФайл.ЭтоФайл()+Символы.ПС+
+"Время изменения: "+ВыбФайл.ПолучитьВремяИзменения()+Символы.ПС+
+"Только чтение: "+ВыбФайл.ПолучитьТолькоЧтение( )+Символы.ПС+
+"Невидимость: "+Вы6Файл.ПолучитьНевидимость() ;
Сообщить(Стр);
Иначе
Предупреждение("Файл не найден!");
КонецЕсли
Результат выполнения:
Файл: C:\Test\readme.txt
Имя: readme.txt
Имя без расширения: readme
Расиирение: .txt
Путь: C:\Test\
Размер: 916
Это файл: истина
Время изменения: 31.10.2000 12:42:04
Только чтение: истина
Невидимость: ложь
ФиксированнаяКоллекция
Объект представляет собой системную коллекцию значений и используется в качестве значений свойств других объектов. Заполняется системой при инициализации объектов данного типа.
Создать этот объект из языка нельзя. Набор свойств этого объекта определяется в зависимости от контекста его использования и описан подробнее в описании тех свойств, где он используется.
Данный объект является коллекцией значений. Для объекта доступен обход коллекции посредством оператора Для каждого ... из ... Цикл. При обходе выбираются элементы коллекции. Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс элемента.
Фильтрация результатов запроса
Предложение ГДЕ <Условие отбора> позволяет задать условие отбора данных из исходных таблиц - источников запроса; в запросе будут обрабатываться только те записи, для которых данное условие оказывается истинным.
Воспользуемся примером из раздела «Спецификации соединений» на стр. 309, переписав его с использованием предложения ГДЕ.
Пример:
// Необходимо выяснить, какие банки являются одновременно
// контрагентами (одинаковые наименования присутствуют
// и в справочнике Контрагенты, и в справочнике Банки).
Выбрать
Контрагенты.Ссылка Как Контрагент,
Банки.Ссылка Как Банк
Из
Справочник.Контрагенты Как Контрагенты,
Справочник.Банки Как Банки
Где
Контрагенты.Наименование = Банки.Наименование
Результат запроса:
Контрагент | Банк |
АКБ Промстройбанк | АКБ ПромСтройБанк |
Результат, как и в примере параграфа «Внутреннее соединение», содержит всего одну запись.
Обратите внимание: совершенно необязательно, чтобы поле, фигурирующее в предложении ГДЕ, входило в список выборки.
Условие отбора может определяться и как простое логическое выражение, и как более сложное, в котором простые логические выражения соединяются между собой логическими операторами И, ИЛИ, НЕ. Подробно правила описания условий в языке запросов рассматриваются в параграфе «Условия в языке запросов».
Флажок (CheckBox)
Флажок предназначен для выбора одного значения. Используются флажки, имеющие два либо три состояния. От типа связанного с флажком значения зависит количество состояний флажка: флажок со значением типа Булево может иметь только два состояния (установлен, снят), со значением типа Число может иметь три состояния (установлен, снят, не определено).
Форма
Форма является одним из основных интерфейсных средств 1С:Предприятия для обеспечения взаимодействия с пользователем.
Форма (Form)
Используется для доступа к свойствам, методам и событиям формы в целом, а также к коллекции ее элементов управления. Доступ к свойствам, методам формы из ее собственного модуля может осуществляется непосредственно, используя их имена (без ссылки на какой-либо объект).
Формат исходных текстов программных модулей
Программные модули в конфигурации системы 1С:Предприятие не являются самостоятельными программами в общепринятом понимании этого слова, поскольку они являются только частью всей конфигурации. Программный модуль - это текст на встроенном языке, в котором размещены тексты процедур и функций с необходимыми алгоритмами, вызываемые системой во время работы системы в определенные моменты. Поэтому программный модуль не имеет формальных границ своего описания типа: «Начало модуля» - «Конец модуля».
Место размещения конкретного программного модуля предоставляется конфигуратором в тех точках конфигурации, которые требуют описания специфических алгоритмов функционирования. Эти алгоритмы следует оформлять в виде процедур или функций, которые будут вызваны самой системой в заранее предусмотренных ситуациях (например, при нажатии кнопки в диалоговом окне).
Каждый отдельный программный модуль воспринимается системой как единое целое, поэтому все процедуры и функции программного модуля выполняются в едином контексте.
Контекст выполнения программного модуля
Каждый программный модуль связан с остальной частью конфигурации. Эта связь называется контекстом выполнения модуля. Следует различать два вида контекста:
• глобальный контекст задачи;
• локальный контекст выполнения конкретного модуля.
Глобальный контекст образуется:
• значениями свойств и методов глобального контекста;
• функциями встроенного языка и языковыми конструкциями;
• переменными, процедурами и функциями глобального программного модуля и общих модулей, объявленными с ключевым словом Экспорт.
Глобальный контекст виден всем программным модулям и определяет общую языковую среду конфигурации.
Локальный контекст модуля образуется тем конкретным местом конфигурации задачи, для которого использован программный модуль. Локальный контекст виден только конкретному программному модулю и определяет для модуля набор непосредственно доступных модулю объектов, их свойств и методов (см. «Виды программных модулей»),
Формат описания элементов языка
Каждый элемент (конструкция) языка, упомянутый в этом руководстве, печатается таким шрифтом. Информация по компонентам языка приводится в виде синтаксической диаграммы, подробного описания и примера исходного текста.
Соглашения и обозначения, принятые в синтаксических диаграммах
В синтаксических диаграммах используются следующие символы:
Символ Значение
[] В квадратных скобках заключаются необязательные синтаксические элементы.
( ) Круглые скобки заключают в себе список параметров.
| Вертикальной линией разделяются синтаксические элементы, среди которых нужно выбрать только один.
Формат программного модуля
Исходный текст программного модуля может состоять из операторов и комментариев.
Комментарий используется для размещения в исходном тексте программного модуля всякого рода пояснений к работе модуля. Хорошим тоном программирования считается, когда исходный текст содержит исчерпывающий комментарий с описанием алгоритма. В режиме исполнения программы комментарии пропускаются. В тексте программного модуля комментарий начинается парой символов "//" и заканчивается концом строки. Это значит, что комментарий можно начинать с начала строки или записывать его после оператора на той же строке. После начала комментария писать оператор на той же строке нельзя, необходимо закончить комментарий концом строки.
Пример:
А=В; // Это - комментарий // Это тоже комментарий
Операторы имеют вид стандартного обращения к процедуре, за исключением оператора присваивания (А = В;) и синтаксических конструкций встроенного языка (например, таких как Для, Пока, Если). Между собой операторы обязательно следует разделять символом ";" (точкой с запятой). Конец строки не является признаком конца оператора, т.е. операторы могут свободно переходить через строки и продолжаться на другой строке. Можно располагать произвольное число операторов в одной строке, разделяя их символом ";".
Операторы языка в программном модуле можно подразделить на две категории: операторы объявления переменных и исполняемые
операторы. Операторы объявления переменных создают имена переменных, которыми манипулируют исполняемые операторы. Любой исполняемый оператор может иметь метку, используемую в качестве точки перехода в операторе Перейти.
В общем случае формат оператора языка следующий:
-метка: Оператор[(параметры) ] [ДобключевоеСлово];
В качестве меток используются специальные идентификаторы, начинающиеся с символа '~' (тильда) и состоящие из последовательности букв, цифр и символов '_' (подчеркивание). Чтобы пометить оператор, надо поместить перед ним метку и следующий за ней символ ":".
Пример:
-метка:А=В;
Имена переменных, процедур и функций
Именем переменной, объявленной процедуры или функции, может быть любая последовательность букв, цифр и знаков подчеркивания "_", начинающаяся с буквы или знака подчеркивания "_". Вновь создаваемые имена не должны совпадать с зарезервированными словами языка или именами свойств, непосредственно доступных в текущем контексте. Распознавание имен переменных, процедур и функций ведется без учета регистра букв.
Язык написания программных модулей
Встроенный язык 1С:Предприятия является двуязычным. Почти все зарезервированные слова, имена типов значений, свойств, методов, событий имеют два имени: русское и английское. Исключение составляю слова, не имеющие аналогов в русском языке. В тесте программных модулей эти имена можно свободно смешивать, используя то русские, то английские имена без каких-либо ограничений.
Регистры букв при написании программных модулей
Регистр букв (строчные или заглавные) при написании имен переменных, свойств, методов, процедур, функций, а также функций встроенного языка не имеет значения.
Зарезервированные слова
Приведенные далее ключевые слова являются зарезервированными и не могут использоваться в качестве создаваемых имен переменных, реквизитов объектов конфигурации и объявляемых процедур и функций. В данном варианте языка каждое из ключевых слов имеет два представления - русское и английское.
Русское имя |
Английское имя |
Если |
If |
Тогда |
Then |
ИначеЕсли |
Elsif |
Иначе |
Else |
КонецЕсли |
End If |
Для |
For |
Каждого |
Each |
Из |
In |
По |
To |
Пока |
While |
Цикл |
Do |
КонецЦикла |
End Do |
Процедура |
Procedure |
Функция |
Function |
КонецПроцедуры |
End Procedure |
КонецФункции |
EndFunction |
Перем |
Var |
Перейти |
Goto |
Возврат |
Return |
Продолжить |
Continue |
Прервать |
Break |
И |
And |
Или |
Or |
Не |
Not |
Попытка |
Try |
Исключение |
Except |
ВызватьИсключение |
Raise |
КонецПопытки |
EndTry |
Новый |
New |
Выполнить |
Execute |
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Функции для вызова диалога ввода данных
Синтаксис:
ВвестиДату(<Дата>, <Подсказка>, <Часть даты>)
Параметры:
<Дата> Обязательный
Тип: Дата. Имя доступной в модуле переменной. В эту переменную будет помещено введенное значение даты. Начальное значение переменной будет использовано в качестве начального значения в диалоге.
<Подсказка> Необязательный
Тип: Строка. Текст заголовка окна диалога ввода даты. Может использоваться в качестве подсказки пользователю.
Значение по умолчанию: Пустая строка.
<Часть даты> Необязательный
Тип: ЧастиДаты. Вводимая в диалоге часть (или части) даты. Значение по умолчанию: ДатаВремя.
При определении значения параметра используется системное перечисление ЧастиДаты (DateFractions) . Перечисление содержит следующие значения:
Время (Time) - Значение состоит только из времени (без даты).
Дата (Date) - Значение состоит только из даты (без времени).
ДатаВремя (DateTime) - Значение состоит из даты и времени.
Возвращаемое значение:
Тип: Булево. Истина - дата введена. Ложь - пользователь отказался от ввода даты.
Описание:
Вызывает диалог для ввода даты.
Пример:
ДатаНапоминания = РабочаяДата;
Подсказка = "Введите дату и время";
ЧастьДаты = ЧастиДаты.ДатаВремя;
Если ВвестиДату(ДатаНапоминания, Подсказка, ЧастьДаты) Тогда
// запомнить дату напоминания
КонецЕсли ;
Синтаксис:
ВвестиЗначение(< Значение>, <Подсказка>, <Тмп>)
Параметры:
<3начение> Обязательный
Тип: Произвольный. Имя доступной в модуле переменной. В эту переменную будет помещено введенное значение. Если параметр Тип не задан или имеет пустое значение, тип данной переменной используется в качестве типа вводимого в диалоге данного. Начальное значение переменной будет использовано в качестве начального значения в диалоге.
<Подсказка> Необязательный
Тип: Строка. Текст заголовка окна диалога ввода значения. Может использоваться в качестве подсказки пользователю.
Значение по умолчанию: Пустая строка
<Тип> Необязательный
Тип: Тип, ОписаниеТипов. Тип вводимого значения.
Значение по умолчанию: Если параметр не указан, используется тип параметра <3начение>
Возвращаемое значение:
Тип: Булево. Истина - в диалоге было введено значение, Ложь - пользователь отказался от ввода значения.
Описание:
Вызывает диалог для ввода значения заданного типа.
Пример:
ВыбЗнач = "" ;
М = Новый Массив;
М.Добавить(Тип("Число"));
М.Добавить(Тип("Строка"));
М.Добавить(Тип("Дата"));
КЧ = Новый КвалификаторыЧисла(12,2);
КС = Новый КвалификаторыСтроки(20);
КД = Новый КвалификаторыДаты(ЧастиДаты.Дата);
ОписаниеТипов = Новый ОписаниеТипов (М,КЧ, КС, КД);
Если ВвестиЗначение(ВыбЗнач, "Введите значение", ОписаниеТипов) Тогда
// обработка введенного значения
КонецЕсли;
ВвестиСтроку (InputString)
Синтаксис:
ВвестиСтроку(< Строка>, <Подсказка>, <Длина>, <Многострочность>}
Параметры:
<Строка> Обязательный
Имя доступной в модуле переменной. В эту переменную будет помещена введенная в диалоге строка. Начальное значение переменной будет использовано в качестве начального значения в диалоге.
<Подсказка> Необязательный
Тип: Строка. Текст заголовка окна диалога ввода строки. Может использоваться в качестве подсказки пользователю.
Значение по умолчанию: Пустая строка.
<Длина> Необязательный
Тип: Число. Длина вводимой строки.
Значение по умолчанию: Если параметр не указан или 0 - строка неограниченной длины.
<Многострочность> Необязательный
Тип: Булево. Признак ввода многострочного текста: Истина -ввод многострочного текста с разделителями строк, Ложь -ввод простой строки.
Значение по умолчанию: Ложь.
Возвращаемое значение:
Тип: Булево. Истина - строка введена. Ложь - пользователь отказался от ввода строки.
Описание:
Вызывает диалог для ввода строки.
Пример:
Текст = "";
Подсказка = "Введите текст напоминания";
Если ВвестиСтроку (Текст,Подсказка, 0, истина) Тогда
// запомнить текст напоминания
КонецЕсли;
ВвестиЧисло (InputNumeric)
Синтаксис:
ВвестиЧисло(< Число, <Подсказка>, <Длина>, <Точность>)
Параметры:
< Число> Обязательный
Тип: Число. Имя доступной в модуле переменной. В эту переменную будет помещено введенное число. Начальное значение переменной будет использовано в качестве начального значения в диалоге.
<Подсказка> Необязательный
Тип: Строка. Текст заголовка окна диалога ввода числа. Может использоваться в качестве подсказки пользователю.
Значение по умолчанию: Пустая строка.
<Длина> Необязательный
Тип: Число. Длина вводимого числа включая дробную часть (символы разделителей не учитываются).
Значение по умолчанию: 0.
<Точность> Необязательный
Тип: Число. Количество знаков в дробной части вводимого числа.
Значение по умолчанию: 0.
Возвращаемое значение:
Тип: Булево. Истина - число введено, Ложь - пользователь отказался от ввода.
Описание:
Вызывает диалог для ввода числа.
Пример:
КолВо = 1;
Если ВвестиЧисло(КолВо, "Введите количество", 10, 2) Tогда
// обработка введенного количество
КонецЕсли;
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Функции форматирования
Синтаксис:
Формат(<Значение> , <Форматная строка>)
Параметры:
<3начение> - Обязательный
Тип: Число, Дата, Булево. Форматируемое значение.
<Форматная строка> - Необязательный
Тип: Строка. Форматная строка представляет собой строковое значение, включающее параметры форматирования. Параметры форматирования перечисляются через символ ";". Наличие параметра означает отличие форматирования от стандартного. Если параметр не указывается, используется стандартное форматирование.
Каждый параметр задается именем параметра, символом "=" и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки. Внутри значения параметра могут указываться произвольные символы, которые при формировании результирующей строки будут отображаться как есть. Таким образом, например, можно указывать разделители часов, минут и секунд при форматировании времени. Если эти символы совпадают с значениями форматной строки их необходимо заключать в одинарные кавычки.
Имена и значения параметров форматной строки:
• Л (L) - Имя языка, страны, для которых будет выполняться стандартное форматирование.
Доступные имена языков:
be_BY - Белорусский (Белоруссия);
de_DE - Немецкий (Германия);
de_LI - Немецкий (Лихтенштейн);
en_GB - Английский (Великобритания);
en_US - Английский (США);
en_ZA - Английский (Южная Африка);
es_ES_MO - Испанский (Испания, современная сортировка);
es_ES_TR - Испанский (Испания, традиционная сортировка);
fi_FI - Финский (Финляндия);
fr_FR - Французский (Франция);
it_IT - Итальянский (Италия);
ru_RU - Русский (Россия);
uk_UA - Украинский (Украина).
• ЧЦ (ND) - Общее число отображаемых десятичных разрядов целой части. Исходное число округляется при этом в соответствии с правилами округления, заданными для конфигурации. Если указан этот параметр, то для отображения дробной части числа обязательно указание параметра ЧДЦ, иначе дробная часть отображаться не будет.
• ЧДЦ (NFD) - Число десятичных разрядов в дробной части. Исходное число округляется при этом в соответствии с правилами округления, заданными для конфигурации.
• ЧС (NS) - Сдвиг разрядов: положительный - деление, отрицательный - умножение. Другими словами, это означает, что исходное число будет умножено или поделено на 10*С, где С - значение параметра по модулю.
• ЧРД (NDS) - Символ-разделитель целой и дробной части.
• ЧРГ (NGS) - Символ-разделитель групп целой части числа.
• ЧН (NZ) - Строка, представляющая нулевое значение числа.
• ЧВН (NLZ) - Нужно ли выводить лидирующие нули. Значение данного параметра не задается, собственно наличие параметра определяет вывод лидирующих нулей.
• ЧГ (NG) - Порядок группировки разрядов числа. В качестве значения указываются числа, через запятую, обозначающие количество группируемых разрядов справа налево. Чтобы указать, что последнее число группировки должно повторяться для всех старших разрядов, то после него через запятую указывается 0.
• ЧО (NN) - Представление отрицательных чисел.
0 - строка вида "(1,1)";
1 - строка вида "-1,1";
2 - строка вида "- 1,1";
3 - строка вида "1,1-";
4 - строка вида "1,1 -".
• ДФ (DP) - Формат даты.
• д (d) - день месяца (цифрами) без лидирующего нуля;
• дд (dd) - день месяца (цифрами) с лидирующим нулем;
• ддд (ddd) - краткое название дня недели;
• дддд (dddd) - полное название дня недели;
• М (М) - номер месяца (цифрами) без лидирующего нуля;
• MM (MM) - номер месяца (цифрами) с лидирующим нулем;
• МММ (МММ) - краткое название месяца;
• ММММ (ММММ) - полное название месяца;
• к(q) - номер квартала в году;
• г (у) - номер года без века и лидирующего нуля;
• гг (уу) - номер года без века с лидирующим нулем;
• гггг (уууу) - номер года с веком;
• ч (h) - час в 12 часовом варианте без лидирующих нулей;
• чч (hh) - час в 12 часовом варианте с лидирующим нулем;
• Ч (H) - час в 24 часовом варианте без лидирующих нулей;
• ЧЧ (HH) - час в 24 часовом варианте с лидирующим нулем;
• м (m) - минута без лидирующего нуля;
• мм (mm) - минута с лидирующим нулем;
• с (s) - секунда без лидирующего нуля;
• сс (ss) - секунда с лидирующим нулем;
• tt - отображение половины дня АМ/РМ ( действительно только для языков поддерживающих 12 часовой вариант представления времени).
• ДЛФ (DLF) - Локальный формат даты. Указывается вариант отображения частей даты.
• Д (D) - дата;
• ДД (DD) - длинная дата;
• В (Т) - время, дата может объединяться со временем.
• ДП (DE) - Строка, представляющая пустую дату '00010101000000'.
• БЛ (BF) - Строка, представляющая логическое значение Ложь.
• БИ (ВТ) - Строка, представляющая логическое значение Истина.
Для параметров определяющих отображение нулевого числа и даты '00010101000000' наличие параметра без конкретного значение означает использование стандартного преобразования числа и даты к строке.
Значение по умолчанию: Если параметр не задан, то применяется стандартное форматирование, которое в основном соответствует преобразованию значения к строке. Однако для значений типа Число и Дата по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет выдаваться пустая строка.
Возвращаемое значение:
Тип: Строка. Строка, полученная в результате форматирования переданного значения.
Описание:
Позволяет сформировать читабельное представление значений. Полезно использование в отчетах и при прочем визуальном отображении значений.
Пример:
// Примеры форматирования чисел
А = Формат(123456.789, "ЧЦ=10; ЧДЦ=2">; // А = "123 456,79"
А = Формат(123456.789, "ЧРД=--"); // А = "-123 456-789"
А = Формат(-123456.789, "ЧО=0"); // А = "(123 456,789)"
// Примеры форматирования дат
А = Формат('20020820153309', "ДФ="ДД ММММ ГГГГ Т.' ЧЧ:ММ:СС'"") ;
// А = 20 августа 2002 г. .15:33:09"
А = Формат('20020820153309', "ДФ=" "дд/ММ-ггрг"") ;
// А = 20/08-2002"
А = Формат('20020820153309', "ДЛФ=ДД");
// А = 20 августа 2002 г.";
А = Формат( 20020820153309', "ДЛФ=Д");
// А = 20.08.2002";
А = Формат; 20020820153309', "ДЛФ=В");
// А = 15:33:09";
// Примеры форматирования логических выражений
А = Формат(Истина, "БЛ=Нет; БИ=Есть");
// А = "Есть"
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Функции форматирования
Синтаксис:
НСтр(<Исходная строка>)
Параметры:
< Исходная строка > Обязательный
Тип: Строка. Строки на разных языках, разделенные символом ";" (точка с запятой). Строка на одном языке состоит из кода языка, указанного в метаданных, символа "=" (равно) и собственно строки текста на данном языке в одинарных кавычках, двойных кавычках или без кавычек.
Возвращаемое значение:
Тип: Строка. Строка, соответствующая языку пользователя или основному языку конфигурации.
Описание:
Позволяет получить строку на языке пользователя или основном языке конфигурации из набора строк на разных языках конфигурации.
Пример:
Текст = "ru = "Добрый вечер!""; en = ""Good Evening!"";
Сообщить(Нстр(Текст)) ;
Синтаксис:
ПредставлениеПериода(<ДатаНачалаПериода>, <ДатаОкончанияПериода>, <Форматная строка>)
См. ХЕЛП:
Синтаксис:
ЧислоПрописью(<Число>, <Форматная строка> , <Параметры предмета исчисления> )
Параметры:
<Числе> Обязательный
Тип: Число. Число, которое необходимо преобразовать в строку прописью.
<Форматная строка> Необязательный
Тип: Строка. Форматная строка представляет собой строковое значение, включающее параметры форматирования. Параметры форматирования перечисляются через символ ";" (точка с запятой). Если параметр не указывается, используется значение параметра по умолчанию.
Каждый параметр задается именем параметра, символом "=" (равно) и значением параметра. Значение параметра может указываться в одинарных или двойных кавычках. Это необходимо, если значение параметра содержит символы, используемые в синтаксисе форматной строки.
• Л (L) - Код локализации. По умолчанию используется код локализации, установленный в операционной системе. Примеры кодов локализации: ru_RU - Русский (Россия); en_US -Английский (США). Все доступные коды локализации для преобразования числа в пропись указаны в файле loclinfo.txt, входящем в комплект поставки системы 1C: Предприятие.
• НП (SN) - Включать/не включать название предмета исчисления (логический), по умолчанию - Истина.
• НД (FN) - Включать/не включать название десятичных частей предмета исчисления (логический), по умолчанию -Истина.
• ДП (FS) - Дробную часть выводить прописью/числом (логический), по умолчанию - Ложь.
<Параметры предмета исчисления> Обязательный
Тип: Строка. Представляет собой строковое значение, определяющее параметры предмета исчисления. Параметры предмета исчисления перечисляются через "," (запятая). Формат строки зависит от кода локализации.
• Для русского языка формат следующий: "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2", где
• "рубль, рубля, рублей, м" - предмет исчисления целой части, а "копейка, копейки, копеек, ж, 2" - дробная часть (может отсутствовать).
• рубль - единственное число именительный падеж;
• рубля - единственное число винительный падеж;
• рублей - множественное число винительный падеж;
• м - мужской род (ж - женский род);
• копейка - единственное число именительный падеж;
• копейки - единственное число винительный падеж;
• копеек - множественное число винительный падеж;
• ж - женский род (м - мужской род);
• 2 - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
• Для английского языка формат следующий: "dollar, dollars, cent, cents, 2", где "dollar, dollars" - предмет исчисления целой части, a "cent, cents, 2" - дробная часть.
• dollar - единственное число;
• dollars - множественное число;
• cent - единственное число;
• cents - множественное число;
• 2 - количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
Ознакомиться со всеми доступными вариантами форматной строки для преобразования числа в пропись можно в файле loclinfo.txt, входящим в комплект поставки системы 1 С: Предприятие.
Возвращаемое значение:
Тип: Строка. Представление числа прописью.
Описание:
Формирует представление числа прописью в соответствии с заданными форматной строкой и параметрами предмета исчисления.
Пример:
// Пример форматной строки для вывода-числа прописью на русском
// языке, с выводом целой и дробной части прописью и выводом
// предмета исчисления.
ФормСтрока = "Л = ru_RU; ДП = Истина";
ПарПредмета = 'рубль, рубля, рублей, м, копейка, копейки, копеек, ж";
ПрописьЧисла = ЧислоПрописью(2341.56, ФормСтрока, ПарПредмета);
// "Две тысячи триста сорок один рубль пятьдесят шесть копеек"
Функции обращения к конфигурации
ПолучитьОбщийМакет(ОеЮоттопТетр1а1е)
Синтаксис:
ПолучитьОбщийМакет(<Общий макет>)
Параметры:
<Общий макет> Обязательный
Тип: Строка, Объект описания метаданного. Имя общего макета, как оно задано в конфигураторе или объект описания метаданного общего макета.
Возвращаемое значение:
Тип: ТабличныйДокумент. Макет табличного документа.
Описание:
Позволяет получить один из общих макетов конфигурации.
Пример:
// Получение общего макета по имени
МакетСтруктурыКонфигураци = ПолучитьОбщийМакет("СтруктураКонфигурации");
// Получение общего макета по объекту описания негаданного
МакетСтруктурыКонфигураци = ПолучитьОбщийМакет(Метаданные.ОбщиеМакеты.СтруктураКонфигурации) ;
ПолучитьОбщуюФорму (GetCommonForm)
Синтаксис:
ПолучитьОбщуюФорму(<Форма>, <Владелец>, <Ключ уникальности>)
См. ХЕЛП:
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Функции преобразования значений
Синтаксис:
Булево(<3начение>}
Параметры:
<3начение>_ Обязательный
Тип: Число. Исходное значение.
Возвращаемое значение:
Тип: Булево. Полученное значение.
Описание:
Преобразует полученный параметр в значение типа Булево.
Преобразование числа в строку производится по следующим правилам:
• 0 преобразуется в Ложь;
• остальные значения преобразуются в Истина.
Синтаксис:
Дата(<Значение>)
Параметры:
<3начение> Обязательный
Тип: Строка. Исходное значение.
Возвращаемое значение:
Тип: Дата. Полученное значение.
Описание:
Преобразует полученный параметр в значение типа Дата.
При преобразовании, строка должна содержать дату в каноническом формате "ГГГГММДДччммсс" (см. раздел "Примитивные
типы данных").
Синтаксис:
Строка(<3начение>)
Параметры:
<3начение> Обязательный
Тип: Произвольный. Исходное значение.
Возвращаемое значение:
Тип: Строка. Полученное значение.
Описание:
Преобразует полученный параметр в значение типа Строка.
При преобразовании к строке числа формируется его полное представление в стандартном читабельном виде, соответствующем национальным установкам.
Преобразование значений типа Булево зависит от национальных установок и содержит строковое представление этих значений.
При преобразовании к строке даты формируется ее полное представление в стандартном читабельном виде, соответствующем национальным установкам.
Преобразование к строке значений остальных типов производится по мере возможности и обычно содержит читабельное представление значения.
Синтаксис:
Число(<3начение>)
Параметры:
<3начение> Обязательный
Тип: Строка, Булево. Исходное значение.
Возвращаемое значение:
Тип: Число. Полученное значение.
Описание:
Преобразует полученный параметр в значение типа Число.
Значение типа Строка преобразуется в число если строка представляет из себя правильное строковое представление литерала численного типа. В противном случае будет выдано сообщение об ошибке выполнения функции.
Значение типа Булево преобразуется в число по следующим правилам:
• Ложь преобразуется в 0;
• Истина преобразуется в 1.
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Функции, применяемые в выражении и фильтре индекса
При работе с индексами во время исполнения 1С:Предприятия XBase-объекты производят вычисление выражения индекса и фильтра. Выражение индекса и фильтра - это строковые выражения, составленные на специальном языке объектов XBase.
Выражение индекса используется для вычисления значения ключа для каждой записи базы данных. Результатом вычисления выражение должно быть значение одного из следующих типов: числовое, строковое, дата или булево. Выражение фильтра должно возвращать результат типа булево. Если значение выражения фильтра для конкретной записи базы данных равно истине, информация об этой записи будет включена в индексный файл, в противном случае индексный файл не будет содержать информацию об этой записи, и позиционирование на эту запись XBase-объекта с данным текущим индексом производиться не будет.
Свойства объекта XBase (кроме Ключ), константы и функции могут быть использованы как части выражений. Части выражения могут объединяться с помощью других функций или операторов. Простейшим выражением может быть имя свойства, например "FULL_NAME". В таком случае тип выражения будет соответствовать типу свойства.
Константы могут иметь числовой, строковый и булевый тип. Строковые константы заключаются в одиночные кавычки ('Строковая константа'). При необходимости включить в состав строковой константы символа двойной кавычки, его следует предварять обратной косой чертой, например, 'Фирма \"Вега\" '. Булевы константы записываются как .TRUE. или .Т. для обозначения истины и .FALSE. или .F. в противном случае.
Операторы используются для объединения частей выражения. Части выражения должны иметь тип, соответствующий оператору, например, оператор "/" (деление) работает с двумя числовыми значениями.
Порядок выполнения операторов в выражении соответствует общепринятому - с учетом скобок и приоритетов операторов. Например выражение "1+2*3" возвратит 7, а "(1+2)*3" возвратит 9.
Числовые операторы:
• Сложение. Обозначается символом +. Приоритет 5.
• Вычитание. Обозначается символом -. Приоритет 5.
• Умножение. Обозначается символом *. Приоритет 6.
• Деление. Обозначается символом /. Приоритет 6.
• Возведение в степень. Обозначается символами ** или ^. Приоритет 7.
Строковые операторы:
• Объединение 1. Обозначается символом +. Приоритет операции 5
• Объединение 2. Обозначается символом -. Приоритет операции 5
Оператор " Объединение 2" немного отличается тем, что пробелы в конце первой строки будут перемещены в конец результата. Например, результатом вычисления выражения " 'Иванов ' + 'И.И.' " будет 'Иванов И.И.', а " 'Иванов ' - 'И.И.' " -'ИвановИ.И.'.
Операторы отношений:
• Равно. Обозначается символом =. Приоритет операции 4
• Не равно. Обозначается символом о или #. Приоритет операции 4
• Меньше. Обозначается символом < Приоритет операции 4
• Больше. Обозначается символом >. Приоритет операции 4
• Меньше или равно. Обозначается символом <=. Приоритет операции 4
• Больше или равно. Обозначается символом >=. Приоритет операции 4
• Содержит. Обозначается символом $. Приоритет операции 4
Пример:
" 'CD' $ 'ABCD'" вернет ".Т."
" 8 < 7 " вернет ".F."
Логические операторы:
• Отрицание. Обозначается строкой .NOT. Приоритет операции 3
• И. Обозначается строкой .AND. Приоритет операции 2
• Или. Обозначается строкой .OR. Приоритет операции 1
CTOD
Синтаксис:
CTOD(<String>)
Параметры:
<String> Обязательный
Тип: Строка. Представление даты в формате ДД/ММ/ГГГГ
Возвращаемое значение:
Тип: Дата. Преобразованное в дату значение исходной строки.
DATE
Синтаксис:
DATE()
Возвращаемое значение:
Тип: Дата. Системная дата.
DEL
Синтаксис:
DEL()
Возвращаемое значение:
Тип: Строка. "*" (звездочка) - если запись помечена на удаление, "" - иначе
DELETED
Синтаксис:
DELETED()
Возвращаемое значение:
Тип: Булево. Булево .TRUE. - если запись помечена на удаление, .FALSE. - иначе.
DTOC
Синтаксис:
DTOC(<Дата>)
Параметры:
<Дата> Обязательный
Тип:Дата.
Возвращаемое значение:
Тип: Строка. Представление даты в формате ММ/ДД/ГГ.
DTOS
Синтаксис:
DTOS(<Date>)
Параметры:
<Date> Обязательный
Тип: Дата.
Возвращаемое значение:
Тип: Строка. Представление даты в формате ГПТММДД.
IIF
Синтаксис:
IIF(<Log> , <lfTrue> , <IfFalse>)
Параметры:
<Log> Обязательный
Тип:Булево.
<IfTrue> Обязательный
Должны иметь одинаковую длину и тип с IfFalse.
<IfFalse> Обязательный
Должны иметь одинаковую длину и тип с IfTrue.
Возвращаемое значение:
Возвращает <IfTrue>, если значение вычисленного выражения <Log> равно истине, и <IfFalse> в противном случае.
LTRIM
Синтаксис:
LTRIM(<String>)
Параметры:
<String> Обязательный
Тип:Строка.
Возвращаемое значение:
Тип: Строка. Исходная строка без ведущих пробелов.
MONTH
Синтаксис:
MONTH (<Date>)
Параметры:
<Date> Обязательный
Тип: Дата.
Возвращаемое значение:
Тип: Число. Номер месяца в году.
RECCOUNT
Синтаксис:
RECCOUNT()
Возвращаемое значение:
Тип: Число. Общее количество записей в таблице базы данных.
RECNO
Синтаксис:
RECNO()
Возвращаемое значение:
Тип: Число. Номер текущей записи.
STOD
Синтаксис:
STOD(<String>)
Параметры:
<String> Обязательный
Тип: Строка. Представление даты в формате ГГГГММДД
Возвращаемое значение:
Тип: Дата. Преобразованное в дату значение исходной строки.
STR
Синтаксис:
STR(<Number>, <Length>, <Decim>)
Параметры:
<Number> Обязательный
Тип: Число. Преобразуемое число.
<Length> Обязательный
Тип: Число. Количество символов в возвращаемой строке, включая десятичную точку.
<Decim> Обязательный
Тип: Число. Желаемое количество знаков после точки.
Возвращаемое значение:
Тип: Строка. Результат преобразования числа в строковое представление.
SUBSTR
Синтаксис:
SUBSTR (< String> , <StartPos> , <Num> )
Параметры:
< Siring > Обязательный
Тип: Строка. Исходная строка.
<StartPos> Обязательный
Тип: Число. Начальная позиция.
<Num> Обязательный
Тип: Число. Кол-во символов.
Возвращаемое значение:
Подстрока, состоящая из <Num> символов от начальной позиции исходной строки
TIME
Синтаксис:
TIME()
Возвращаемое значение:
Тип Строка. Системное время в представлении ЧЧ:ММ:СС
TRIM
Синтаксис:
TRIM(<String>)
Параметры:
<Stnng> Обязательный
Тип Строка.
Возвращаемое значение:
Тип Строка. Исходная строка без заключительных пробелов.
UPPER
Синтаксис:
UPPER(<String>)
Параметры:
<Stnng> Обязательный
Тип Строка.
Возвращаемое значение:
Тип Строка. Строка, символы которой преобразованы к верхнему регистру.
VAL
Синтаксис:
VAL(<String>)
Параметры:
<String> Обязательный
Тип: Строка
Возвращаемое значение:
Тип Число. Результат преобразования строки в число.
YEAR
Синтаксис:
YEAR(<Date>)
Параметры:
<Date> Обязательный
Тип Дата.
Возвращаемое значение:
Год даты.
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Функции работы со значениями типа Число
Синтаксис:
ACos(<Число>)
Параметры:
<Число> - Обязательный
Тип: Число. Аргумент функции. Определен в диапазоне -1 ... 1.
Описание:
Вычисляет арккосинус от аргумента <Число>.
Синтаксис:
ASin(<Число>)
Параметры:
<Число> - Обязательный
Тип: Число. Аргумент функции. Определен в диапазоне -1 ... 1.
Описание:
Вычисляет арксинус от аргумента <Число>.
Синтаксис:
ATan(<Число>)
Параметры:
<Число> - Обязательный
Тип: Число. Аргумент функции.
Описание:
Вычисляет арктангенс от аргумента <Число>.
Синтаксис:
Cos(<Угол>)
Параметры:
<Угол> - Обязательный
Тип: Число. Аргумент функции.
Описание:
Вычисляет косинус от аргумента <Угол>, заданного в радианах.
Синтаксис:
Exp(<Число>)
Параметры:
<Число> - Обязательный
Тип: Число. Аргумент функции.
Описание:
Вычисляет результат возведения основания натурального логарифма (числа е) в степень <Число>.
Синтаксис:
Log(<Число>)
Параметры:
<Число> - Обязательный
Тип: Число. Исходное число, больше 0.
Возвращаемое значение:
Тип: Число. Значение результата вычисления логарифма.
Описание:
Вычисляет натуральный логарифм числа.
Синтаксис:
Log10(<Число>}
Параметры:
<Число> - Обязательный
Тип: Число. Исходное число, больше 0.
Возвращаемое значение:
Значение результата вычисления логарифма.
Описание:
Вычисляет десятичный логарифм числа.
Синтаксис:
Pow(<X>,<Y>)
Параметры:
<X> - Обязательный
Тип: Число. Основание.
<Y> - Обязательный
Тип: Число. Показатель степени.
Возвращаемое значение:
Тип: Число. Результат возведения в степень.
Описание:
Возводит число <X> в степень <Y>.
Синтаксис:
Sin(<Угол>)
Параметры:
<Угол> - Обязательный
Тип: Число. Аргумент функции.
Описание:
Вычисляет синус от аргумента <Угол>, заданного в радианах.
Синтаксис:
Sqrt(<Число>)
Параметры:
<Число> - Обязательный
Тип: Число. Аргумент функции. Неотрицательное число.
Возвращаемое значение:
Тип: Число. Результат вычисления квадратного корня.
Описание:
Вычисляет квадратный корень числа.
Tan
Синтаксис:
Tan(<Угол>)
Параметры:
<Угол> - Обязательный
Тип: Число. Аргумент функции.
Описание:
Вычисляет тангенс от аргумента <Угол>, заданного в радианах.
Окр (Round)
Синтаксис:
Окр (< Число>, <Разрядность> , <Режим округления>)
Параметры:
<Число> - Обязательный
Тип: Число. Исходное число.
<Разрядность> - Необязательный
Тип: Число. Определяет число знаков дробной части, до которых производится округление. Если параметр отрицательный, то число округляется до соответствующего разряда в целой части, начиная с младших разрядов.
Значение по умолчанию: 0.
<Режим округления> Необязательный
Тип: РежимОкругления. Определяет режим округления. Помимо системного перечисления допускается использование числового параметра: 0 - если при округлении 1.5 = 1;
1 - если при округлении 1.5 = 2.
Значение по умолчанию: Значение, установленное в свойствах конфигурации.
При определении значения параметра используется системное перечисление РежимОкругления (RounoMode).
Перечисление содержит следующие значения:
Окр15как10 - При округлении 1.5 будет округлено до 1.
Окр15как20 - При округлении 1.5 будет округлено до 2.
Возвращаемое значение:
Тип: Число. Число, полученное в результате округления.
Описание:
Округляет исходное число до нужной разрядности в соответствии с заданным режимом округления.
Пример:
// Округлим цену до сотен рублей
ОкруглЦена = Окр(Цена, -2);
// Округлим цену до копеек
ОкруглЦена = Окр(Цена, 2);
Цел (Int)
Синтаксис:
Цел(<Число>)
Параметры:
<Число> - Обязательный
Тип: Число. Исходное число.
Возвращаемое значение:
Тип: Число. Результат выделения целой части.
Описание:
Возвращает целую часть переданного числа, полностью отсекая дробную часть.
Пример:
МожноКупить = Цел(Наличность/Цена);
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Функции работы со значениями типа Дата
Синтаксис:
Год(<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Число. Год в указанной дате.
Описание:
Определяет год в указанной дате.
Синтаксис:
День(<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Число. День в указанной дате.
Описание:
Определяет день в указанной дате.
Синтаксис:
ДеньГода(<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Число. Номер дня в году.
Описание:
Определяет номер дня в году для указанной даты.
Синтаксис:
ДеньНедели (<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Число. Номер дня недели.
Описание:
Определяет номер дня недели для указанной даты.
Синтаксис:
ДобавитьМесяц (<Дата>, <Число месяцев> )
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
<Число месяцев> - Обязательный
Тип: Число. Количество месяцев, которое необходимо добавить к исходной дате.
Возвращаемое значение:
Тип: Дата. Дата, полученная в результате добавления.
Описание:
Добавляет к указанной дате заданное число месяцев.
Синтаксис:
КонецГода(<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Дата. Дата и время конца года.
Описание:
Определяет дату и время конца года для указанной даты.
Синтаксис:
КонецДня(<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Дата. Дата и время конца дня.
Описание:
Определяет дату и время конца дня для указанной даты.
Синтаксис:
КонецКвартала(<Дата>)
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Дата. Дата и время конца квартала.
Описание:
Определяет дату и время конца квартала для указанной даты.
КонецМесяца (EndOfMonth)
Синтаксис:
КонецМесяца(<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Дата. Дата и время конца месяца.
Описание:
Определяет дату и время конца месяца для указанной даты.
КонецМинуты (EndOfMinute)
Синтаксис:
КонецМинуты(<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Дата. Дата и время конца минуты.
Описание:
Определяет дату и время конца минуты для указанной даты.
КонецНедели (EndOfWeek)
Синтаксис:
КонецНедели(< Дага>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Дата. Дата и время конца недели.
Описание:
Определяет дату и время конца недели для указанной даты.
КонецЧаса (EndOfHour)
Синтаксис:
КонецЧаса(<Дата>)
Параметры:
<Дата> - Обязательный
Тип: Дата. Исходная дата.
Возвращаемое значение:
Тип: Дата. Дата и время конца часа.
Описание:
Определяет дату и время конца часа для указанной даты.
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Функции работы со значениями типа Строка
Синтаксис:
Врег(<Строка>)
Параметры:
<Строка> Обязательный
Тип: Строка. Исходная строка.
Возвращаемое значение:
Тип: Строка. Строка, полученная в результате преобразования.
Описание:
Преобразует все символы строки в верхний регистр.
Пример:
ВрегГосНомер = Врег(ОС.Госномер);
Синтаксис:
КодСимвола(< Строка>, <Номер символа>)
Параметры:
<Строка> Обязательный
Тип: Строка. Исходная строка.
<Номер символа> Необязательный.
Тип: Число. Номер символа в строке, код которого необходимо получить. Нумерация символов в строке начинается с 1.
Значение по умолчанию: 1.
Возвращаемое значение:
Тип: Число. Код переданного символа. Код возвращается в соответствии с кодировкой Unicode.
Описание:
Получает код символа, расположенного в переданной строке в позиции с указанным номером.
Пример:
КодПервогоСимволаФамилия = КодСимвола(Сотрудник.Фамилия);
Синтаксис:
Лев (<Строка>, <Число символов>)
Параметры:
<Строка> Обязательный
Тип: Строка. Исходная строка.
<Число символов> Обязательный
Тип: Число. Количество выбираемых символов.
Возвращаемое значение:
Тип: Строка. Строка выбранных символов.
Описание:
Выбирает первые слева символы строки.
Пример:
ИницИмени = Лев(Сотрудник.Имя, 1);
ИницОтчества = Лев(Сотрудник.Отчество, 1);
ФИО = Сотрудник.Фамилия + " " + ИницИмени + "." + ИницОтчества + ".";
Синтаксис:
Найти(<Строка>, <Подстрока поиска>)
Параметры:
<Строка> Обязательный
Тип: Строка. Исходная строка.
<Подстрока поиска> Обязательный
Тип: Строка. Искомая подстрока.
Возвращаемое значение:
Тип: Число. Позиция первого знака найденной подстроки. Нумерация символов в строке начинается с 1. Если не находит -возвращает 0.
Описание:
Находит вхождение искомой строки как подстроки в исходной строке.
Пример:
Если Найти(Сотрудник.ФИО, "Борис") > 0 Тогда
Сообщить(Сотрудник.ФИО + " таб. №" + Сотрудник.Код);
КонецЕсли ;
Hper (Lower)
Синтаксис:
Hpeг(<Строка>)
Параметры:
<Строка> Обязательный
Тип: Строка. Исходная строка.
Возвращаемое значение:
Тип: Строка. Строка, полученная в результате преобразования.
Описание:
Преобразует все символы строки в нижний регистр.
Пример:
НрегГосНомер = Нрег(ОС.Госномер);
Прав (Right)
Синтаксис:
Прав(<Строка>, <Число символов>)
Параметры:
<Строка> Обязательный
Тип: Строка. Исходная строка.
<Число символов> Обязательный
Тип: Число. Количество выбираемых символов.
Возвращаемое значение:
Тип: Строка. Строка выбранных символов.
Описание:
Выбирает последние справа символы строки.
Пример:
// Пусть номер автомобиля в справочнике основных средств задается
// в виде х999хх99, где последние две цифры - код региона.
// Получим код региона из номера.
КодРегиона = Прав(ОС.Госномер,2) ;
«««««««««« | 1С:Предприятие 8.0 | »»»»»»»»»» |
Прикладные объекты
Прикладные объекты предназначены в основном для облегчения решения прикладных учетных задач. Они помогают создавать и поддерживать справочную информацию, накапливать сведения о документах и хозяйственных операциях, формировать учетные регистры. Подробнее о каждом типе прикладных объектов будет сказано в описании соответствующих разделов.
Интерфейсные объекты
В этой главе описываются объекты, которые в основном предназначены для интерактивной работы пользователя. Это такие объекты как Форма, элементы управления, пользовательские интерфейсы и т.д. Дополнительно в этой главе освещены объекты, которые выступают значениями свойств интерфейсных объектов, например, цвета, шрифты и т.п.
Работа с запросами
Для формирования и выполнения запросов к таблицам базы данных в системе используется специальный объект Запрос. Запрос удобно использовать когда необходимо получить сложную выборку данных, сгруппированную и отсортированную нужным образом. Одним из классических примеров его применения может служить сводка по состоянию регистра учета на определенный момент времени. Кроме того, механизм запросов позволяет легко получать информацию в различных временных разрезах.
Глобальный контекст
Глобальный контекст инициализируется при открытии конфигурации 1C: Предприятия в режиме Предприятия и существует вплоть до ее закрытия. Все свойства, процедуры и функции глобального контекста доступны в любом программном модуле конфигурации.
Доступ к свойствам, процедурам и функциям глобального контекста может осуществляется непосредственно из любого программного модуля, используя их имена (без ссылки на какой-либо объект).
Важно! У всех событий глобального контекста назначены предопределенные процедуры-обработчики. Имена процедур соответствуют именам событий. Все процедуры должны располагаться в глобальном модуле конфигурации.
Общие объекты
В этой главе освещены основные объекты встроенного языка 1С:Предприятия. Эти объекты могут использоваться при решении практически любых прикладных задач, независимо от направленности конфигурации. К таким объектам относится табличный документ, текстовый документ, объекты для работы с метаданными и т.д.