Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 05:31

Ограничение выходных данных запроса

Автор Dmitry Qwe, 04 ноя 2017, 14:00

0 Пользователей и 1 гость просматривают эту тему.

Dmitry Qwe

ilyay, не помогло

                ВЫБРАТЬ ПЕРВЫЕ 10
Сотрудники.Ссылка как Сотрудник
ПОМЕСТИТЬ ВТ_СОТРУДНИКИ
ИЗ
Справочник.Сотрудники как Сотрудники
;
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СотрудникиПодразделений.Сотрудник как СотрудникП,
СотрудникиПодразделений.ОргПодразделение как ОргПодразделение,
СотрудникиПодразделений.Дата как Дата,
СотрудникиПодразделений.ДатаОкончания как ДатаОкончания,
СотрудникиПодразделений.РольВПодразделении как РольВПодразделении,
ЕСТЬNULL(СотрудникиПодразделений.ИндексСортировки, 1000) КАК ИндексСортировки
ПОМЕСТИТЬ ВТ_ПОДРАЗДЕЛЕНИЯ
ИЗ
РегистрСведений.СотрудникиПодразделений КАК СотрудникиПодразделений
ГДЕ " +
    ?(ЗначениеЗаполнено(ОргПодразделение),"   СотрудникиПодразделений.ОргПодразделение = &ОргПодр
И СотрудникиПодразделений.Дата <= &Дата
И (СотрудникиПодразделений.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    ИЛИ СотрудникиПодразделений.ДатаОкончания > &Дата) ", " 1=1 ") + "
;
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВТ_СОТРУДНИКИ.Сотрудник,
ВТ_ПОДРАЗДЕЛЕНИЯ.ОргПодразделение,
ВТ_ПОДРАЗДЕЛЕНИЯ.СотрудникП,
ВТ_ПОДРАЗДЕЛЕНИЯ.Дата,
ВТ_ПОДРАЗДЕЛЕНИЯ.РольВПодразделении,
ВТ_ПОДРАЗДЕЛЕНИЕ.ДатаОкончания,
ВТ_ПОДРАЗДЕЛЕНИЕ.ИндексСортировки
ИЗ
ВТ_СОТРУДНИКИ ЛЕВОЕ СОЕДИНЕНИЕ
ВТ_ПОДРАЗДЕЛЕНИЯ
ПО Сотрудник = СотрудникП
ГДЕ
ВТ_СОТРУДНИКИ.Сотрудник.Наименование ПОДОБНО ""%"" + &Наименование + ""%""
И ЕСТЬNULL(ВТ_СОТРУДНИКИ.Сотрудник.Состояние.ИСпользуется, Истина) = ИСТИНА

ilyay

Что не помогло? У вас своя база, я вижу только запрос.
В чем проблема? Выбралось больше 10 записей? Речь шла про 10 сотрудников. Если один сотрудник имеет несколько записей на регистре, в результате будут эти несколько записей. Если нужно только 10 записей в результате, тогда на последнем запросе ставьте ограничение.

Фраза "Не работает" - ни о чем. Это как написать: "у меня ошибка" без дополнительной информации. Запрос работает, но не выдает то, что вам нужно. Можно отлаживать по частям. Консоль запросов позволяет вывести содержимое временных таблиц.

Dmitry Qwe

Цитата: ilyay от 08 ноя 2017, 11:20
Что не помогло? У вас своя база, я вижу только запрос.
В чем проблема? Выбралось больше 10 записей? Речь шла про 10 сотрудников. Если один сотрудник имеет несколько записей на регистре, в результате будут эти несколько записей. Если нужно только 10 записей в результате, тогда на последнем запросе ставьте ограничение.

Фраза "Не работает" - ни о чем. Это как написать: "у меня ошибка" без дополнительной информации. Запрос работает, но не выдает то, что вам нужно. Можно отлаживать по частям. Консоль запросов позволяет вывести содержимое временных таблиц.
Выводит больше 10 записей, попробовал поставить ограничение т.е ППЕРВЫЕ 10 на последний запрос всеравно больше 10 записей выводит

ilyay

Откройте текст запроса в конструкторе и нажмите ок. Если конструкция Первые осталась, значит она допустима.
Опубликуйте текст запроса, который выполняете в консоли и результат его выполнения, который не менее 10 строк.

Dmitry Qwe

из-за вот этих строк невозможно запрос запустить как с помощью конструктора так и в консоли

ГДЕ " +
        ?(ЗначениеЗаполнено(ОргПодразделение),"   СотрудникиПодразделений.ОргПодразделение = &ОргПодр
        И СотрудникиПодразделений.Дата <= &Дата
        И (СотрудникиПодразделений.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                    ИЛИ СотрудникиПодразделений.ДатаОкончания > &Дата) ", " 1=1 ") + "



Без участия этих строк в консоли запросов выводится не больше 10 записей

ilyay

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

Dmitry Qwe

Цитата: ilyay от 08 ноя 2017, 11:56
В отладке встаньте на строку Запрос.Выполнить(). Из переменной Запрос.Текст возьмите текст запроса.
Сделал как вы сказали, в консоли все работает, не больше 10 записей, а в интерфейсе по факту выводит больше 10

ilyay

У вас там динамический список? Тогда можно заменить его табличным документом.

Dmitry Qwe

Все работает, спасибо, это уже у меня дальше по коду траблы шли

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск