Для поиска товара можно воспользоваться функцией Поиск при введении букв, цифр артикула 1С УНФ предложит наиболее близкие варианты.
Примеры запросов для работы с иерархическими справочниками
В данном разделе показаны примеры решения типовых задач при работе с иерархическими справочниками.
Получение элементов иерархического справочника, находящихся в подчинении заданной группы
Для получения подчиненных элементов иерархического справочника в языке запросов предусмотрена конструкция В ИЕРАРХИИ. Пример использования В ИЕРАРХИИ:
ВЫБРАТЬ
Номенклатура.Код,
Номенклатура.Наименование КАК Наименование,
Номенклатура.ЗакупочнаяЦена
ИЗ
Справочник.Номенклатура КАК Номенклатура
В данном примере будут получены все записи справочника Номенклатура, находящиеся в группе &Группа, включая ее саму, ее подчиненные группы и элементы, принадлежащие подчиненным группам.
Если же нас интересуют только элементы и группы, находящиеся непосредственно в заданной группе, то такие элементы мы можем получить установив условие на поле Родитель. Пример:
ВЫБРАТЬ
Номенклатура.Код,
Номенклатура.Наименование КАК Наименование,
Номенклатура.ЗакупочнаяЦена
ИЗ
Справочник.Номенклатура КАК Номенклатура
Такой запрос выберет группы и элементы, находящиеся в подчинении группы со ссылкой &Группа.
Проверка наличия подчиненных элементов у элемента справочника
Для проверки наличия подчиненных записей элемента справочника можно пользоваться запросом, аналогичным представленному:
ВЫБРАТЬ ПЕРВЫЕ 1
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Родитель = &Родитель
В данном примере ссылка элемента, для которого необходимо проверить наличие дочерних элементов, записывается в параметр запроса «Родитель». После выполнения такого запроса необходимо проверить результат на пустоту. Если результат не пустой, то подчиненные записи есть. Иначе — нет. Пример:
Если Запрос.Выполнить().Пустой() Тогда
Сообщить(«Зписей нет»);
Иначе
Сообщить(«Записи есть»);
КонецЕсли;
Получение всех родителей элемента
Запрос = Новый Запрос(«ВЫБРАТЬ
| Номенклатура.Родитель,
| Номенклатура.Родитель.Родитель,
| Номенклатура.Родитель.Родитель.Родитель,
| Номенклатура.Родитель.Родитель.Родитель.Родитель,
| Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|
|ГДЕ
| Номенклатура.Ссылка = &ТекущийЭлементНоменклатуры»;
Если ТекущийЭлементНоменклатуры = Справочники.Номенклатура.ПустаяСсылка() Тогда
Прервать;
КонецЕсли;
КонецЦикла;
В данном примере в окно служебных сообщений выводятся все родители для ссылки, записанной в переменную ЭлементНоменклатура. В цикле выбирается по 5 родителей ссылки.
Если число уровней в справочнике ограничено и невелико, то возможно получение всех родителей одним запросом без цикла.
Вывод иерархического справочника в отчет
Для вывода иерархического справочника в отчет с сохранением иерархии необходимо пользоваться запросом аналогичным следующему:
Примеры запросов для работы с иерархическими справочниками: Методическая поддержка для разработчиков и администраторов 1С: Предприятия 8
Например, необходимо получить номенклатурные позиции из документов Поступление товаров и услуг и цены из регистра сведений Цены номенклатуры.
Конструкции в языке запросов 1с
Выше мы рассмотрели с Вами функции языка запросов 1с, теперь пришло время рассмотреть конструкции в языке запросов 1с, они не менее важны и полезны, приступаем.
Промокоды на Займер на скидки
1. Конструкция ССЫЛКА — представляет из себя логический оператор проверки ссылочного типа. Наиболее часто встречается при проверки поля составного типа на конкретный тип. Синтаксис: ССЫЛКА
2. Конструкция МЕЖДУ — данный оператор проверяет входит ли значение в указанный диапазон.
3. Конструкция В и В ИЕРАРХИИ — проверяют находится ли значение в передаваемом списке (в качестве списка могут передаваться массивы, таблицы значений и т.д.). Оператор В ИЕРАРХИИ позволяет просматривать иерархию (пример использования ПланСчетов).
4. Конструкция ПОДОБНО — эта функция позволяет нам сравнивать строку с шаблоном строки.
% — последовательность, содержащая любое количество произвольных символов.
[. ] — любой одиночный символ, либо последовательность символов из перечисленных внутри квадратных скобок. В перечислении могут задаваться диапазоны, например a-z, означающие произвольный символ, входящий в диапазон, включая концы диапазона. [^. ] — любой одиночный символ, либо последовательность символов из перечисленных внутри квадратных скобок кроме тех, которые перечислены следом за значком отрицания.5. Конструкция РАЗРЕШЕННЫЕ — этот оператор позволяет выбрать только те записи из БД, на которые вызывающий имеет право чтения. Данные права настраиваются на уровне записей (RLS).
Синтаксис: РАЗРЕШЕННЫЕ пишется после ключевого слова ВЫБРАТЬ
6. Конструкция РАЗЛИЧНЫЕ — позволяет выбрать записи в которых отсутствуют повторные записи.
Синтаксис: РАЗЛИЧНЫЕ пишется после ключевого слова ВЫБРАТЬ
Также Конструкция РАЗЛИЧНЫЕ может использоваться с оператором РАЗРЕШЕННЫЕ и другими операторами.
7. Конструкция ПЕРВЫЕ — выбирает указанное в параметре число записей из результата запроса.
8. Конструкция ДЛЯ ИЗМЕНЕНИЯ — позволяет заблокировать таблицу, работает только в транзакциях (актуально только для автоматических блокировок).
9. Конструкция УПОРЯДОЧИТЬ ПО — упорядочивает данные по определенному полю. Если полем является ссылка то при установке флага АВТОУПОРЯДОЧИВАНИЕ будет происходить сортировка по представлению ссылки, если флаг выключен то ссылки сортируются по старшинству адреса ссылки в памяти.
10. Конструкция СГРУППИРОВАТЬ ПО — используется для группировки строк запроса по определенным полям. Числовые поля должны использоваться с любой агрегатной функцией.
11. Конструкция ИМЕЮЩИЕ — позволяет применить агрегатную функцию к условию выборки данных, похожа на конструкцию ГДЕ.
12. Конструкция ИНДЕКСИРОВАТЬ ПО — используется для индексации поле запроса. Запрос с индексацией дольше выполняется, но ускоряет поиск по индексированным полям. Можно использовать только в виртуальных таблицах.
Язык запросов 1С: Предприятие 8.3 | РеКС — друг в мире компьютеров
Все функции и конструкции языка запросов 1С 8.2 и 1с 8.3
Поскольку понятное описание функций языка запросов 1с встречается намного реже, чем описание конструкций, мы решили начать рассматривать именно функции. Теперь давайте разберем каждую по отдельности, описав ее назначение, синтаксис и пример использования, итак:
1. Функция ДАТАВРЕМЯ — данная функция создает константное поле с типом «Дата».
2. Функция РАЗНОСТЬДАТ — возвращает разность двух дат в одном из измерений (год, месяц, день, час, минута, секунда). Измерение передается в параметре.
3. Функция ЗНАЧЕНИЕ — задает константное поле с предопределенной записью из базы данных, также можно получить пустую ссылку любого типа.
4. Функция ВЫБОР — перед нами аналог конструкции ЕСЛИ который используется в коде, только эта используется в запросах 1С.
5. Функция ВЫРАЗИТЬ — позволяет выразить константное поле определенным типом.
6. Функция ISNULL (альтернативное написание ЕСТЬNULL) — если поле имеет тип NULL, то оно заменяется на второй параметр функции.
Также отметим что тип NULL желательно ВСЕГДА заменять на какое-то значение, т.к. сравнение с типом NULL всегда дает ЛОЖЬ даже если вы сравниваете NULL с NULL. Чаще всего значения NULL образуются в результате соединения таблиц (все виды соединений кроме внутреннего).
7. Функция ПРЕДСТАВЛЕНИЕ — позволяет получить представление поля запроса.
Предложение ДЛЯ ИЗМЕНЕНИЯ позволяет заблаговременно заблокировать некоторые данные которые могут читаться транзакцией другого соединения уже при считывании, чтобы исключить взаимные блокировки при записи.
ДЛЯ ИЗМЕНЕНИЯ
Это предложение блокирует данные для исключения взаимных конфликтов. Заблокированные данные не будут считываться из другого соединения до окончания транзакции. В данном предложении можно указывать конкретные таблицы, которые нужно заблокировать. В противном случае будут заблокированы все. Конструкция актуальна лишь для режима автоматических блокировок.
Получите понятные самоучители по 1С бесплатно:
ВЫБРАТЬ
Взаиморасчеты.Сотрудник,
Взаиморасчеты.СуммаВзаиморасчетовОстаток
ИЗ
РегистрНакопления.ВзаиморасчетыССотрудниками.Остатки КАК Взаиморасчеты
ДЛЯ ИЗМЕНЕНИЯ
Справочник «Политики учёта серий»
- разыменование ссылочных полей (обращение черед одну или несколько точек к реквизитам объектов);
- работа с итогами очень удобная;
- возможность создавать виртуальные таблицы;
- запрос можно писать как на английском, так и на русском языках;
- возможность блокировать данные для исключения взаимных блокировок.
ГДЕ (WHERE)
Конструкция необходима для наложения какого-либо отбора на выгружаемые данные. В некоторых случая получения данных из регистров разумнее прописывать условия отборов в параметрах виртуальных таблиц. При использовании «ГДЕ», сначала получаются все записи, и только потом применяется отбор, что значительно замедляет выполнение запроса.
Ниже приведен пример запроса получения контактных лиц с определенной должностью. Параметр отбора имеет формат: &ИмяПараметра (имя параметра произвольное).
ВЫБРАТЬ
КонтактныеЛица.Ссылка
ИЗ
Справочник.КонтактныеЛица КАК КонтактныеЛица
ГДЕ
КонтактныеЛица.Должность = &ИмяПараметра
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы