Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Результат.Пустой() выдает "ложь" вместо "Истина"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
bilateral
Есть запрос:
ВЫБРАТЬ
    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
    РасходнаяНакладнаяСписокНоменклатуры.Количество,
    РасходнаяНакладнаяСписокНоменклатуры.Сумма
ПОМЕСТИТЬ СписокНоменклатурыДляСписания
ИЗ
    Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
    РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
    РасходнаяНакладнаяСписокНоменклатуры.Количество,
    РасходнаяНакладнаяСписокНоменклатуры.Сумма

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    УправленческийОстаткиЦены.Субконто1 КАК Номенклатура,
    УправленческийОстаткиЦены.Субконто2 КАК СрокГодности,
    УправленческийОстаткиЦены.Субконто3 КАК Цена,
    СписокНоменклатурыДляСписания.Количество КАК КоличествоСписания,
    ЕСТЬNULL(УправленческийОстаткиЦены.КоличествоОстатокДт, 0) КАК ИмеющеесяКоличествоЦена,
    ЕСТЬNULL(УправленческийОстаткиСроки.СуммаОстатокДт, 0) КАК СуммаСрок,
    ЕСТЬNULL(УправленческийОстаткиСроки.КоличествоОстатокДт, 0) КАК ИмеющеесяКоличествоСрок
ИЗ
    СписокНоменклатурыДляСписания КАК СписокНоменклатурыДляСписания
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
                &Момент,
                Счет = &Счет,
                &ВидыСубконто,
                Субконто1 В
                    (ВЫБРАТЬ
                        СписокНоменклатурыДляСписания.Номенклатура
                    ИЗ
                        СписокНоменклатурыДляСписания КАК СписокНоменклатурыДляСписания)) КАК УправленческийОстаткиЦены
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
                    &Момент,
                    Счет = &Счет,
                    &ВидыСубконто,
                    Субконто1 В
                        (ВЫБРАТЬ
                            СписокНоменклатурыДляСписания.Номенклатура
                        ИЗ
                            СписокНоменклатурыДляСписания КАК СписокНоменклатурыДляСписания)) КАК УправленческийОстаткиСроки
            ПО УправленческийОстаткиЦены.Субконто1 = УправленческийОстаткиСроки.Субконто1
                И УправленческийОстаткиЦены.Субконто2 = УправленческийОстаткиСроки.Субконто2
        ПО СписокНоменклатурыДляСписания.Номенклатура = УправленческийОстаткиЦены.Субконто1

УПОРЯДОЧИТЬ ПО
    УправленческийОстаткиЦены.Субконто2.ГоденДо,
    УправленческийОстаткиЦены.Субконто3.Цена УБЫВ
ИТОГИ
    МАКСИМУМ(КоличествоСписания),
    СУММА(ИмеющеесяКоличествоЦена),
    МАКСИМУМ(СуммаСрок),
    МАКСИМУМ(ИмеющеесяКоличествоСрок)
ПО
    Номенклатура,
    СрокГодности

              ВидыСубконто = Новый Массив;
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности);
    ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Цена);
    Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
    
    Запрос.УстановитьПараметр("Момент", МоментВремени());
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("Счет", ПланыСчетов.Управленческий.Товары);

Запрос.Выполнить().Пустой()
пишет ложь

хотя

Запрос.Выполнить().Выгрузить.Количество() = 0


В чем дело может быть ? sad.gif первый раз такое
Vofka
Попробуйте кеш почистить
bilateral
Вопрос снят, тайна раскрыта. Т.К. запрос из двух частей, в первой части выбираются товары из расходной, а в ней (в этой самой) расходной они есть, то и в первом пакете есть записи, а уже в результирующем запросе ничего не происходит, т.к. товара нет такого в остатках. Вот и получается, что

Запрос.Выполнить().Пустой() = Ложь


а

Запрос.Выполнить().Выгрузить().Количество = 0



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

Да, все таки стоит вначале в консоли посмотреть, а потом спрашивать sad.gif Отладчик + консоль = Сила
logist
Цитата(bilateral @ 16.08.12, 12:32) необходимо зарегистрироваться для просмотра ссылки
В результате всем предлагаю перед Выборкой проверять именно на количество строк в результирующем запросе.

ото всем больше делать нечего))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.