Учебные Курсы Ярослава Рябинина
Язык запросов 1С


☎ +7 999 669 90 09; +7 908 290 11 19


Язык запросов 1С:


Данный курс является продолжением начального курса по программированию, не стоит начинать изучение 1С сразу с этого курса. Кстати, для выполнения заданий мы используем конфигурацию, созданную на первом курсе.
Методика чтения курса отличается в различных ситуациях: в Центрах Сертифицированного Обучения фирмы 1С я обязан её читать строго по методике ЦСО.
На других площадках я предпочитаю придерживаться методики Хрусталёвой Елены Юрьевны.
При индивидуальном обучении мы следуем по пути, наиболее оптимальному для конкретного слушателя.

На курсе рассматриваются темы:

Общая схема выполнения запросов в 1С
Синтаксис языка запросов 1С
Работа с запросами во встроенном языке 1С
Решение прикладных задач с использованием запросов в 1С
Оптимизация запросов в 1С

Записаться на курс можно по телефонам: ☎ +7 999 669 90 09; +7 908 290 11 19
или через портал "профи":
Powered by Profi.ru
 

Контрольные задания по курсу "Язык запросов":

1.

- Получите запросом и посмотрите состав ВСЕХ полей справочников: Номенклатура, Контрагенты. Сравните состав полей у иерархических и подчинённых справочников, а также справочников без иерархии и подчинения, или без кода и наименования.
- Получите запросом одно или несколько полей справочника Номенклатура.
- Упорядочите результат запроса по полю Наименование.

2.

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

3.

Напишите текст запроса, который выведет перечень основных единиц измерения, используемых в записях справочника "Номенклатура".

4.

Опробуйте на практике возможности, предоставляемые конструкциями "Первые" и "Различные".
Попробуйте объяснить результат применения конструкции "Различные" (запрос по основным единицам измерения справочника номенклатуры должен выдавать два "пустых" значения).

5.

Напишите текст запроса, который при выполнении выдаст номенклатурные позиции справочника, у которых в поле основной единицы измерения находится значение Null.
6.

Напишите текст запроса, который при выполнении выдаст номенклатурные позиции справочника, наименование которых состоит из трёх слов.

7.

1) Напишите текст запроса, позволяющий посмотреть поля таблицы документа "ПоступлениеТоваров". Найдите несоответствие с таблицей, представленной в методике.
2) Напишите текст запроса, позволяющий получить данные из табличной части "Товары" документа.

8.

Напишите текст запроса, выполнение которого привело бы к получению данных о суммовых оборотах по поставщикам (какой контрагент, на какую сумму поставил товара).

9.

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

10.

Необходимо написать текст запроса, выполнение которого привело бы к получению следующих данных: список фамилий, имён, отчеств сотрудников компании и данных об их родственниках.

Конструкция Разрешенные позволяет исключить те строки таблиц баз данных, к которым нет доступа пользователя, запрос исключает из работы эти блоки
11.

Вывести перечень из пяти самых продаваемых (по количеству) товаров).

12.

Вывести контактные данные сотрудников компании (только сотрудников).

13.

Вывести поставщиков пяти самых дорогих (по ценам продажи) номенклатурных позиций.

14.

1) Вывести документы только за указанный период. Можно использовать конструкцию "Между &НачПериода и &КонПериода" или используя конструкцию ДатаВремя.
2) Получить остаток по выбранной номенклатуре (использовать таблицы документов, хотя это и не соответствует концепции системы).

15.

1) Просмотреть наполнение регистров сведений "Валюты", "Цены поставок".
2) Получить историю значений выбранной валюты.

16.

Получить наиболее актуальные цены номенклатуры по поставщикам (РегистрСведений "ЦеныПоставщиков").

17.

1) Получить данные о курсах различных валют на выбранную дату.
2) Получить значение курса конкретной выбранной валюты на определенную дату, не используя конструкцию "Где".

18.

