Здравствуйте. Интересует возможность получения диплома( https://intuit.ru/sites/default/files/diploma/examples/P/955/Nekommerch-2-1-PRF-example.jpg ). Курс пройден. Сертификат не подходит. В сертификате ошибка, указано по датам время прохождения около 14 дней, хотя написано 576 часов. |
Запросы, обработки
Как видите, в результат запроса попали не только элементы справочника ( Одеколон, Стрижка и т.д.), но и группы ( Парфюмерия, Парикмахерские услуги ). Для того, чтобы при работе с иерархическим справочником ограничить выбор всеми элементами, исключая группы, в текст запроса нужно ввести условие отбора. Обратите внимание на поле ЭтоГруппа, его можно увидеть на рис. 7.14. Это поле у обычных элементов справочника принимает значение ложь, у групп - истина.
Для отбора элементов можно использовать ключевое слово ГДЕ. Оно позволяет задавать условия отбора. Напишем запрос, который отбирает наименования элементов справочника Номенклатура, исключая наименования групп ( рис. 7.15).
ВЫБРАТЬ ТабНоменклатура.Наименование ИЗ Справочник.Номенклатура КАК ТабНоменклатура ГДЕ НЕ ТабНоменклатура.ЭтоГруппа
Рассмотрим еще один вариант отбора результатов запроса, а заодно еще немного продвинемся в изучении Конструктора запроса.
Нам нужно отобрать среди документов поступления материалов лишь те, сумма которых превышает 2000 рублей, и вывести в результаты запроса даты, номера документов, ФИО материально-ответственного лица, принявшего материалы, а так же сумму документа, упорядочив выводимые строки по сумме документа.
Откроем Конструктор запроса и на вкладке Таблицы и поля отберем в область Таблицы таблицу документов ПоступлениеМатериалов, в область Поля перенесем следующие поля, рис. 7.16:
- ПоступлениеМатериалов.Дата
- ПоступлениеМатериалов.Номер
- ПоступлениеМатериалов.ОтветственныйСотрудник
- ПоступлениеМатериалов.СтоимостьМатериалов
Теперь нам нужно задать условие отбора. Для этого перейдем на вкладку Условия. Здесь нам нужно перенести поле СтоимостьМатериалов из области Поля в область задания условий. После этого ( рис. 7.17) нужно выбрать условие выбором их списка (мы выбрали условие "больше") и заменить выражение СтоимостьМатериалов на число 2000.
Здесь нас подстерегает одна особенность конструктора запросов. Дело в том, что и выражение СтоимостьМатериалов, и число 2000 он будет воспринимать как имя переменной, которая должна быть передана в запрос до его исполнения. Нам же нужно, чтобы 2000 было воспринято именно как число, а не как имя переменной. Для того, чтобы это сделать, установим галочку в поле Произвольное. Это приведет к тому, что поле Условие превратится в одну строку, в которой будет написано следующее:
ПоступлениеМатериалов.СтоимостьМатериалов > &2000
Символ & нам не нужен - он, как раз, и даст понять системе, что 2000 - это переменная. Поэтому мы удалим его вручную, и, в итоге, получим следующий вид вкладки Условие, рис. 7.18.
Для того чтобы упорядочить результат запроса по сумме документа, перейдем на вкладку Порядок, из области Поля добавим в область настройки упорядочивания поле СтоимостьМатериалов и зададим их упорядочивание, рис. 7.19.
Работа с Конструктором запроса завершена. Нажмем на кнопку ОК, текст запроса попадет в поле обработки Консоль запросов, нажмем на кнопку Выполнить и убедимся в том, что запрос выполнен правильно, рис. 7.20.
Вот, какой текст сгенерировал Конструктор запроса:
ВЫБРАТЬ ПоступлениеМатериалов.Дата, ПоступлениеМатериалов.Номер, ПоступлениеМатериалов.ОтветственныйСотрудник, ПоступлениеМатериалов.СтоимостьМатериалов КАК СтоимостьМатериалов ИЗ Документ.ПоступлениеМатериалов КАК ПоступлениеМатериалов ГДЕ ПоступлениеМатериалов.СтоимостьМатериалов > 2000 УПОРЯДОЧИТЬ ПО СтоимостьМатериалов
Выше мы занимались получением данных из какой-то одной таблицы. Существует и другой вариант получения данных - с использованием нескольких таблиц. В целом порядок работы при использовании в качестве источников нескольких таблиц, как правило, взаимосвязанных по каким-то признакам, очень похож на работу с отдельными таблицами. Однако если запрос выбирает данные из нескольких таблиц, нужно настроить взаимосвязь этих таблиц, а настройка такой взаимосвязи требует, для начала, получения дополнительных знаний о том, как соединяются результаты запросов по разным таблицам.
Существуют следующие виды соединения таблиц:
- Левое внешнее соединение;
- Правое внешнее соединение;
- Полное внешнее соединение;
- Внутреннее соединение;
Рассмотрим эти виды соединения таблиц на примере.
В нашей конфигурации есть два взаимосвязанных справочника. А именно, речь идет о справочниках Номенклатура и ЕдиницыИзмерения. Элементам справочника Номенклатура могут быть назначены единицы измерения, взятые из справочника ЕдиницыИзмерения. Причем, в справочнике Номенклатура могут существовать элементы, которым не назначена ни одна единица измерения, а в справочнике ЕдиницыИзмерения могут присутствовать элементы, которые не назначены элементам справочника Номенклатура. В таблице 7.1 представлена таблица справочника Номенклатура - наименования номенклатурных позиций и соответствующие им единицы измерения.
Номенклатура | Единица измерения | Группа |
---|---|---|
Бальзам для волос | ложь | |
Духи | Штука | ложь |
Завивка | Час | ложь |
Лак для волос | Упаковка | ложь |
Одеколон | Упаковка | ложь |
Парикмахерские услуги | истина | |
Парфюмерия | истина | |
Стрижка | Час | ложь |
Уход за волосами | истина |
Как видите, Бальзам для волос не имеет установленной единицы измерения, остальным элементам единицы измерения назначены. Группам, естественно, единицы измерения так же не назначены.
В таблице 7.2 вы можете видеть состав справочника ЕдиницыИзмерения.