Разработка и оптимизация запросов в 1С:Предприятие 8.3. Модуль 4. Использование нескольких таблиц в запросе: вложенные запросы, соединение, объединение
На данной странице задавайте вопросы по материалам и практическому заданию четвертого модуля курса «Разработка и оптимизация запросов в 1С:Предприятие 8.3».
Практические задания
К сожалению, у Вас недостаточно прав для дальнейшего просмотра.
Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.
Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.
Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.
Комментарии / обсуждение (382):
Комментарии закрыты

Добрый день!
Для понимания работы с операцией «В» пытаюсь решить следующую задачу:
Есть Справочник1 и Справочник2,оба с реквизитами Реквизит1,Реквизит2,Реквизит3.
Нужно запросом выбрать из Справочник1
только те значения реквизитов , которых нет в Справочник2.
Справочник1.Реквизит1,
Справочник1.Реквизит2,
Справочник1.Реквизит3
ИЗ
Справочник.Справочник1 КАК Справочник1
ГДЕ
НЕ (Справочник1.Реквизит1, Справочник1.Реквизит2, Справочник1.Реквизит3) В
(ВЫБРАТЬ
Справочник2.Реквизит1,
Справочник2.Реквизит2,
Справочник2.Реквизит3
ИЗ
Справочник.Справочник2 КАК Справочник2)
Запрос выбирает ВСЕ реквизиты всех элементов Справочник1,хотя должен исключить дублирующиеся
из Справочник2 значения реквизитов. Подскажите — в чем ошибка…
…
(текст комментария доступен только участникам Мастер-группы)
>>Добрый день! В архиве на сайте ИТС есть две обработки — Консоль запросов для управляемого приложения.epf и ИнструментыРазработчикаКонсольЗапросов83.epf. В первой из них используется новый управляемый конструктор запроса. И в нем действительно при редактировании произвольного выражения нет возможности открыть вложенный конструктор. А вот если воспользоваться обработкой ИнструментыРазработчикаКонсольЗапросов83.epf, то мы увидим обычный классический конструктор запроса, где эта полезная возможность присутствует. Источник: ©Курсы-по-1С.рф
К сожалению на сегодня в обработке ИнструментыРазработчикаКонсольЗапросов83.epf эта возможность утрачена.
У меня с диска ИТС в папке \1CIts\EXE\EXTREPS\UNIREPS83\RequestConsoleManaged\ есть на сегодня три обработки ИнструментыРазработчикаКонсольЗапросов.epf от 01/06/2016, ИнструментыРазработчикаКонсольЗапросов83.epf от 19/09/2015 и Консоль запросов для управляемого приложения.epf от 19/02/2015 и везде эта возможность отсутствует, и операторы на закладке Условия не выбираются(как в вашей обработке и в Конфигураторе). На сайте ИТС по адресу http://its.1c.ru/db/metod8dev#content:4500:hdoc в текущий момент доступна только обработка ИнструментыРазработчикаКонсольЗапросов.epf запакованная в архив requestconsolemanaged.zip.
Укажите версию обработки ИнструментыРазработчикаКонсольЗапросов83.epf с этой возможностью, чтобы можно было на дисках ИТС поискать.
Нашел на диске ИТС за январь 2015 ИнструментыРазработчикаКонсольЗапросов83.epf от 03/04/2014 с указанными возможностями, но работающую под толстым клиентом.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Создаю в конфигураторе УПП 1.3 Новый отчет. Задача вроде бы не сложная. Взять из регистра остатки товаров в разрезе складов и присоединить данные из регистра ЗакупкиОбороты. То есть в отчет должны выводиться остатки и Средняя цена материалов. Открыв ОСКД обнаружил, что закладки ИТОГИ нет. А общие итоги просто необходимы…. Что делать?
…
(текст комментария доступен только участникам Мастер-группы)
Да уже разобрался… спасибо.
Здравствуйте, в задании №20, мы в условии используем вложенный запрос. А как можно открыть конструктор именно вложенного запроса, если напрм. понадобиться его еще раз отредактировать?
спасибо за ответ.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Уточните, пожалуйста, как в конструкторе запроса можно определить ключевое слово ПУСТАЯТАБЛИЦА? Если создать отдельное поле и написать туда ПУСТАЯТАБЛИЦА.(Товар, Количество), то система ругается.
В лекциях говорится, что количество полей в объединенных запросах обязательно должно совпадать, но я попробовала объединить два запроса с разным количеством полей, на вкладке Объединения/Псевдонимы для этих полей было установлено значение «Отсутствует». В консоли запрос выполнился успешно. Тогда получается, что количество полей не обязательно должно быть одинаковым для объединенных запросов?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо!
Благодарю
В 20-м задании есть принципиальная разница, куда поставить «НЕ»: в начале выражения условия или перед оператором «В»? Если это как-то влияет на скорость выполнения запроса, то почему?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Помогите решить такую задачу:
Есть две таблицы с одинаковыми полями A, B и C
Нужно запросом выбрать из первой таблицы только те записи, которых нет во второй таблице.
…
(текст комментария доступен только участникам Мастер-группы)
Благодарю
В видео уроке «Особенность левого соединения» столкнулся с проблемой работы консоли запросов, размещенной на сайте ИТС. В данной версии консоли невозможно добавить второе соединение так как это показано в видео уроке. Есть и другие отличия.
Где можно скачать ту версию консоли, которая использовалась при создании курса?
…
(текст комментария доступен только участникам Мастер-группы)
Василий, здравствуйте!
Читаю сборник вопросов для подготовки к экзамену «Профессионал» по платформе, и вопрос по соединению таблиц своей «лаконичностью» ставит меня в лёгкий ступор :)
«7.11 Создание соединения таблиц-источников данных в конструкторе запросов допускает:
1. Соединение только двух таблиц-источников данных
2. Соединение необходимого количества таблиц-источников данных
3. Соединение только двух таблиц-источников данных, причем флажок «Все» обязательно должен быть проставлен хотя бы у одной из таблиц
4. Соединение необходимого количества таблиц-источников данных, причем флажок «Все» обязательно должен быть проставлен хотя бы у одной из таблиц».
Не могу понять, как его трактовать, как «сколько таблиц в запросе вообще можно связать (с помощью соединений)» или «сколько таблиц можно связать одним соединением»? 3 и 4 варианты ответа, понятно, что даже не рассматриваем. Как Вы думаете, что имеется в виду?
…
(текст комментария доступен только участникам Мастер-группы)
Василий, спасибо!
Добрый день, Василий.
Вопрос по уроку №14 «Особенность левого соединения».
В уроке Вы связываете результат выполнения запроса с особенностью сравнения произвольных значений со значением NULL. Я не смог понять эту связь. Возможно ли объяснить результат выполнения запроса в котором есть левое соединение с одновременным наложением условия по правой таблице только порядком выполнения секций запроса? Т.е. сначала выполняется левое соединение (секция ИЗ), а следующим этапом отбор по условию (секция ГДЕ). В одном из своих ответов на вопросы по модулю 4 Вы так и писали:»Вообще секции обрабатываются в таком порядке: 1. ИЗ 2. ГДЕ 3. СГРУППИРОВАТЬ ПО 4. ИМЕЮЩИЕ 5. ВЫБРАТЬ 6. УПОРЯДОЧИТЬ ПО».
…
(текст комментария доступен только участникам Мастер-группы)
Большое спасибо! Очень наглядно и интересно!
Здравствуйте! Помогите мне пожалуйста составить запрос по след. условию:
Обрабатывается табличная часть Поступление товаров и формируется выборка след. образом Товар, Датадокумента , цена товара, и далее дата следующего документа Поступление товара на этот же товар, и цена его в этом следующем документе. т.е цена товара по текущему и следующему документу.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Вопрос не совсем по теме, но я не понимаю, как так) Может вы спасете меня от разрыва мозга)
В связи с тем, что в консоли запроса для управляемого приложения невозможно вставить подзапрос, я из последних сил пытаюсь открыть ИнструментыРазработчикаКонсольЗапросов83.epf, но вываливаются ошибки на функции СтрНайти, СтрШаблон и т.д.
{Форма.Форма.Форма(1561,8)}: Процедура или функция с указанным именем не определена (СтрНайти)
Почитала, это нововведение платформы 8.3.6.1977. У меня стоит 8.3.6.2041. убрала в обучательной конфигурации совместимость с 8.3.5, поставила «не использовать», ошибки в конфигураторе теперь нет. Но в приложении все то же! Как так???
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо!
Все получилось.
Делала все то же самое, и сохраняла. Но на свежую голову все закрыла, открыла заново и все заработало) Без лишних движений с моей стороны.
Утро доброе)
Конструктор запроса автоматически преобразует Правое Соединение в Левое.
Это связано с каким-то «недоверием» к Правому соединению? Т.е. есть ли вариант, что принудительное указание Правого соединения в тексте запроса приведет к ошибке?
Заметил что если явно указывать Правое соединение, то на стороне СУБД и выполняется Right Outer Join.
…
(текст комментария доступен только участникам Мастер-группы)
Автоматическая подстановка соединения в конструкторе запроса
Соединение таблиц вида:
Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
является более осмысленным, так как у документа может быть 0 записей в табличной части и левое соединение позволяет «не потерять» такие документы,
а обратная ситуация, когда ссылка в табличной части есть, а в основной таблице отсутствует возможна только при нарушении ссылочной целостности базы.
Поэтому постоянно приходится исправлять подстановку конструктора. Куда смотрят разработчики!?!?
…
(текст комментария доступен только участникам Мастер-группы)
В практическом задании №20 во вложенном запросе использую РАЗЛИЧНЫЕ для уменьшения полученного списка. Насколько это правильно и почему не меняется план выполнения запроса с использованием «РАЗЛИЧНЫЕ» и без?
Спасибо.
ВЫБРАТЬ
Склады.Наименование
ИЗ
Справочник.Склады КАК Склады
ГДЕ
НЕ Склады.Ссылка В
(ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоступлениеТоваров.Склад
ИЗ
Документ.ПоступлениеТоваров КАК ПоступлениеТоваров)
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо. Я немного неточно сформулировал. В любом случае, если указывать или не указывать в 1с-запросе РАЗЛИЧНЫЕ, sql-запрос не меняется, будет без указания «различные». А вот план выполнения запроса в любом случае (у меня) получается с WITHOUT DUPLICATES. Выходит что разницы нет, указывать в 1с РАЗЛИЧНЫЕ или не указывать — субд сама разберется.
…
(текст комментария доступен только участникам Мастер-группы)
Возможно ли
ВЫБРАТЬ
Справочник.Номенклатура.Наименование КАК Наименование,
Справочник.Номенклатура.Артикул КАК Артикул,
а третье поле, которого нет в реквизитах, должно быть Наименование + Артикул
ИЗ …, т.е. как вычисляемое поле?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо, получилось.
Но вот такая задача: Есть поле ДатаНачала (только время, например, 10-00), второе поле ДатаОкончания (только время, например, 19-00). Т.е. у документа есть два реквизита и заполняется только время. А в третье (вычисляемое поле) должно быть 10-19, как простой текст. Но конструкция
ВЫБРАТЬ
КакойТоДокумент.ДатаНачала,
КакойТоДокумент.ДатаОкончания,
КакойТоДокумент.ДатаНачала — КакойТоДокумент.ДатаОкончания КАК ТекстовоеПоле
…
не работает, да и не будет, т.к. даты. А как получить результат типа строка вида 10-19.
Спасибо.
…
(текст комментария доступен только участникам Мастер-группы)
Доброго времени.
Если на форму добавить реквизит, то как его потом в запросе использовать, этот реквизит же будет невиден в конструкторе запросов?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. В типовых решениях старого поколения для хранения дополнительных реквизитов используются два ПВХ и регистр сведений «ЗначенияСвойствОбъектов «. Как методически правильно получить запросом значение определенного дополнительного реквизита
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо
Добрый день.
Если есть необходимость не выводить дубли, что будет эффективнее с точки зрения производительности:
1)ОБЪЕДИНИТЬ
или
2)ОБЪЕДИНИТЬ ВСЕ с последующим помещением во временную таблицу и группировкой по всем полям?
И еще: как часто Вы на практике прибегали к ОБЪЕДИНИТЬ?
…
(текст комментария доступен только участникам Мастер-группы)
Скачал сегодня с ИТС обработку «Консоль запросов», так в ней при редактировании произвольного условия нельзя открыть конструктор запроса для вложенного запроса(((
…
(текст комментария доступен только участникам Мастер-группы)
И еще один вопрос, если можно:)
Столкнулся с проблемой получения данных по количеству имеющихся в базе документов, в разрезе их типов,
т.е. стоит задача определить, сколько в базе документов «Авансовый отчет», «Реализация…»….
Конечно, можно перебрать в цикле каждый тип документов из метаданных, а… можно ли одним запросом получить выборку из двух колонок, где в первой будет тип документа, а во второй — количество?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо огромное за ответ!
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день, Василий!
Вопрос про связи двух таблиц (типовая розница 2.1).
Есть таблица продаж, в которой есть номенклатура, количество, сумма.
Есть таблица поступлений в которой есть регистратор, номенклатура. У регистратора надо взять контрагента (приход регистрируется только «Поступлением товаров»).
При попытке соединить две таблицы по номенклатуре имеем декартово произведение всевозможных сочетаний «номеклатура — контрагент» и, как следствие, неверные цифры. Можно ли как-то вытащить одного контрагента, если их больше одного и подставить в качестве единственного.
Вот запрос:
ПродажиОбороты.Магазин КАК Магазин,
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.Характеристика,
СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество,
СУММА(ПродажиОбороты.СтоимостьБезСкидокОборот) КАК ВсегоПродажа,
СУММА(ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьОборот) КАК Скидка
ПОМЕСТИТЬ ВТ_Продажи
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО
ПродажиОбороты.Магазин,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.Характеристика
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладах.Номенклатура,
ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров) КАК Поступление,
ТоварыНаСкладах.Характеристика
ПОМЕСТИТЬ ВТ_Поступления
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
ТИПЗНАЧЕНИЯ(ТоварыНаСкладах.Регистратор) = ТИП(Документ.ПоступлениеТоваров)
СГРУППИРОВАТЬ ПО
ТоварыНаСкладах.Номенклатура,
ТоварыНаСкладах.Характеристика,
ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПоступлениеТоваров)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Продажи.Магазин КАК Магазин,
ВТ_Поступления.Поступление.Контрагент.Наименование КАК Контрагент,
ВТ_Продажи.Номенклатура КАК Номенклатура,
ВТ_Продажи.Количество КАК Количество,
ВТ_Продажи.ВсегоПродажа КАК ВсегоПродажа,
ВТ_Продажи.Скидка КАК Скидка
ИЗ
ВТ_Продажи КАК ВТ_Продажи
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Поступления КАК ВТ_Поступления
ПО ВТ_Продажи.Номенклатура = ВТ_Поступления.Номенклатура
И ВТ_Продажи.Характеристика = ВТ_Поступления.Характеристика
СГРУППИРОВАТЬ ПО
ВТ_Продажи.Номенклатура,
ВТ_Продажи.Магазин,
ВТ_Продажи.Количество,
ВТ_Продажи.ВсегоПродажа,
ВТ_Продажи.Скидка,
ВТ_Поступления.Поступление.Контрагент.Наименование
УПОРЯДОЧИТЬ ПО
Контрагент
ИТОГИ
СУММА(Количество),
СУММА(ВсегоПродажа),
СУММА(Скидка)
ПО
ОБЩИЕ,
Магазин,
Контрагент,
Номенклатура
…
(текст комментария доступен только участникам Мастер-группы)
Огромнейшее спасибо! Именно и нужен был любой контрагент.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день.
Видел в запросах(и в типовых) примерно такую вещь — выбираются данные из трех таблиц 1 основная к ней левым соединением цепляется 2, а 3 левым(или внутренним) соединением подцепляется ко 2-й таблице.
(Ахтунг вас из дас?! так наверно думает оптимизатор запроса :), но я точно так думаю).
Всегда стремился избегать такие ситуации — использовал временные таблицы, а почитав материалы 8 курса, такая связь таблиц не очень оптимальна. Я прав? Но это побочный вопрос, а вот основной:
Скажите пожалуйста какова последовательность соединений сперва 2 и 3, а потом это все к 1 или как?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте
Мне нужно получить данные справончика физические лица для вывода на печать. Реквизиты и две табличные части. Нужны данные только по одному человеку. Как лучше сделать?
1. В одном запросе получить реквизиты и две вложенные таблицы.
2. В первом пакетном запросе получить одну таблицу и реквизиты через ссылку. Во втором пакетном запросе получить второую таблицу.
В макете две табличные части.
…
(текст комментария доступен только участникам Мастер-группы)
Василий, добрый день. Никак не могу загрузить базу из модуля №2. Появляется ошибка «неверный формат файла для загрузки информационной базы». Скажите, для какой платформы эта база?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день! С праздником Вас и всех благ Вам и всем обучающимся! Видеоурок оператор В. Вы дали образец запроса
ВЫБРАТЬ
Товары.Наименование
ИЗ
Справочник.Товары КАК Товары
ГДЕ
Товары.Наименование В (&Список)
Выбираем тип параметра «Список» как список значений. Выбираем значение Список значений-добавить, выбираем товар –Валенки, нажимаем ОК и……. в графе значение ничего не проставляется. А Видеоуроке значение параметра не заполнялось, перейдя на новую тему. Я что-то не так делаю или не понял???
…
(текст комментария доступен только участникам Мастер-группы)
Ещё вопрос: как в демонстрационной конфигурации «Управляемое приложение» переключить интерфейс с «Такси» на обычный?
…
(текст комментария доступен только участникам Мастер-группы)
Не вижу такого, см. скриншот
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо, в конфигураторе было только «Такси», исправил.
Добрый день!
Урок 19 «Объединить все» и «Объединить»: сделали упорядочивание по полю Товар. Однако в результате товары отсортированы не по алфавиту.
Кроссовки
Пинетки
Молоко…
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо.
В чём заключается принципиальная разница между конструкциями
ВЫБРАТЬ * ИЗ А,Б ПО А.А = Б.Б и ВЫБРАТЬ * ИЗ А,Б ГДЕ А.А = Б.Б ?
И там и там задаётся условие, если оно выполняется то строка в результат запроса попадёт.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Неудачно сформулировал вопрос, имелось в виду полное соединение конечно же. Допустим есть две таблицы А и Б, их полное соединение (декартово произведение) это таблица, содержащая все возможные комбинации строк из А и Б. Если мы зададим в полном соединении какое-либо условие, например ПО А.А = Б.Б, то из всех возможных комбинаций строк останутся только те, где условие выполняется. Ровно то же самое произойдёт, если мы в полном соединении не будем задавать условие соединения, а просто наложим фильтр на результат ГДЕ А.А = Б.Б. Вот собсно я и спрашиваю: а есть ли разница между этими двумя конструкциями?
…
(текст комментария доступен только участникам Мастер-группы)
А во втором варианте декартово соединение будет?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
В условии соединения мы всегда использовали, естественно равенство, например:
ВЫБРАТЬ
Организации.Ссылка,
РасчетныеСчета.Владелец
ИЗ
Справочник.РасчетныеСчета КАК РасчетныеСчета
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
ПО РасчетныеСчета.Владелец = Организации.Ссылка
А есть ли какой-нибудь смысл в данном запросе, если «=» заменить на «» или «>», или эти виды сравнения используются только для полей типа «Число»?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо.
Возможно ли построить план-фактный отчет с помощью присоединения таблиц, а не объединения?
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте.
К видео «12. Отличие Неопределено и Null» хочу отметить одно сходство между этими значениями: результат функции ТипЗначения в запросе равен Null. При этом, если в конфигураторе сравнить типы этих значений, то они уже не будут равны.
Пример запроса подтверждающий это.
…
(текст комментария доступен только участникам Мастер-группы)
Получается это не особенность, а не до конца исправленная ошибка платформы. Т.к. значение составного типа Реквизит1, которое при проверке Значения в процедуре ВывестиДеталиБезИерархии равно Неопределено, в тоже время не эквивалентно жестко прописанному НЕОПРЕДЕЛЕНО.
Еще обратил внимание, что результат для ТипЗнч(НЕОПРЕДЕЛЕНО) в конфигураторе выдает значение «Не определено»(через пробел). А для Реквизита1, которое при проверке равно Неопределено, в колонке «Значение» вообще пусто, зато в колонке Тип уже написано «Неопределено»(уже без пробела).
Спасибо, что указали на зарегистрированную ошибку, а то бы думал, что это закономерность.
…
(текст комментария доступен только участникам Мастер-группы)
…
(текст комментария доступен только участникам Мастер-группы)
…
(текст комментария доступен только участникам Мастер-группы)
Возник еще вопрос.
1)Пример: Есть таблица контрагентов, есть таблица с контактной информацией контрагентов. У одного контрагента может быть два телефона(разными строчками) в таблице контактной информации, тип строка.
Существует ли возможность каким-либо образом СОЕДЕНИТЬ или ОБЪЕДЕНИТЬ две таблицы что-бы получились такая таблица:
Контрагент1 | Телефон1,Телефон2
Т.е. склеить объеденением две строчки(тип строка),или каким-либо образом их соеденить
2)Существует ли возможность добавления вложенного запроса в поля выборки?
Т.е: Выбрать Т1.Поле1 КАК Поле1,
(Выбрать Т2.Пол2 ИЗ Т2) КАК Поле2
ИЗ Т1
…
(текст комментария доступен только участникам Мастер-группы)
А не подскажете где указывать данную функцию в СКД?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день, в теоретическом материале демонстрировался пример с битой ссылкой.
Существует ли возможность сравнения с битыми ссылками? Например отбора в запросе по битым ссылкам или замены битых ссылок в выводимых полях на какое либо значение по аналогии с ЕСТЬNULL(поле1,0) .
…
(текст комментария доступен только участникам Мастер-группы)
спасибо
Добрый день. Подскажите пожалуйста. У меня в запросе в выборку попадают документы выбранной категории, как сделать чтобы в выборку попадали все документы за выбранный период?
Запрос:
ВЫБРАТЬ
ПлатежноеПоручение.Ссылка,
ВЫБОР
КОГДА КатегорияОбъектов.Категория ISNULL
ТОГДА Ложь
ИНАЧЕ Истина
КОНЕЦ КАК Пометка
ИЗ
Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручение
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
ПО ПлатежноеПоручение.Ссылка = КатегорииОбъектов.Объект
ГДЕ
ПлатежноеПоручение.Дата Между &ДатаС &ДатаПо
И КатегорияОбъектов.Категория = &Категория
…
(текст комментария доступен только участникам Мастер-группы)
«Особенность левого соединение» имеет еще другое (второе) решение: например, в этом примере в секцию ГДЕ добавить «ИЛИ КатегорияОбъектов.Категория есть NULL». Полный код секции ГДЕ:
«ГДЕ
ПлатежноеПоручение.Дата Между &ДатаС &ДатаПо
И ( КатегорияОбъектов.Категория = &Категория ИЛИ КатегорияОбъектов.Категория есть NULL)».
Но в запросе СКД оба эти решения нельзя использовать. Как же решить проблему превращения ЛЕВОГО соединения во ВНУТРЕННЕЕ в запросе СКД?
…
(текст комментария доступен только участникам Мастер-группы)
Пример, ЛЕВОЕ соединение Справочника (например, Регионы) с временной таблицей с данными (ВТПраваяТаблица — слияние продаж, покупок и т.д.). В конструкторе запросов в СКД закладку «Условия» заполняем на закладке «Компоновка данных». (так рекомендуется). В результате секция ГДЕ в тексте запроса получается в фигурных скобках:
Как здесь перенести условие ГДЕ в фигурных скобках в секцию ПО?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день,
Переделала примеры из главы «Одновременное использование ОБЪЕДИНИТЬ ВСЕ и ОБЪЕДИНИТЬ». Получается, что оператор ОБЪЕДИНИТЬ удаляет дубликаты у ВСЕХ наборов выше. А я раньше всегда наивно полагала, что записи ДОБАВЛЯЮТCЯ без дубликатов. Почему такое странный результат? Почему ниже находящийся набор данных влияет на все вы находящиеся?
…
(текст комментария доступен только участникам Мастер-группы)
В главе «Виды соединения таблиц» написано: «Соединяемые источники не равнозначны между собой, и в некоторых случаях результат зависит от того, какая таблица указана первой, до ключевого слова СОЕДИНЕНИЕ (слева от него), а какая – второй (справа).» Мне не понятно. Можно поподробнее, и например, в каких случаях?
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день. Почему-то в произвольном выражении не доступен конструктор запроса. Все делаю как положено: пробел, выделяю, нажимаю правую кнопку мыши. Платформа 8.3.5.1248, толстый клиент.
Фотку приложил.
…
(текст комментария доступен только участникам Мастер-группы)
Понял, спасибо. С новым годом)
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день!
Что-то не совпадают объекты в конфигурации для изучения и в разборках примеров. Документы могу по смыслу подобрать, а вот, например, справочника «Регионы» нет. Замысел обучения в некоторой доработке конфы? Тогда, нельзя ли сразу про все доработки где-то узнать? Сегодня еще разок скачала, регионы отсутствуют.
…
(текст комментария доступен только участникам Мастер-группы)
В практическом задании использовала «НЕ В», результат получен, но какие подводные камни?
…
(текст комментария доступен только участникам Мастер-группы)
Если мы выбираем несколько таблиц (больше 2х), и на закладке соединения настраиваем различные соединения для всех таблиц, в какой последовательности это всё будет соединяться? Есть ли какой-то приоритет?
…
(текст комментария доступен только участникам Мастер-группы)
спасибо, забавная статья.
Добрый день!
Подскажите, пожалуйста, порядок следования операций соединения и отбора «где». Сначала выполняется отбор, потом соединение или наоборот?
И в последнем видео уроке использовался вложенный запрос. С появлением временных таблиц вложенные запросы имеют право на существование, или лучше переписывать запрос с использованием ВТ?
…
(текст комментария доступен только участникам Мастер-группы)
А что раньше выполняется, группировка или соединение?
…
(текст комментария доступен только участникам Мастер-группы)
А какой приоритет для этой схемы будет у объединения?
…
(текст комментария доступен только участникам Мастер-группы)
Проблемой является соединение с вложенным запросом (в том, числе и с виртуальной таблицей…
Но ведь в конфигурациях часто используется соединения, например, с РегистромСведенийСрезПоследних (а ведь это виртуальная таблица)
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте,
У меня вопрос касается запроса в условии, через «В».
Если написать следующий текст:
«Склады.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоступлениеТоваров.Склад КАК Подразделение
ИЗ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров)»
То запрос отработает так как надо, даже если во вложенном запросе поле имеет совершенно другое наименование. А вот если используется список полей, важно соблюдать наименование полей вложенных таблиц или важна последовательность этих полей?
…
(текст комментария доступен только участникам Мастер-группы)
Спасибо большое за курс! Прошла четыре модуля и уже в восторге. Очень нравится манера изложения. Глубина подачи материала охватывает все необходимые ситуации, но в то же время не затянуто, как раз то, что надо, все ключевые моменты. Надеюсь, что дальше будет еще интереснее:))
У меня вопрос, есть ли существенная разница в производительности между предложенным в решении способом и следующим:
ВЫБРАТЬ
Склады.Наименование
ИЗ
Справочник.Склады КАК Склады
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
ПО (ПоступлениеТоваров.Склад = Склады.Ссылка)
ГДЕ
ПоступлениеТоваров.Ссылка ЕСТЬ NULL
На небольших таблицах с данными получается практически одно и то же по замеру производительности. При первом запуске чуть быстрее предложенный в курсе вариант решения, при повторных запусках того же запроса чуть быстрее указанный выше вариант. Но возможно, на этих запусках статистика не показательная.
…
(текст комментария доступен только участникам Мастер-группы)
Добрый день! Нестыковка в названии видеоурока. стр.116.»Видеоурок. Отладка запросов при помощи выгрузки в таблицу значений.
Данный урок записан в видеоформате. Обратитесь к файлу Query-4-2-Join-9″
Обращаюсь, файл Query-4-2-Join-9: «Отличие Неопределено и Null.»
…
(текст комментария доступен только участникам Мастер-группы)
Похоже не исправилось… Проверьте пожалуйста еще раз!
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
Не совсем понятен результат запроса
ВЫБРАТЬ 1 КАК Поле1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 1
По логике д.б. 2 строки с единичками, раз мы объединяем первую 1 полностью с остальными данными??
…
(текст комментария доступен только участникам Мастер-группы)
Если не ориентироваться на уровень слушателей курса, то, на мой взгляд, следует упомянуть о следующем: если работаем напрямую с документами — необходимо учитывать признак «Проведен» в запросах.
…
(текст комментария доступен только участникам Мастер-группы)
Здравствуйте!
Практическое задание №20. Какой запрос оптимальнее с точки зрения производительности, если документов большое количество:
Вариант 1. Запрос, показанный в решении практического задания.
Вариант 2. Во вложенном запросе дополнительно использовать ключевое слово РАЗЛИЧНЫЕ. С одной стороны, тратится время на отбор уникальных складов, с другой стороны, «на входе» оператора В может остаться таблица из пары строчек, вместо нескольких тысяч, как в варианте 1.
…
(текст комментария доступен только участникам Мастер-группы)