1) Получить остаток выбранной номенклатуры на конкретную дату.
2) Получить данные, необходимые для "оборотки по месяцам" (номенклатурная позиция, остаток на начало периода, приход, расход, остаток на конец периода) за выбранный интервал дат.

19.

Вывести позиции номенклатуры, по которым ни разу не оформлялся ни один документ. Применить пакетный запрос по таблицам документов ПоступлениеТоваров, РеализацияТоваров.

20.

По таблице оборотов между счетами получите данные, необходимые для построения шахматного отчета.

21.

Получить данные, необходимые для расчета оклада и сам рассчитанный оклад (вычисляемое поле).

22.

 

23.

1) Получить данные о том, какой поставщик какой товар закупает.
2) Получить суммовые обороты по контактным лицам понедельно.
3) Получить суммовые обороты по месяцам для различных поставщиков. Из результатов выполнения запроса должно быть видно: какой общий суммовой оборот есть у поставщика, и ниже для каждого поставщика должна идти расшифровка его оборота по месяцам. Месяц прописью.

24.
Откорректируйте в соответствии с новыми возможностями запрос в обработке проведения документа "РеализацияТоваров".

25.

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

26.

1) Получите предыдущий курс указанной валюты (предшествующий актуальному).
2) Получите предыдущие курсы всех валют (когда-либо внесенных в регистр сведений).
3) Получите данные о номенклатуре, текущему остатку этой номенклатуры, по которой эти остатки изменялись (соответствующая информация должна браться из планов обмена).
4) Дополнительно к данным, получаемым по пункту 4, в результате запроса должны присутствовать данные о документе сделавшем изменение остатки и величине изменения.
5) Напишите текст запроса, который выдавал бы список покупателей, покупавших не более двух позиций в каждом документе (во всех документах было не более 2х строк в табличной части). При этом нельзя (с точки зрения усложнения задачи) использовать конструкцию "Имеющие".
 
 
 
 

Ответы на часто задаваемые вопросы:

В запросе нельзя:

- использовать строки неограниченной длины
- указывать в условиях отбора агрегатные функции в любых конструкциях языка запросов, кроме раздела "ИМЕЮЩИЕ" (5-3634)
- указывать псевдоним поля при указании группировки

Можно ли в тексте одного запроса определить два раздела Где?
Нет. Если надо задать несколько условий - то они указываются в одном разделе, и разделяются логическими операндами И, ИЛИ, НЕ.
Можно ли при написании текста запроса не пользоваться псевдонимами таблиц?
Можно, если нет неоднозначности определения полей. (Если среди выбираемых полей нет повторяющихся имён в разных таблицах).
Если не использовать конструкцию Автоупорядочивание по какому полю происходит упорядочивание (если указан ссылочный тип)? (5-3638)
Как написал Максим Радченко в книге "1С для начинающих" (стр. 621): "Что значит отсортировать ссылку по возрастанию? Непонятно".
"Поэтому в тех случаях, когда хотите отсортировать результат запроса по ссылочному полю, устанавливайте всегда флажок Автоупорядочивание. Тогда платформа отсортирует результат по тому полю, которое является основным представлением для этой ссылки. Автоупорядочивание - это такой дополнительный сервис, который позволяет вам не задумываться.".
Все ли поля таблицы попадают в результат запроса, если вместо описания полей выборки указать символ *?
Если вместо списка полей в запросе указать * - то запрос выберет все поля которые есть в таблице, за исключением виртуальных полей исходных таблиц (Руководство разработчика, гл.8, стр.515; Хрусталёва "ЯзыкЗапросов", стр.29). Виртуальные поля - как раз и отличают реальную таблицу от физической.
пример: ВЫБРАТЬ * ИЗ Справочник.Номенклатура
В чем отличие между левым и правым внешними соединениями?
Только в удобстве построения запроса - для написания и для чтения. Разница в производительности бывает между внутренним и внешним соединением, но не между внешними левым и правым.
Хотя есть ничем не подтверждённое мнение, что левый запрос работает быстрее - обоснованное тем, что при повторном запуске конструктор правое соединение приводит к левому.
 
