#0
by HGW
Есть справочник "НормыВыдачиСпецодежды" в нем 2 реквизита Подразделение и Должность. Так же табличная часть содержащая колонки Спецодежда, Количество, Срок. Необходимо получить строки ТЧ справочника, поиск по реквизитам Подразделение и Должность. Эти строки вывести в таблицу на форме обработки. Делаю так: Запрос = Новый Запрос; Запрос срабатывает. в отладчике смотрел, в переменной Результат есть необходимые колонки. Но независимо от кол-ва строк ТЧ попадающих под условие, добавляет в таблицу одну пустую строку. Если условие убрать из запроса, то добавляет пустых строк столько сколько строк с основными реквизитами в справочнике. Не могу разобраться. Может как то по другому обход результата делать? Заранее спасибо за помощь.
#3
by ЧашкаЧая
А если так? ВЫБРАТЬ НормыВыдачиСпецодеждыСостав.Спецодежда КАК Спецодежда, НормыВыдачиСпецодеждыСостав.Количество КАК Количество, НормыВыдачиСпецодеждыСостав.Срок КАК Срок ИЗ
#7
by HGW
с (Результат.Выгрузить) не работает.пробовал уже. Справочник заполнен.Условие срабатывает.Если вводить значения которых нет в справочнике то строка не добавляется. Сейчас попробую поменять запрос
#11
by HGW
С таким запросом работает.Спасибо огромное!1с сам сижу изучаю,поэтому пока не успел хорошо подружиться) Еще раз спасибо.
#24
by mirosh
во-первых, это утверждение по меньшей мере спорно, т.к. простота и скорость разработки часто перевешивают пользу от более эффективного решение. Причем неясно, эффективного в каком плане и что является критерием эффективности. Так что, часто этой эффективностью можно пожертвовать ради удобства поддержки и разработки. Во-вторых, в данном случае разницы в какой бы то ни было эффективности нет в данной случае. ну да, за одно и потренируйся
#25
by andrewks
"Во-вторых, в данном случае разницы в какой бы то ни было эффективности нет в данной случае. " ну, давай, за базар отвечай. тексты и результаты низкоуровневых запросов к БД для обоих вариантов для разных СУБД в студию
#26
by mirosh
нет, я уверен, что мой вариант работает не хуже твоего (как минимум). Более того, при очень большой таблице справочника он будет работать быстрее. Кроме того, ты первый усомнился в моей правоте, поэтому будь добр, САМ предоставь доказательства того, что твой вариант "эффективнее". А свои блатные замашки, типа "за базар отвечай" оставь кому-нибудь другому, уважаемый лайт-модератор, инженер знаний.
#27
by izekia
"Более того, при очень большой таблице справочника он будет работать быстрее" вот про это можно поподробнее?
#28
by andrewks
феерично. я не собираюсь тебе доказывать прописные истины при таких текстах. ибо, если ты мне докажешь, за счёт какого такого алгоритма неявное соединение (транслируемое в левое) даже гипотетически может работать быстрее явного (а явно можно использовать как то же самое левое, так и более быстрое внутреннее), ты перевернёшь моё мировоззрение
#29
by izekia
Первый вариант: ВЫБРАТЬ ПользователиКонтактнаяИнформация.Представление, ПользователиКонтактнаяИнформация.Тип ИЗ Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи ПО T1._Fld424, T1._Fld422RRef FROM _Reference49_VT420 T1 WITH(NOLOCK) INNER JOIN _Reference49 T2 WITH(NOLOCK) ON (T1._Reference49_IDRRef = T2._IDRRef) WHERE (T2._Description = ) AND (T2._IsMetadata = @P2)
#31
by izekia
второй: ВЫБРАТЬ ПользователиКонтактнаяИнформация.Представление, ПользователиКонтактнаяИнформация.Тип ИЗ Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация T1._Fld424, T1._Fld422RRef FROM _Reference49_VT420 T1 WITH(NOLOCK) LEFT OUTER JOIN _Reference49 T2 WITH(NOLOCK) ON T1._Reference49_IDRRef = T2._IDRRef WHERE (T2._Description = ) AND (T2._IsMetadata = @P2)
#33
by izekia
да нет, это я неправ ...по плану запроса если смотреть, то действительно ЛЕВОЕ СОЕДИНЕНИЕ надо мне SQL подтянуть похоже
#36
by m-serg74
но... не в конкретном случае ТСа, но иногда вне зависимости от содержания ТЧ, бывает нужно вывести некие данные из ЭлСправочника, поэтому через соединение все таки лучше, потому что если ТЧ пустая вообще нифига не выйдет
#38
by izekia
о, стоп, правильно ли я понял, что если мы сделаем так: ПользователиКонтактнаяИнформация.Ссылка.Наименование ИЗ Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация то мы получим
#42
by m-serg74
Справочник.Пользователи а к нему уж лев соед Справочник.Пользователи.КонтактнаяИнформация
#43
by izekia
да не все ок: SELECT T1._Fld424, T1._Fld422RRef, T2._Description FROM _Reference49_VT420 T1 WITH(NOLOCK) LEFT OUTER JOIN _Reference49 T2 WITH(NOLOCK) ON T1._Reference49_IDRRef = T2._IDRRef WHERE (T2._Description = ) AND (T2._IsMetadata = @P2)
#46
by m-serg74
но... не в конкретном случае ТСа, но иногда вне зависимости от содержания ТЧ, бывает нужно вывести некие данные из ЭлСправочника
#49
by izekia
и что? я тут не про обоснованность запроса, а просто думал как можно сломать механизм формирования, если сделать все без джойнов и пока не вижу такого
#53
by m-serg74
я с до конца читал и внимательно... а вот Вы наверное нет, я вроде все четко и ясно описал в каком случае и для чего...
#54
by izekia
мне стало интересно какой запрос получится если добавить дополнительные детали и может ли нарушится внутренняя логика, вот и все, про то что Вы писали я понял и не спорил
#57
by mirosh
итак, я провел тестирование на файловой базе при средних объемах данных и оказалось, что мой запрос работает на 0,5 секунды быстрее, чем . Подробности здесь:
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v8: Выборка из табличной части Элемента справочника
- Общее количество элементов справочника в табличной части документа
- v7: Выборка из табличной части документа
- Поле объекта не обнаружено (Выборка) Строка.СубконтоКт= Выборка.СубконтоДт1[
- Обращение к табличной части справочника из табличной части документа
- Выбрать в табличной части документа элемент табличной части справочника
- почему в табличной части не выводится реквизит табличной части?
- Отбор в списке справочника по значениям табличной части элементов справочника
В этой группе 1С
- v7: УСН счет 10.2 Зачем нужно субконто Контрагенты? И почему его в 8ке уже нет?
- Ошибка транспорта сообщения
- УТ 10.3 Галки "Учитывать НДС" и "НДС включать в стоимость"
- v7: Как РассчитатьРегистрыНА() через ОЛЕ, если заранее не известно имя регистра?
- БП. Формирование аванса от покупателя при Возврате товаров от покупателя
- Какие есть аналоги программы StaffCop
- БУХ 2.0 Пропало "Закрытие счетов 90, 91"
- Нумерация документов в 1С 8.2
- Корректировка поступления не попадает в книгу покупок. Подскажите куда копать?
- БГУ - изменение типа учреждения
- Чек и "приходный кассовый ордер" в УТ 10.3
- HRESULT=80004005
- БП 2.0 + e-mail. SMTP error code 501
- один ФР на 2 программы
- Создание документов цикле
- Изменить текст запроса динам. списка вне формы.
- Конвертация данных, подчиненный справочник в табличную часть справочника.
- Зависает первая выгрузка каталогов на сайт(УТ 10.3 - Битрикс)
- Обмен между бухгалтерией и торговлей 1С 8.2
- кнопка Действия - Редактировать номер недоступна