8.х Как правильно составить запрос для документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ТокаУчусь, 11 мар 2006.

  1. TopicStarter Overlay
    ТокаУчусь
    Online

    ТокаУчусь Гость Гость

    В документе по реализации надо списать партии.
    Составляю запрос, который на момент документа показывает какие остатки есть по партиям.
    Но еще хочу чтоб в этом же запросе было количество
    которое есть в строках документа.
    И чето не фига не выходит.
    Может это лучше не одним запросом делать, а двумя ?
    Как это вообще правильно сделать ?

    "ВЫБРАТЬ
    | Док_Реализация_Номенклатура.Номенклатура КАК Номенклатура,
    | Док_Реализация_Номенклатура.Количество,
    | Док_Реализация_Номенклатура.Цена,
    | Док_Реализация_Номенклатура.Сумма,
    | Док_Реализация_Номенклатура.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    | Рег_Себ.КоличествоОстаток КАК Остаток,
    | Рег_Себ.СебестоимостьОстаток КАК Себестоимость,
    | Рег_Себ.Подразделение КАК Подразделение,
    | Рег_Себ.Партия КАК Партия
    ИЗ
    | Документ.Реализация.Номенклатура КАК Док_Реализация_Номенклатура
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Себестоимость.Остатки (
    | &_МоментВремени,
    | Номенклатура В (&_СпНоменклатура)
    | И Подразделение = &_Подразделение )
    | КАК Рег_Себ
    | ПО (Док_Реализация_Номенклатура.Номенклатура = Рег_Себ.Номенклатура)
    |ГДЕ (
    | (Док_Реализация_Номенклатура.Ссылка = &_Ссылка)
    | И
    | (Док_Реализация_Номенклатура.Номенклатура.ВидНоменклатуры <> &_Услуга)
    | )
    |ДЛЯ ИЗМЕНЕНИЯ
    | РегистрНакопления.Себестоимость.Остатки
    |ИТОГИ
    | СУММА(Остаток),
    | СУММА(Себестоимость),
    | СУММА(Количество)
    |ПО
    | Номенклатура,
    | Подразделение,
    | Партия
  2. TopicStarter Overlay
    Гость
    Online

    Гость Гость Гость

    "ВЫБРАТЬ
    | ОстаткиНоменклатурыОстатки.Партия КАК Партия,
    | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
    | ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    | ЕСТЬNULL(ВложенныйЗапрос.Количество, 0) КАК Количество
    |ИЗ
    | (ВЫБРАТЬ
    | РасходнаяТовары.Номенклатура КАК Номенклатура,
    | СУММА(РасходнаяТовары.Количество) КАК Количество
    | ИЗ
    | Документ.Расходная.Товары КАК РасходнаяТовары
    | ГДЕ
    | РасходнаяТовары.Ссылка = &Ссылка
    |
    | СГРУППИРОВАТЬ ПО
    | РасходнаяТовары.Номенклатура) КАК ВложенныйЗапрос
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    | &МоментВремени,
    | Номенклатура В
    | (ВЫБРАТЬ РАЗЛИЧНЫЕ
    | РасходнаяТовары.Номенклатура
    | ИЗ
    | Документ.Расходная.Товары КАК РасходнаяТовары
    | ГДЕ
    | РасходнаяТовары.Ссылка = &Ссылка)) КАК ОстаткиНоменклатурыОстатки
    | ПО ВложенныйЗапрос.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
    |ДЛЯ ИЗМЕНЕНИЯ
    |
    |УПОРЯДОЧИТЬ ПО
    | Партия
    |ИТОГИ
    | СУММА(КоличествоОстаток),
    | СУММА(СуммаОстаток),
    | МАКСИМУМ(Количество)
    |ПО
    | Номенклатура";
  3. TopicStarter Overlay
    Гость
    Online

    Гость Гость Гость

    Затем обходишь запрос по группировкам т.е по Партиям и в каждой партии списываешь нужное количество товара.
    Результат будет примерно таким.


    Номенклатура1 количествоОст количествоСписаия Сумма
    ДокументПоступления1 количество Сумма
    ДокументПоступления2 количество Сумма
    ДокументПоступления3 количество Сумма
    Номенклатура2 количествоОст количествоСписаия Сумма
    ДокументПоступления1 количество Сумма
    ДокументПоступления2 количество Сумма
    ....
    ....
    Номенклатура3 количествоОст количествоСписаия Сумма

Поделиться этой страницей