Может ли у таблицы справочника отсутствовать поле Наименование?
Состав полей любой таблицы зависит от настройки объекта конфигурации. Может. Если при создании справочника длина наименования справочника указана ноль. Набор полей таблицы справочника соответствует реквизитам (стандартным, и созданным).
Как обратиться к предопределенному элементу, если ему в конфигураторе задано имя ПустаяСсылка?
Никак. Поскольку "ПустаяСсылка" - это ключевое слово - то она при обращении и вернётся. Пустая ссылка, а вовсе не ссылка на неправильно названный предопределённый элемент.

Вопросы теста:

 
1. В объединяемых запросах: показать ответ на вопрос
2. Как организовать отбор по типу значения Null показать ответ на вопрос
3. Укажите некорректно выполненный запрос:  показать ответ на вопрос
4. В тексте запроса параметр определяется: показать ответ на вопрос
5. При описании группировки в запросе все поля должны делиться:  показать ответ на вопрос
6. Укажите некорректно написанный запрос:  показать ответ на вопрос
7. Параметр в запрос (значение для условия и т.д.) . (5-3665) показать ответ на вопрос
8. При объединении запросов раздел "Упорядочить По"... определяется  показать ответ на вопрос
9. Левое внешнее соединение означает, что в результат соединения войдут: показать ответ на вопрос
10. Как определить несколько полей выборки в тексте запроса -  показать ответ на вопрос
11. Если вместо указания перечня полей выборки в тексте запроса прописать символ *, то в результат запроса войдут данные: из всех полей таблицы, за исключением виртуальных полей таблиц.
12. Псевдонимы полей в языке описания запросов нельзя использовать при описании...  показать ответ на вопрос
13. Конструкция "Для изменения" (при использовании автоматического режима работы с транзакционными блокировками)...  показать ответ на вопрос
14. При установке флага "Для изменения" (в режиме автоматических транзакционных блокировок) на закладке "Дополнительно" конструктора запросов блокировка записей происходит:  показать ответ на вопрос
15. Самым первым сработает условие, определенное в параметре виртуальной таблицы. показать ответ на вопрос
16. При сохранении текста запроса, открытого повторно с помощью конструктора запроса, без внесения в этот текст изменений:  показать ответ на вопрос
17. В конструкторе запросов на закладке "Таблицы и поля":  показать ответ на вопрос
18. На закладке "Таблицы и поля" конструктора запросов задают: показать ответ на вопрос
19. Для создания в конструкторе запросов вложенного запроса необходимо:  показать ответ на вопрос
20. Можно ли, используя конструктор запроса, получить итоги по иерархии? показать ответ на вопрос
21. Создание соединения таблиц-источников данных в конструкторе запросов допускает:  показать ответ на вопрос
22. При объединении двух запросов на закладке "Объединения/Псевдонимы" конструктора запросов условие связи между запросами:  показать ответ на вопрос
23. При работе с временными таблицами менеджер временных таблиц: показать ответ на вопрос
24. Время жизни временной таблицы:  показать ответ на вопрос
25. При создании временной таблицы, после ключевого слова "Поместить" указывается имя временной таблицы. Это имя должно быть:  показать ответ на вопрос
26. При написании текста запроса в качестве источника данных можно использовать внешний источник (передаваемый как параметр):  показать ответ на вопрос
27. При использовании в качестве источника данных для запроса внешнего источника (данные которого передаются через параметр) в качестве такого источника может использоваться:  показать ответ на вопрос

если не получается открыть вопросы теста - то можно записаться ко мне на занятие по подготовке к экзамену.


Старт | Учебники | Запросы

© 2024. Учебный центр Ярослава Рябинина в Санкт-Петербурге.

Яндекс цитирования