Что означает символ & в запросах 8.1-8.2?
Начал разбираться с восьмеркой, и увидел использование символа & в запросах. В синтакс-помощнике не нашел про это, разжуйте, пожалуйста, что это и как работает? Пример фрагмента кода:
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ЕСТЬNULL(ОстаткиТоваровОстатки1.КоличествоОстаток, 0) КАК КоличествоОстаток1,
| ЕСТЬNULL(ОстаткиТоваровОстатки2.КоличествоОстаток, 0) КАК КоличествоОстаток2
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(
| &Дата,
| Номенклатура = &Номенклатура И МестоХранения = &МестоХранения1) КАК ОстаткиТоваровОстатки2,
Что есть &Номенклатура и &Дата? Это часть запроса по табличной части документа.
Тема 3.6 Входной язык 1С. Общий синтаксис
Встроенный язык системы 1С: Предприятие 7.7 предназначен для описания алгоритмов функционирования прикладной задачи. Синтаксис языка напоминает смесь Паскаля и Бэйсика, причем на русском языке.
Язык 1С поддерживает структурное программирование и вся программа состоит из набора модулей, содержащих исходный код — операторы языка и комментарии.
Программные модули
Место размещения конкретного программного модуля предоставляется конфигуратором в тех точках конфигурации задачи, которые требуют описания специфических алгоритмов функционирования.
- Глобальный модуль.
- Модуль формы списка справочника
- Модуль формы группы
- Модуль формы элемента справочника
- Модуль формы документа
- Модуль документа
- Модуль формы журнала документов
- Модуль формы списка счетов
- Модуль формы счета
- Модуль формы журнала операций
- Модуль формы операции
- Модуль формы журнала проводок
- Модуль формы отчета
- Модуль формы обработки
Структура программного модуля
- Раздел определения переменных
- Раздел процедур и функций
- Раздел основной программы
Контекст выполнения программного модуля
- значения системных атрибутов, системные процедуры и функции, например, функция ТекущееВремя() возвращает текущее системное время, а функция ТекущаяДата() – текущую дату на компьютере.
- значения заданных в конфигураторе констант, перечислений.
- переменные и процедуры глобального программного модуля с ключевым словом «Экспорт».
Формат операторов
Идентификаторы
Типизация переменных в языке не жесткая, т.е. тип переменной определяется ее значением. Чтобы определить, является ли слово зарезервированным, нужно воспользоваться поиском в синтакс-помощнике: установить курсор на проверяемое слово и одновременно нажать клавиши СTRL+F1. Таким же способом можно узнать синтаксис системной процедуры или функции: количество и назначение параметров, значения по умолчанию.
Пример правильных идентификаторов в 1C:
Процедуры и функции программного модуля
После ключевого слова «КонецПроцедуры» точка с запятой не ставится. Ключевое слово «Знач» означает, что переменные передаются по значению. Ключевое слово «Экспорт» имеет смысл только в глобальном модуле и означает, что процедура будет доступна в любом программном модуле. Функция, в отличие от процедуры должна возвращать значение
Для передачи локального контекста используется ключевое слово «Контекст» в качестве параметра.
Пример. Допустим, у нас есть несколько различных документов, причем у всех есть реквизит "Склад". В каждом программном модуле формы редактирования документа нужна процедура выбора склада. В глобальном программном модуле напишем процедуру (листинг 36):
Листинг 36. Пример описания процедуры
Здесь переменная Конт является формальным параметром, которому при вызове процедуры будет присвоен локальный контекст. В данном примере обращение к реквизитам и методам локального контекста происходит «через точку» после идентификатора Конт, например:
Теперь в любом программном модуле конфигурации (в данном примере в любом Модуле формы документа) для выбора склада можно вызвать процедуру, передав ей свой локальный контекст в качестве параметра:
С примерами программных модулей можно ознакомиться в типовой конфигурации «Бухгалтерский учет».
Типы данных
- Константа – средство работы с постоянными (или условно постоянными) значениями. В константах хранится информация, которая не изменяется или изменяется достаточно редко. Например, название организации, почтовый адрес. Перечень констант, доступный в конкретной конфигурации, их названия и тип определяются в конфигураторе.
- Справочник – средство для ведения списков однородных элементов данных. Помимо наименования элементов данных, списки могут содержать различную дополнительную информацию. Физическим аналогом справочника может являться картотека. Каждая карточка – это элемент справочника, а сведения, заносимые в карточку, являются реквизитами справочника. Перечень справочников, доступных в конкретной конфигурации, их названия и реквизиты определяются в конфигураторе.
- Перечисление – средство работы с элементами данных, список возможных значений которых жестко задан (например, для перечисления «ФормаОплаты» можно задать возможные значения: «Нал», «Безнал»). В отличие от справочников, списки значений в перечислении задаются в процессе их создания в конфигураторе и при выполнении задачи не могут быть изменены. Состав перечислений, доступных в конкретной конфигурации, их названия и допустимые значения определяются в конфигураторе.
- Документ – средство для ввода первичной информации о совершаемых хозяйственных операциях. Перечень документов, доступных в конкретной конфигурации, их названия, реквизиты и другие свойства определяются в конфигураторе.
- Запрос – средство для выполнения обращения к документам, регистрам, документам, справочникам и журналам расчетов с целью получения сводной информации при формировании выходных отчетов. В программных модулях допускается создавать произвольное число объектов типа Запрос при помощи вызова системной функции СоздатьОбъект.
- Текст – средство работы с текстовыми документами. В программных модулях допускается создавать произвольное число объектов типа Текст при помощи вызова системной функции СоздатьОбъект.
- Таблица – средство работы с таблицами (отчетами). В программных модулях допускается создавать произвольное число объектов типа Таблица, при помощи вызова системной функции СоздатьОбъект.
- СписокЗначений – средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значения из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗначений при помощи вызова системной функции СоздатьОбъект.
- ТаблицаЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значения из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗначений при помощи вызова системной функции СоздатьОбъект.
- Картинка – средство для работы с графическими файлами. При добавлении в диалоговых формах и в таблицах полей типа «Картинка», система автоматически создает объекты Картинка, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа Картинка при помощи вызова системной функции СоздатьОбъект.
- Периодический — средство для работы с периодическими реквизитами справочников и периодическими константами. В программных модулях допускается создавать произвольное число объектов типа Периодический при помощи вызова системной функции СоздатьОбъект.
- ФС – средство для работы с дисковыми файлами непосредственно из встроенного языка системы 1С:Предприятие. В программных модулях допускается создавать произвольное число объектов типа ФС при помощи вызова системной функции СоздатьОбъект. Кроме того, в глобальном контексте по умолчанию существует один уже созданный объект этого типа с именем ФС (имя объекта совпадает с названием агрегатного типа данных).
- XBase – средство для работы с файлами баз данных DBF формата непосредственно из встроенного языка системы 1С:Предприятие. В программных модулях допускается создавать произвольное число объектов типа XBase при помощи вызова системной функции СоздатьОбъект.
- ПланСчетов является служебным типом данных. Он предназначен для идентификации Плана счетов, созданного в метаданных. В основном он используется для передачи в качестве параметра различным процедурам и функциям компоненты «Бухгалтерский учет» и для выбора плана счетов в формах. Тип значения «ПланСчетов» не поддерживает никаких данных в информационной базе, а список возможных значений этого типа данных определен планами счетов созданными в конфигурации. Значения типа «ПланСчетов» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д. Для получения значения такого типа данных используется глобальный атрибут ПланыСчетов, который имеет в свою очередь набор атрибутов типа «ПланСчетов» соответсвующих имеющимся в конфигурации планам счетов. Кроме того, глобальный атрибут ПланыСчетов имеет методы для обхода всех существующих планов счетов.
- ВидСубконто является служебным типом данных. Он предназначен для идентификации Вида субконто, созданного в метаданных. В основном он используется для передачи в качестве параметра различным процедурам и функциям компоненты «Бухгалтерский учет» и для выбора вида субконто в формах. Список возможных значений этого типа данных определен видами субконто, созданными в конфигурации. Значения типа «ВидСубконто» могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д. Для получения значения такого типа используется глобальный атрибут ВидыСубконто, который имеет в свою очередь набор атрибутов типа «ВидСубконто» соответствующих имеющимся видам субконто. Кроме того, глобальный атрибут ВидыСубконто имеет методы для обхода всех существующих видов субконто. Операция — средство для манипулирования из встроенного языка данными бухгалтерских операций и проводок формируемых документом. Так как проводки в системе 1С:Предприятие принадлежат операциям, то управление и операциями и проводками выполняется объектом «Операция».
- БухгалтерскиеИтоги – средство для организации доступа к бухгалтерским итогам в различных разрезах, за различные периоды и с разной степенью детализации. При наличии в системе 1С:Предприятие компоненты «Бухгалтерский учет» система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамический пересчет бухгалтерских итогов и их извлечение средствами встроенного языка. Система хранения бухгалтерских итогов поддерживается системой 1С:Предприятие автоматически на основе существующих планов счетов. При редактировании планов счетов — в конфигураторе или при работе с системой 1С:Предприятие — для счета могут быть установлены ряд свойств, которые влияют на организацию хранения бухгалтерских итогов: это признаки ведения валютного и количественного учета, а также включение аналитического учета по субконто. Изменение бухгалтерских итогов может производиться только проводками бухгалтерских операций.
- С помощью функции СоздатьОбъект создается объект агрегатного типа данных, и какой-либо переменной присваивается ссылка на него;
- Объект позиционируется на нужном элементе данных;
- Производятся различные манипуляции с объектом агрегатного типа данных через вызовы методов и обращения к его атрибутам.
- В случае, если объект агрегатного типа данных больше не нужен, он может быть отсоединен от переменной посредством переприсваивания переменной какого-либо значения базового типа (например, числа 0). Отсоединение объекта выполнять не обязательно.
Для преобразования значения одного базового типа в другой используются функции Строка(<Значение>), Число(<Значение>), Дата(<Значение>).
Для чего используется & в 1с предприятие 8?
& в 1с предприятие 8. что он значит? Для чего указывается этот знак, например в языке компоновки данных?
Например в коде КонецПериода (&КонецПериода." День")
Нюансы синтаксиса: где, как и для чего используется &&
Когда применяется ссылка на ссылку? В STL есть классы, конструкторы которых принимают ссылку на.
Для чего используется out
Здравствуйте. Не могу понять для чего используется в программе out ? Задание: Дан массив.
Для чего электродвигатель используется
Для чего электродвигатель используется (назначение), как устроен (из каких частей состоит) и как.
Для чего используется Distinct()
для чего используется Distinct()?
Это даже не директивы выполнения, а директивы компиляции
т.е. код не то что не будет выполнен, он даже не будет скомпилирован.
Существую два контекста выполнения, серверный и клиентский
Клиентский — компилирует все что с директивой &НаКлиенте (и ему подобные) и все серверные которые доступны для вызова с клиента
Серверный — только с директивой &НаСервере (и ему подобные)
Т.е. получается мы имеем копии одних и тех же серверных функций (доступных с клиента) как на клиенте так и на сервере
Меню пользователя @ Dethmontt |
Читать блог |
Для чего используется Close(F)?
Это закрытие файла, что может быть если не выполнить это закрытие?
Вопрос: для чего используется this?
У меня в процессе изучения С# возник один вопрос: для чего используется this? и если можно пример.
Для чего используется DLL?
исходники кода написанного на C++ хранятся в DLL верно?? Для чего используется DLL?? Добавлено.
Для чего используется директива using
A) Только для объявления пространства имен B) Только для освобождения управляемых ресурсов.
Глава 4
Выражения и оператор присваивания
Выражение — это математическая или логическая формула, по которой вычисляется значение. Математическое выражение может стоять справа от знака равенства в операторах присваивания, быть параметром процедур или функций, индексом массива переменных. Логическое выражение может быть условием в управляющих операторах Если , Пока , Для . Выражения состоят из констант, переменных и функций, связанных символами логических и/или арифметических операций.
Арифметические операции
В языке определены следующие виды арифметических операций:
остаток от деления
Арифметические операции имеют один или два операнда, в зависимости от типа которых операция имеет ту или иную семантику. Тот или иной семантический вариант операции определяется по первому операнду. В случае несовпадения типа второго операнда с требуемым, значение преобразуется к требуемому типу в соответствии с правилами преобразования типов. Если тип первого операнда не соответствует ни одному из допустимых типов, то в зависимости от ситуации может производиться преобразование типов или возбуждаться состояние ошибки выполнения.
Сложение определено для следующих типов операндов:
Дата + Число (к дате прибавляется число дней)
Вычитание определено для следующих типов операндов:
Дата – Число (от даты отнимается число дней)
Дата – Дата (результатом является число дней между датами)
Остаток от деления:
Замечание. При выполнении операции % (остаток от деления) оба операнда операции округляются до целого значения.
Операция конкатенации
Операция конкатенации ("+") используется для того, чтобы присоединить одну строку к другой. Длина результирующей строки равна сумме длин соединяемых строк. В случае несовпадения типа данных второго или последующих операндов со строковым типом, их значение преобразуется к строковому типу в соответствии с правилами преобразования типов.
· Для того, чтобы удалить ненужные пробелы, используются системные функции СокрЛ и СокрП .
ФИО = СокрП(Фамилия) + " " + СокрП(Имя) + " " + СокрП(Отчество);
Логические операции
Логическая операция сравнивает операнды и вырабатывает логическое значение: «истина» или «ложь». Существует два вида логических операций: операции сравнения и булевы операции. В операциях сравнения сравниваются два значения. Булевы операции выполняются над логическими значениями, реализуя булеву алгебру. Символы булевых операций могут комбинироваться, образуя составные операции.
Операции сравнения:
В языке определены следующие виды операций сравнения:
больше или равно
меньше или равно
Операции сравнения определены для следующих типов операндов:
Больше или равно:
Меньше или равно:
Булевы операции:
В языке определены следующие виды булевых операций:
конъюнкция (булево И)
дизъюнкция (булево ИЛИ)
логическое отрицание (булево отрицание НЕ)
Числовые константы
Константа числового типа представляется в виде:
0 123 -15 +24.11 0.245
Константы даты
Дата задается в формате ‘ДД.ММ.ГГ’ или ‘ДД.ММ.ГГГГ’ (дата заключается в одиночные кавычки). Неопределенная дата задается как ‘00.00.00’.
Строковые константы
Константа строкового типа представляется как любая последовательность символов, заключенных в двойные кавычки.
"Это самая правильная строка"
Кроме того, допускаются «многострочные» строковые константы. В исходном тексте многострочные константы могут задаваться двумя способами:
· Первый вариант: В данном случае между фрагментами, представляющими отдельные строки многострочной константы, не должно встречаться никаких символов, за исключением пробелов, переводов строки и строк комментариев.
Стр = "Первая строка" // пример строковой константы
· Второй вариант: В данном примере значение константы полностью идентично предыдущему примеру. Отличие заключается в том, что каждая отдельная составляющая не замыкается кавычками, а на каждой последующей строке помещен символ переноса строки "|". В этом варианте комментарии между открывающей и закрывающей кавычками не допускаются.
Стр = "Первая строка
Строковые выражения
Строковые выражения могут использоваться в качестве параметров методов, процедур и функций, либо в правой части оператора присваивания. Строковым выражением может быть отдельная строка или сложное сочетание строковых констант, функций и операций. То, что выражение является строковым, определяется по первому операнду. В случае несовпадения типа второго и последующих операндов со строковым типом, их значения преобразуются к требуемому типу в соответствии с правилами преобразования типов. Чтобы указать, что выражение является строковым, можно, например, начинать его с пустой строки символов "".
Стр1 = "" + Докум.Цена + Валюта.СокрНаим;
Логические выражения
В логических выражениях происходит вычисление логического значения (истина/ложь). Обычно логические выражения используются в управляющих операторах, в которых на основании результата логического выражения определяется дальнейшая последовательность выполнения программы. Логические выражения вычисляются слева направо. Для того, чтобы избежать неоднозначности и управлять последовательностью операндов, следует применять круглые скобки.