Дополнительные реквизиты в запросе БП 3.0
Выбрать контрагент из справочник левое соединение допсвойства по свойство=1. левое соединение допсвойства по свойство=2.
не кидайтесь пож. тапками. Как выставить связи?
ВЫБРАТЬ
КонтрагентыДополнительныеРеквизиты.Ссылка КАК Контрагент,
ВЫБОР
КОГДА КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = "Основные виды расхов (Контрагенты)"
ТОГДА КонтрагентыДополнительныеРеквизиты.Значение
КОНЕЦ КАК ОсновныеВидыРасходов,
ВЫБОР
КОГДА КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = "Наш контрагент (Контрагенты)"
ТОГДА КонтрагентыДополнительныеРеквизиты.Значение
КОНЕЦ КАК НашКонтрагент,
КонтрагентыДополнительныеРеквизиты.Свойство.Наименование = "НашКонтрагент (Контрагенты)" КАК СвойствоНашКонтрагент,
КонтрагентыДополнительныеРеквизиты.Свойство КАК Свойство
ПОМЕСТИТЬ ДопРеквизиты
ИЗ
Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КонтрагентыДополнительныеРеквизиты.Ссылка КАК Ссылка,
ДопРеквизиты.НашКонтрагент КАК НашКонтрагент,
ДопРеквизиты.ОсновныеВидыРасходов КАК ОсновныеВидыРасходов
ИЗ
Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
ЛЕВОЕ СОЕДИНЕНИЕ ДопРеквизиты КАК ДопРеквизиты
ПО КонтрагентыДополнительныеРеквизиты.Свойство = ДопРеквизиты.Свойство
1С дополнительные реквизиты и сведения
В библиотеке стандартных подсистем 1С дополнительные реквизиты и сведения включены и активно применяются. Эти механизмы позволяют добавить дополнительный реквизит к объекту метаданных без изменения типовой конфигурации. В публикации хочу продемонстрировать работу дополнительных реквизитов и сведений, их добавление и получение значений.
Краткое описание механизма дополнительных реквизитов и сведений
Пример добавление дополнительного реквизита вручную вы можете посмотреть в публикации Брутто в ТОРГ12, где добавляется новый реквизит «Коэффициент брутто» в справочнике «Номенклатура». Таким образом можно добавлять реквизиты всех известных типов (число, строка, булево, список значений, ссылки на справочники и т.д.) к распространенным справочникам и документам 1С.
Отличие дополнительного реквизита от дополнительного сведения в том, что
- Дополнительные реквизиты – список реквизитов, доступных в форме документа или справочника; причем эти реквизиты хранятся в табличной части объекта, к которому они добавлены;
- Дополнительные сведения – список значений доступных по дополнительной кнопке; причем доп. сведения хранятся в отдельном регистре.
После ввода дополнительного реквизита или сведения 1С, можно создать подключаемую обработку, где считать введенные дополнительные данные и задать необходимую логику обработки данных, в которой использовать этот реквизит или сведение.
Как получить 1С дополнительные реквизиты и сведения
Для получения дополнительных данных приведу примеры запросов, в которых получу 1С дополнительные реквизиты и сведения.
Для получения дополнительного сведения использую запрос вида:
Для получения дополнительного реквизита использую код вида (пример получения коэффициента брутто в ТОРГ12):
Теперь вы без труда сможете добавить и получить необходимые дополнительные 1С данные без снятия конфигурации 1С с поддержки и изменения типовой конфигурации. Без сомнения, такой инструмент должен быть в арсенале 1С программиста и активно использоваться в работе.
1С дополнительные реквизиты и сведения : 5 комментариев
Раз используется БСП, почему место запросов не использовать программный интерфейс ОМ для работы с доп.рекизитами и сведениями? Например, УправлениеСвойствами.ПолучитьЗначенияСвойств() [http://its.1c.ru/db/bspdoc#content:2128:hdoc]
Ценное замечание! Надо дополнить статью этим нюансом.
Запрос написан потому, что, обычно, по значению доп. реквизита необходимо сделать какую либо дополнительную выборку, а через стандартные функции это сделать не всегда получится. Мне видится, что этот путь более универсален. Хотя спорно… нужно покопаться в стандартных функциях.
В бсп 2.4 это методы УправлениеСвойствами.ЗначениеСвойства() и УправлениеСвойствами.ЗначенияСвойств(), УправлениеСвойствами.ПолучитьЗначенияСвойств() — устаревший методо
Добрый день! Подскажите пожалуйста, как записать значение дополнительному реквизиту, если значение — это выбор из списка дополнительных значений (тип строки). Пытаюсь просто записать нужную строку, но программа не понимает, что эта строка из этого списка.
Проверьте тип через конфигуратор, может там не строка, а коллекция или что-либо ещё.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Конструктор запросов 1С — обучение на примерах
Задача №1: выбрать запросом все проведенные документы Реализация товаров и услуг, за указанный период, у которых не создана счет-фактура.
Пояснение: конфигурациях Бухгалтерия 2.0 / 3.0 в реализации не хранится ссылка на выставленную счет-фактуру. Связь этих документов обратная: в счет-фактуре (в реквизите ДокументОснование) хранится ссылка на реализацию к которой она относится. Таким образом чтобы понять у каких реализаций нет счет-фактур, потребуется использовать в запросе две таблицы: РеализацияТоваровУслуг и СчетФактураВыданный.
Задача №2: допустим в базе у справочника Договоры контрагентов создано дополнительное сведение Отсрочка (место хранения регистр Дополнительные сведения). Выбрать запросом все договоры указанного контрагента с отсрочкой от 0 до 10 дней.
Пояснение: в данной задаче можно было бы обойтись без использования двух таблиц, если бы не одно условие: выбор договоров с нулевой отсрочкой. Дело в том, что в регистре Дополнительные сведения не хранятся пустые значения для дополнительных сведений, соответственно записей для нулевой отсрочки там не будет. Поэтому придется присоединять данный регистр к справочнику Договоры контрагентов, если не найдется запись с отсрочкой для какого-то из договоров, значит она нулевая.
Новые вкладки: Связи.
Новые механизмы: проверка на null в запросе 1с.
Теоретическая часть урока №3
Если в запросе 1с используется только одна таблица, то данные берутся только из нее. Но если вам необходимо выбирать данные из нескольких таблиц, тогда следует настроить связи между этими таблицами. Связи необходимы для того, чтобы сопоставить строки одной таблицы базы данных со строками другой таблицы и таким образом получить при формировании запроса итоговую таблицу в которой будут присутствовать необходимые данные всех таблиц запроса.
Каждая конкретная связь настраивается между двумя таблицами, одна из них называется Левая, другая Правая. Связи бывают трех типов:
- ВНУТРЕННЕЕ СОЕДИНЕНИЕ — запись из левой таблицы попадет в результат запроса только при выполнении условия связи, запись из правой таблицы попадет в результат запроса только при выполнении условия связи;
- ЛЕВОЕ СОЕДИНЕНИЕ — запись из левой таблицы попадет в результат запроса в любом случае, запись из правой таблицы попадет в выборку только при выполнении условия связи. Аналогом левого является ПРАВОЕ СОЕДИНЕНИЕ, данные правой таблицы попадают в результат в любом случае, данные левой таблицы только при выполнении условия. Обычно при написании запроса используется Левое соединение, если же вы используете правое, при следующем открытии запроса конструктор запросов преобразует его в левое поменяв таблицы местами;
- ПОЛНОЕ СОЕДИНЕНИЕ — запись из левой таблицы попадет в результат запроса сначала в любом случае, потом только при выполнении условия связи, запись из правой таблицы попадет в результат запроса сначала в любом случае, потом только при выполнении условия связи. При этом получившиеся в результате связи повторяющиеся строки исключаются из выборки.
В теории соединение таблиц запроса довольно сложно понять для неподготовленного программиста 1с, но при изучении примеров все непонятные моменты прояснятся.
Вкладка Связи в конструкторе запросов
В конструкторе запросов перейдем на вкладку Связи. Она представляет из себя таблицу в которой создается нужное количество связей для всех различных пар таблиц. Добавлять, удалять, копировать и изменять связи можно при помощи кнопок находящихся над таблицей (подробно разбирать каждую не будем).

После добавления новой связи необходимо заполнить все колонки таблицы. Разберем каждую колонку таблицы связей:
- Таблица 1. В данную колонку выбирается левая таблица связи. Можно использовать только таблицы выбранные на вкладке Таблицы и поля;
- Все. Флаг в данной колонке ставится в случае, если вам нужно выбрать все данные для левой таблицы (для Левого или Полного соединений);
- Таблица 2. В данную колонку выбирается правая таблица связи;
- Все. Флаг в данной колонке ставится в случае, если вам нужно выбрать все данные для правой таблицы (для Правого или Полного соединений);
- Произвольное. Флаг при помощи которого можно перейти в ручной режим редактирования условия связи;
- Условие связи. Условие на языке запросов, аналогичное условиям рассмотренным в Уроке №2. Представляет из себя выражение, которое всегда должно возвращать одно из двух значений: Истина или Ложь. Обычно условие связи состоит из трех частей:
- Левая часть. Обычно поле левой таблицы, но это также может быть и полем правой таблицы или параметром (только в произвольном режиме редактирования условия);
- Оператор сравнения. По умолчанию доступны «=», «<>», «<«, «>», «>=», «<=». Но в произвольном режиме редактирования можно использовать и некоторые другие, например «Между»;
- Правая часть. Обычно поле правой таблицы, но это также может быть и полем левой таблицы или параметром (только в произвольном режиме редактирования условия);
Заполнение и редактирование Условия связи, аналогично редактированию обычного условия, разобранного в прошлом уроке, за тем исключением, что по умолчанию в правой части условия задается не параметр, а поле правой таблицы. В произвольном режиме также доступен редактор произвольных выражений.

Практическая часть урока №3
Разберем решение задач, приведенных в начале урока.
Задача №1
Выбрать запросом все проведенные документы Реализация товаров и услуг, за указанный период, у которых не создана счет-фактура.
- Создадим новый запрос;
- Запустим конструктор запросов;
- Выберем таблицы РеализацияТоваровУслуг и СчетФактураВыданный из ветки Документы;
- Из таблицы РеализацияТоваровУслуг выберем поле Ссылка;
- Перейдем на вкладку Условия;
- В разделе Поля, раскроем ветку РеализацияТоваровУслуг при помощи кнопки «+»;
- Найдем реквизит Дата и перетащим его в раздел условия, выберем оператор сравнения Между и укажем параметры начала и окончания периода, например НачалоПериода и ОкончаниеПериода;
- Из раздела Поля перетащим реквизит Проведен, поставим в строке с условием флаг Произвольное и сотрем лишнюю часть условия «= &Проведен»;
- Перейдем на вкладку Связи;
- Создадим новую связь при помощи кнопки «Добавить»;
- В поле Таблица 1 выберем таблицу РеализацияТоваровУслуг (это будет левая таблица);
- Для корректного решения задачи нам необходимо получить все реализации, присоединить к ним счет-фактуры и если счет-фактура не найдена ,вывести реализацию в результат запроса. Разобьем эту задачу на две подзадачи:
- выберем все реализации и при помощи связи попытаемся найти их счет фактуры;
- При помощи условия отберем только те строки, где нет счет-фактуры;
- В левой части поле РеализацияТоваровУслуг.Ссылка;
- Оставим стандартный оператор сравнения «=»;
- В правой части поле: СчетФактураВыданный.ДокументОснование.
- Настройка связей закончена;
При левом соединении, если для строки левой таблицы не нашлось ни одной строки правой таблицы удовлетворяющей условиям связи, все поля правой правой таблицы для данной строки левой таблицы имеют значение NULL. Воспользуемся этим для того, чтобы отобрать только те строки левой таблицы, для которых нет счет-фактуры;
В языке запросов 1с есть специальный логический оператор, позволяющий проверить содержится ли в поле значение NULL, его синтаксис <Поле> ЕСТЬ NULL. Он возвращает значение Истина, если поле имеет значение NULL и Ложь — в обратно случае.
Замечу, что проверить значение поля на NULL можно только при помощи указанной функции, конструкцией <Поле> = NULL осуществить данную проверку не получится.
- Перейдем на вкладку Условия;
- Перетащи в раздел условий одно из полей таблицы СчетФактураВыданный, например поле Ссылка;
- Установим в строке флаг Произвольное и допишем после поля оператор ЕСТЬ NULL, предварительно стерев ненужную часть условия;

В итоге у нас получится запрос со следующим текстом:
Задача №2
- Создадим новый запрос;
- Запустим конструктор запросов;
- На вкладке Таблицы и поля выберем две таблицы: ДоговорыКонтрагентов из ветки Справочники и ДополнительныеСведения из ветки РегистрыСведений;
- Из таблицы ДоговорыКонтрагентов выберем поле Ссылка;

По условию в результат запроса должны попасть договоры только одного контрагента, значение которого будет передано в запрос при помощи параметра. Контрагент, к которому принадлежит договор хранится в поле Владелец справочника Договоры контрагентов.
- Перейдем на вкладку Условия. Из таблицы ДоговорыКонтрагентов перенесем в раздел условий поле Владелец. В правой части условия зададим имя параметра в который будем передавать нужного нам контрагента, назовем его Контрагент;
- Задачу по выборке договоров с отсрочками от 0 до 10, также разобьем на две подзадачи:
- выберем все договоры и при помощи связей попытаемся найти их отсрочки;
- при помощи условия выберем только договоры с нужными нам отсрочками;
- В левой части поле ДоговорыКонтрагентов .Ссылка;
- Оставим стандартный оператор сравнения «=»;
- В правой части поле: ДополнительныеСведения.Объект.
Мы добавили связь, при помощи которой мы выберем все доп. сведения каждого договора. Но так как нам нужно только одно доп. сведение — Отсрочка, нам необходимо добавить еще одну связь. В данном случае Отсрочка — это дополнительное свойство. Дополнительные свойства имеют тип План видов характеристик ДополнительныеРеквизитыИСведения. В регистре ДополнительныеСведения значение доп. свойства хранится в измерении Свойство. Таким образом нам необходимо добавить связь ограничивающую дополнительные сведения только свойством Отсрочка.
- Добавим новую связь;
- В поле Таблица 1 выберем таблицу ДоговорыКонтрагентов;
- Важно знать, что если у вас есть несколько связей на одну и ту же пару таблиц, то для них необходимо использовать один тип соединения. В нашем случае — это Левое соединение. Поэтому поставим флаг в колонке Все, относящейся к левой таблице;
- В поле Таблица 2 выберем таблицу ДополнительныеСведения;
- В условии связи нам не нужно будет использовать поле левой таблицы, вместо этого мы наложим условие на измерение Свойство, приравняв его к доп. свойству Отсрочка, которое будет передано в запрос при помощи параметра;
- Установим флаг Произвольное в значение Истина и напишем вручную следующий текст условия: «ДополнительныеСведения.Свойство = &СвойствоОтсрочка»;
- Настройка связей закончена;
Теперь осталось наложить условие на размер отсрочки. Так как у нас используется интервал от 0 до 10 необходимо будет использовать оператор сравнения Между. Так как нулевая отсрочка не хранится в дополнительных сведениях, при соединении в данном случае все поля регистра будут возвращать значение NULL. Для того чтобы в условии подменить значение NULL на 0, будем использовать функцию языка запросов ЕСТЬNULL(<Выражение1>, <Выражение2>). Функция возвращает Выражение1, если оно не равно NULL и Выражение2 в обратном случае.
- Перейдем на вкладку Условия конструктора запросов и добавим новое условие;
- Установим в нем флаг Произвольное и перейдем в редактор произвольных выражений;
- В разделе функций языка запросов раскроем ветку Функции -> Прочие функции;
- Перетащим в раздел выражений функцию ЕСТЬNULL;
- Вместо Выражения 1 вставим поле ДополнительныеСведения.Значение, а вместо Выражения 2 — 0;
- После получившейся конструкции впишем оператор сравнения Между и зададим интервал: 0 и 10;
- Нажмем ОК, условие готово;

Последнее, что необходимо сделать — вывести значение отсрочки в поля запроса. Для того чтобы вместо NULL выводилоcь значение 0, также используем редактор произвольных выражений и функцию ЕСТЬNULL.
Язык запросов 1С:Предприятие 8.3
Язык запросов — это развитый и эффективный инструмент отбора, объединения и преобразования данных из любых объектов данных хранимых в ИБ. Синтаксис языка запросов 1С основан на классическом T-SQL, в который внесено ряд расширений и наложено ряд ограничений характерных для прикладных задач 1С. Ввиду специальной объектной парадигмы 1С все изменения данных в ИБ выполняются только программными средствами и только через объектное API платформы. По этой причине с помощью языка запросов можно выполнять только выборку данных.
ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ ПЕРВЫЕ .
ПОМЕСТИТЬ .
ИЗ РегистрСведений. СрезПоследних(,) КАК .
ЛЕВОЕ ОБЪЕДИНЕНИЕ . КАК .
ПО .
ГДЕ .
УПОРЯДОЧИТЬ ПО .
ИТОГИ . ПО .
СГРУППИРОВАТЬ ПО .
ИМЕЮЩИЕ .
ОБЪЕДИНИТЬ .- 1С:ИТС. Методические рекомендации по конфигурированию. Язык запросов. /its.1c.ru
- Запросы 1С 8. Полный курс /zapros-1c-8.ru
- Е.Ю. Хрусталева «Язык запросов «1С:Предприятия 8»
- содержание полностью на ИТС /its.1c.ru
- в PDF с дополнительными материалами на CD на /dfiles.ru
Запрос выборки
Язык запросов 1С по ряду концептуальных причин предназначен только для выборки данных, поэтому любой запрос состоит из одного или нескольких выражений выбора. Подробное описание синтаксиса запросов с примерами и рекомендациями приведено в ИТС /its.1c.ru
ВЫБРАТЬ [РАЗРЕШЕННЫЕ] [РАЗЛИЧНЫЕ] [ПЕРВЫЕ <число>] <источник>.<реквизит> КАК <псевдоним> [, . ]
Раздел содержит определения реквизитов источников и псевдонимов, под которыми они должны войти в результирующий набор. Описание раздела ВЫБРАТЬ сделано в 1С:ИТС /its.1c.ru
- РАЗРЕШЕННЫЕ — в ИБ с ограничением доступа на уровне записей (RLS) включает в выборку кортежи, которые разрешены текущему пользователю
- РАЗЛИЧНЫЕ — включает в выборку только неповторяющиеся кортежи, при условии что в них нет полей неограниченной длины и полей ТипЗначения
- ПЕРВЫЕ <число> — включает в выборку только указанное число кортежей
- конструкция ПЕРВЫЕ 0 используется в запросах структуры выборки, например для создания пустой временной таблицы
- если при создании временной таблицы заданное число первых превысит общее число добавляемых записей, то возникает критическая ошибка платформы
- разыменование <псевдоним источника>.<реквизит>.<реквизит> — определяет неявный подзапрос с левым объединением со всеми таблицами из набора типов первого реквизита, поэтому разыменование предпочтительно избегать
- ВЫРАЗИТЬ(<псевдоним источника>.<реквизит> КАК <прикладной тип>).<реквизит> — ограничивает неявный подзапрос единственной таблицей определенного прикладного типа /its.1c.ru
- предпочтительно использовать Представление в запросах для отчетов вместо ссылки для экономии времени выполнения, поскольку оно будет выполнено уже в запросе и отчету не понадобится его вычислять из Ссылки для каждой результирующей строки /its.1c.ru
- для значения ПустаяСсылка Представление возвращает NULL
- используя ВЫРАЗИТЬ нельзя преобразовать Число как Строка, Строка как Число и т.п.
- обычно содержит целое Число от 1, однако документация » не гарантирует, что начальное значение счетчика будет равно 1 для любой временной таблицы «
- применимо только при создании временной таблицы выражением ПОМЕСТИТЬ
- в сочетании с УПОРЯДОЧИТЬ ПО ИЕРАРИЯ требует обязательного выражения ПЕРВЫЕ и вызывает крах платформы
- невозможно использовать в арифметическом выражении запроса
- КОГДА <условие>
- <реквизит> ЕСТЬ NULL
- ДЛЯ ИЗМЕНЕНИЯ <,> — блокирует только перечисленные таблицы
- УникальныйИдентификатор в строковом виде xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx получить невозможно
- Уровень вложения для иерархических справочников возможно получить только громоздким выражением ВЫБОР или специальным запросом
ПОМЕСТИТЬ <имя временной таблицы>
В пакетном запросе создает временную таблицу с заданным именем, которая будет существовать до окончания исполнения всего пакета запроса или до исполнения в пакете запроса, уничтожающего данную временную таблицу с помощью конструкции УНИЧТОЖИТЬ. Описано в ИТС /its.1c.ru
ИЗ <источник> КАК <псевдоним> [. ]
Раздел определяет одну или несколько таблиц источников данных и определяет способ их соединения в результирующих кортеж /its.1c.ru
- Раздел ИЗ в простом запросе можно опустить ВЫБРАТЬ Справочник.Пользователи.*;
- Справочник.<справочник> — базовый способ определения справочника в качестве источника
- Справочник.<справочник>.<табличная часть> — базовый способ определения таблицы справочника в качестве источника
- Документ.<документ>.<табличная часть>
- РегистрСведений.<регистр>.СрезПоследних() — использование виртуальной таблицы
- .СрезПоследних(&<параметр даты>, <реквизит> = &<параметр отбора>) — параметризация по соответствию параметрам
- .СрезПоследних(, <реквизит> В (<вложенный запрос>) — параметризация по вхождению во вложенный запрос
- .СрезПоследних(, <реквизит> В (&<параметр отбора>) — параметризация по вхождению в множество
- .СрезПоследних(, <реквизит> > &<параметр отбора> И <реквизит> < &<параметр отбора>) — параметризация с несколькими условиями сравнения
- РегистрНакопления.<регистр>.Обороты(. ) — параметризованное использование виртуальной таблицы предпочтительней использования условия в выражении ГДЕ
- РегистрНакопления.<регистр>.Обороты(&<параметр начала>, &<параметр конца>,,) —
- РегистрНакопления.<регистр>.Обороты(. <реквизит> = &<параметр критерия отбора>)
- РегистрНакопления.<регистр>.Остатки(&<параметр критерия отбора>,)
Все перечисленные источники могут быть соединены по указанным правилам соединения
- ВНУТРЕННЕЕ СОЕДИНЕНИЕ — для внутреннего объединения
- ЛЕВОЕ СОЕДИНЕНИЕ — для объединения всех записей левого источника
- ПРАВОЕ СОЕДИНЕНИЕ — для объединения всех записей правого источника
- ПОЛНОЕ СОЕДИНЕНИЕ — для полного внешнего соединения всех записей левого и правого источников
Источники, для которых не были определены правила соединения, соединяют все свои кортежи с каждым кортежем уже выполненного соединения.
ГДЕ <условие>
Условие содержит выражение отбора значений реквизитов, которое определяет включение и использование кортежа в результирующей выборке. Выражение условия может использовать любые реквизиты из любых источников определенных разделе ИЗ запроса.
- <псевдоним>.<реквизит> <=,<,>,<>, В, НЕ В><критерий> [ <И, ИЛИ>. ] — базовая форма выражения условия
- <псевдоним>.<реквизит> В (<значение1>,<значение2>. ) — для условия вхождения в множество допустимо перечисление произвольного набора значений
- <псевдоним>.<реквизит> НЕ В (. ) — для условия отсутствия в множестве
- НЕ (<реквизит> ЕСТЬ NULL) — выражение равно Истина, если значение не NULL
- NULL — это не пустое значение
- <справочник>.Родитель = ИЕРАРХИИ(&Группа) — условие отбора всех входящих в группу и подгруппы
- (<выражение 1>, . <выражение N>) В (ВЫБРАТЬ <реквизит 1>, . <реквизит N> ИЗ <Источники> ГДЕ <Условие>. ) — для проверки вхождения группы значений в набор групп /its.1c.ru
ДЛЯ ИЗМЕНЕНИЯ [<источник>[.<реквизит>] [. ]]
Предложение ДЛЯ ИЗМЕНЕНИЯ позволяет заблаговременно заблокировать некоторые данные (которые могут читаться транзакцией другого соединения) уже при считывании, чтобы исключить взаимные блокировки при записи. //its.1c.ru
- по умолчанию блокируются все источники
- РегистрНакопления.<имя регистра>.<реквизит>
УПОРЯДОЧИТЬ ПО <псевдоним 1> [УБЫВ][, <псевдоним 2>[. ]]
Сортирует отобранные кортежи по перечисленным псевдонимам.
- значения Булево упорядочивается как: Ложь < Истина
- Наименование ИЕРАРХИЯ — для представления в иерархии
- <справочник>.ЭтоГруппа ИЕРАРХИЯ, Наименование — для представления в иерархии с приоритетом групп
- УПОРЯДОЧИТЬ ПО Ссылка АВТОУПОРЯДОЧИВАНИЕ — устанавливает порядок определенный в свойствах справочника или документа
- применимо также во вложенных запросах, но с обязательным использованием ВЫБРАТЬ ПЕРВЫЕ <число> /its.1c.ru
- реквизиты неограниченной длины и реквизиты типов для упорядочения не допускаются
- ///
ИТОГИ <функция 1>(<псевдоним 1>) [,<>] ПО [[ТОЛЬКО] ИЕРАРХИЯ] <псевдоним>
Вычисляет итоги для иерархического справочника /its.1c.ru и /its.1c.ru. Позволяет создать дерево значений //programmist1s.ru
- агрегирующей функцией итогов может быть СУММА(<псевдоним>),
- КОЛИЧЕСТВО(<псевдоним>)
- СРЕДНЕЕ(<псевдоним>),
- МИНИМУМ(<псевдоним>),
- МАКСИМУМ(<псевдоним>)
СГРУППИРОВАТЬ ПО [ГРУППИРУЮЩИМ НАБОРАМ] <псевдоним 1> [, <псевдоним 2>[, . ]]>
Выполняет выборку с группировкой по совпадению значений всех перечисленных в разделе псевдонимов. Все псевдонимы из раздела ВЫБРАТЬ должны или войти в раздел СГРУППИРОВАТЬ ПО или использовать одну из агрегирующих функций:
- СУММА(<псевдоним>)
- СРЕДНЕЕ(<псевдоним>)
- МИНИМУМ(<псевдоним>)
- МАКСИМУМ(<псевдоним>)
- КОЛИЧЕСТВО(<псевдоним>)
- реквизиты неограниченной длины и реквизиты типов для группировки не допускаются
ИМЕЮЩИЕ <условие>
Условие этого раздела применяется к кортежам уже после выполнения группировки и может применять к значениям вычисленных агрегирующих функций.
ОБЪЕДИНИТЬ [ВСЕ]
Присоединяет к уже полученной выборке выборку следующего выражения.
- <выражение> ОБЪЕДИНИТЬ <выражение> ОБЪЕДИНИТЬ <выражение> . — число выражений объединения синтаксически не ограничивается
- объединяемые выборки должны состоять из идентичных наборов колонок по типу и порядку
- совпадение имен колонок не требуется
- имена колонок объединенной выборки определяются первым выражением
Выборка набора значений
Выборка одиночной строки с произвольным набором значений данных не требует источника:
- <псевдоним>.<реквизит> В (<значение1>,<значение2>. ) — для условия вхождения в множество допустимо перечисление произвольного набора значений