Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 💫 читайте на сайте

Если Номенклатура в Иерархии в Запросе 1C • Тип номенклатуры вид работ

Для поиска товара можно воспользоваться функцией Поиск при введении букв, цифр артикула 1С УНФ предложит наиболее близкие варианты.

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Выше мы рассмотрели с Вами функции языка запросов 1с , теперь пришло время рассмотреть конструкции в языке запросов 1с , они не менее важны и полезны, приступаем. Язык запросов 1С 8.3 и 8.2 — краткое руководство по всем конструкциям Обращайтесь в форму связи

Примеры запросов для работы с иерархическими справочниками

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

Получение элементов иерархического справочника, находящихся в подчинении заданной группы

Для получения подчиненных элементов иерархического справочника в языке запросов предусмотрена конструкция В ИЕРАРХИИ. Пример использования В ИЕРАРХИИ:

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

В данном примере будут получены все записи справочника Номенклатура, находящиеся в группе &Группа, включая ее саму, ее подчиненные группы и элементы, принадлежащие подчиненным группам.

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

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

Такой запрос выберет группы и элементы, находящиеся в подчинении группы со ссылкой &Группа.

Проверка наличия подчиненных элементов у элемента справочника

Для проверки наличия подчиненных записей элемента справочника можно пользоваться запросом, аналогичным представленному:

ВЫБРАТЬ ПЕРВЫЕ 1
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Родитель = &Родитель

В данном примере ссылка элемента, для которого необходимо проверить наличие дочерних элементов, записывается в параметр запроса «Родитель». После выполнения такого запроса необходимо проверить результат на пустоту. Если результат не пустой, то подчиненные записи есть. Иначе — нет. Пример:

Если Запрос.Выполнить().Пустой() Тогда
Сообщить(«Зписей нет»);
Иначе
Сообщить(«Записи есть»);
КонецЕсли;

Получение всех родителей элемента

Запрос = Новый Запрос(«ВЫБРАТЬ
| Номенклатура.Родитель,
| Номенклатура.Родитель.Родитель,
| Номенклатура.Родитель.Родитель.Родитель,
| Номенклатура.Родитель.Родитель.Родитель.Родитель,
| Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|
|ГДЕ
| Номенклатура.Ссылка = &ТекущийЭлементНоменклатуры»;

Если ТекущийЭлементНоменклатуры = Справочники.Номенклатура.ПустаяСсылка() Тогда
Прервать;
КонецЕсли;
КонецЦикла;

В данном примере в окно служебных сообщений выводятся все родители для ссылки, записанной в переменную ЭлементНоменклатура. В цикле выбирается по 5 родителей ссылки.

Если число уровней в справочнике ограничено и невелико, то возможно получение всех родителей одним запросом без цикла.

Вывод иерархического справочника в отчет

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

Примеры запросов для работы с иерархическими справочниками: Методическая поддержка для разработчиков и администраторов 1С: Предприятия 8

Например, необходимо получить номенклатурные позиции из документов Поступление товаров и услуг и цены из регистра сведений Цены номенклатуры.

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
При первом взгляде структура НСИ номенклатуры кажется запутанной, но, если собрать по кусочкам информацию от 1С, то складывается определённая система. Принципы проектирования справочников номенклатуры в 1С Управление Предприятием 2 (ERP 2.4.6) / Хабр Обращайтесь в форму связи

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

Выше мы рассмотрели с Вами функции языка запросов 1с, теперь пришло время рассмотреть конструкции в языке запросов 1с, они не менее важны и полезны, приступаем.

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

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С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Если в запросе отсутствуют предложения УПОРЯДОЧИТЬ ПО и ИТОГИ, но есть предложение СГРУППИРОВАТЬ ПО, тогда результат запроса будет упорядочен по полям, присутствующим в предложении, в той же последовательности и, в случае если группировка велась по полям ссылкам, то по полям сортировки по умолчанию таблиц, на которые были ссылки. ОБЪЕДИНИТЬ [ВСЕ] Обращайтесь в форму связи

ДЛЯ ИЗМЕНЕНИЯ

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

Получите понятные самоучители по 1С бесплатно:

ВЫБРАТЬ
Взаиморасчеты.Сотрудник,
Взаиморасчеты.СуммаВзаиморасчетовОстаток
ИЗ
РегистрНакопления.ВзаиморасчетыССотрудниками.Остатки КАК Взаиморасчеты
ДЛЯ ИЗМЕНЕНИЯ

Тип номенклатуры «Запас»
Результат по-прежнему будет упорядочен по иерархии, однако группы будут располагаться выше элементов.

Справочник «Политики учёта серий»

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

ГДЕ (WHERE)

Конструкция необходима для наложения какого-либо отбора на выгружаемые данные. В некоторых случая получения данных из регистров разумнее прописывать условия отборов в параметрах виртуальных таблиц. При использовании «ГДЕ», сначала получаются все записи, и только потом применяется отбор, что значительно замедляет выполнение запроса.

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

ВЫБРАТЬ
КонтактныеЛица.Ссылка
ИЗ
Справочник.КонтактныеЛица КАК КонтактныеЛица
ГДЕ
КонтактныеЛица.Должность = &ИмяПараметра

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts

Добавить комментарий

*