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

Использование временных таблиц в запросе

Автор HelloImNew, 17 окт 2023, 22:58

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

HelloImNew

LexaK, ОНО РАБОТАЕТ  :befhbt:

Это смешно, но правда же работает.
А как сделать по-другому - идей нет...

HelloImNew

А нет, все-таки не совсем корректно работает... Дату плановой отгрузки не везде верную подставляет(

Максим75

HelloImNew, странно.
ну ради чистоты эксперимента - выведите еще и саму ссылку, к ней примените тоже агрегатную функцию Минимум и посмотрите. может как раз когда несколько приходов в один день и дают такой результат. короче говоря посмотрите какой регистратор выводит и в нем дату посмотрите.

HelloImNew

Максим75, вот скрин для этой временной таблицы. Дата регистратора должна быть 15, а в ссылке - другой документ от 17.

Максим75

HelloImNew, а за 15 число есть вообще документ, в котором присутствует комод и шкаф?
просто номер 2 идет за 17 число, а какой номер приходной за 15 число?

antoneus

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

Максим75

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

или если документ вводился задним числом - то выдаст не его, а тот который был раньше введен, даже если дата будет больше? в самой ссылке ведь кодируется дата записи объекта в базу.

antoneus

Ну сам документ может быть создан позже (если я правильно понимаю, то в ссылку зашивается дата-время создания), а дата у него может быть выставлена раньше и наоборот.

Максим75

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

HelloImNew

Максим75, да, есть, у нее номер 3.

antoneus, так тоже делалось.

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

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладе.Номенклатура
;

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

Это имеется ввиду? Так он из таблицы остатки и обороты берет слишком мало данных. И тут тоже присутствует Регистратор в параметрах, о котором говорили раньше.

Цитироватьили если документ вводился задним числом - то выдаст не его, а тот который был раньше введен, даже если дата будет больше? в самой ссылке ведь кодируется дата записи объекта в базу.
Судя по результату, именно так.

Теги:

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

Рейтинг@Mail.ru

Поиск