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

Запрос с временной таблицей для определения наличия подчиненных

Автор blade_snl, 11 ноя 2021, 19:27

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

blade_snl

Создал форму выбора с динамическим списком. Вот текст запроса, который его формирует:

ВЫБРАТЬ
Склады.Родитель КАК Родитель
ПОМЕСТИТЬ СкладыСПодчиненными
ИЗ
Справочник.СтруктурныеЕдиницы КАК Склады
ГДЕ
НЕ Склады.Родитель = ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка)

СГРУППИРОВАТЬ ПО
Склады.Родитель
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СправочникСтруктурныеЕдиницы.Ссылка КАК Ссылка,
СправочникСтруктурныеЕдиницы.Родитель КАК Родитель,
СправочникСтруктурныеЕдиницы.Наименование КАК Наименование,
СправочникСтруктурныеЕдиницы.Предопределенный КАК Предопределенный,
СправочникСтруктурныеЕдиницы.Ссылка В (СкладыСПодчиненными.Родитель) КАК ЕстьПодчиненные
ИЗ 
Справочник.СтруктурныеЕдиницы КАК СправочникСтруктурныеЕдиницы
ЛЕВОЕ СОЕДИНЕНИЕ СкладыСПодчиненными КАК СкладыСПодчиненными
ПО СкладыСПодчиненными.Родитель = СправочникСтруктурныеЕдиницы.Ссылка

суть в том, что мне нужно поле, в котором будет показано, есть ли у данного склада подчиненные склады или нет.
в консольке все отлично работает, но в Динамическом списке выдает по всем строкам значение "Ложь"...

не подскажите, в чем может быть причина?

LexaK

blade_snl, если в консоли запрос выдает правильный результат, то и в запросе ДС тоже должен правильно отрабатывать
остается проверить саму форму со списком, проверьте колонку ЕстьПодчиенные - правильно ли она связана с данными?
лучше вообще удалить ее с формы и перевытащить из Списка по новой.
если помогло нажмите: Спасибо!

blade_snl

LexaK, перевытащил по-новой, не сработало.
и делаю по "останову" считывание данных - изначально показывает что запрос в список выдает данные неверно... прилагаю скрины "по останову" и "консольки"...
подскажите, в каком месте можно капнуть, поискать нестыковку

скрин по "останову":


скрин из консольки:


П.С.: такого мудреного, чтоб не выразиться хуже способа закидывания скрина на форум я еще нигде не встречал ((((

blade_snl

продолжаю ковырять пальцами...
урезал Запрос в Динамеческом списке до вида:

ВЫБРАТЬ
Склады.Родитель КАК Родитель
ИЗ
Справочник.СтруктурныеЕдиницы КАК Склады
ГДЕ
НЕ Склады.Родитель = ЗНАЧЕНИЕ(Справочник.СтруктурныеЕдиницы.ПустаяСсылка)

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

LexaK

blade_snl, попробуйте такой запрос в ДС
ВЫБРАТЬ Различные
    Склады.Родитель КАК Родитель
ПОМЕСТИТЬ СкладыСПодчиненными
ИЗ
    Справочник.СтруктурныеЕдиницы КАК Склады
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СправочникСтруктурныеЕдиницы.Ссылка КАК Ссылка,
    СправочникСтруктурныеЕдиницы.Родитель КАК Родитель,
    СправочникСтруктурныеЕдиницы.Наименование КАК Наименование,
    СправочникСтруктурныеЕдиницы.Предопределенный КАК Предопределенный,
    СкладыСПодчиненными.Родитель Есть Не Null КАК ЕстьПодчиненные
ИЗ 
    Справочник.СтруктурныеЕдиницы КАК СправочникСтруктурныеЕдиницы
    ЛЕВОЕ СОЕДИНЕНИЕ СкладыСПодчиненными КАК СкладыСПодчиненными
        ПО СкладыСПодчиненными.Родитель = СправочникСтруктурныеЕдиницы.Ссылка
если помогло нажмите: Спасибо!

blade_snl

LexaK, ЗАпрос сработал! УРА!

но есть небольшое "НО"...
несмотря на то, что в свойствах Списка "НачальноеОтображениеДерева" стоит "Раскрывать все уровни" - всеравно показывает только верхний уровень. Это раз.
Второе: когда я раскрываю склад, где есть подчиненные - у меня показывает только его и подчиненных, остальные склады прячутся...

LexaK

blade_snl, скорее всего на форме срабатывает какой то обработчик (при выборе или активизации)
который программно влияет на Список  с ДС (напр. задает отбор), проверьте весь код формы, посмотрите все обработчики (отключите все лишнее)

для теста создайте новую обработку с новой формой, где будет ваш Список, поэксперементируйте на ней
если помогло нажмите: Спасибо!

blade_snl

LexaK, да! Пересоздал с нуля и все отобразилось как нужно! Очень благодарю за помощь.
а можешь подсказать, что именно косячило мне отображение? насколько я понимаю, проблема была в условии "ГДЕ"..? но почему?

blade_snl

стоп.
рано я обрадовался... (((
поле "ЕстьПодчиненные" должно выдавать булево ИСТИНА на склады, где имеются подчиненные... но не выдает ((

LexaK

blade_snl, а итоговый запрос (дина.списка) какой получился?

Платформа?
режим совместимости?
если помогло нажмите: Спасибо!

Теги: Запрос 

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

Рейтинг@Mail.ru

Поиск