Имя: Пароль:
1C
1С v8
Возр или Убыв в зависимости от учетной политики
0 Бюро пиявок
 
13.06.14
09:55
Учетная политика у меня в регистре сведений. Два метода: FIFO и LIFO.
Запрос сделал. Осталось его отсортировать по возрастанию или убыванию в зависимости от учетной политики. Возр или убыв у меня в первом пакетном запросе. А вот как воспользоваться этими данными - не знаю. Помогите, пожалуйста.

ВЫБРАТЬ
    ВЫБОР
        КОГДА
            Метод = "LIFO"
        ТОГДА
            "Возр"
        ИНАЧЕ
            "Убыв"
        КОНЕЦ КАК Метод

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

СГРУППИРОВАТЬ ПО
    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
;
ВЫБРАТЬ
    ИзДокумента.Номенклатура,
    Сумма(ИзДокумента.Количество),
    Остатки.Партия,
    Сумма(ЕСТЬNULL(Остатки.КоличествоОстаток, 0)) КАК Остаток
ИЗ
    ИзДокумента КАК ИзДокумента
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(&МоментВремени) КАК Остатки
ПО Остатки.Номенклатура = ИзДокумента.Номенклатура
СГРУППИРОВАТЬ по Партия, ИзДокумента.Номенклатура
УПОРЯДОЧИТЬ ПО Партия.Дата
1 sda553
 
13.06.14
10:00
В начале первый запрос, потом результат "ВОЗР" или "УБЫВ" в переменную, потом ее прямо добавить в конец текста второго запроса.
2 Бюро пиявок
 
13.06.14
10:15
Два запроса что-ли делать? За раз никак? Тогда такой вопрос - пакетный запрос и  два запроса одинаково обременяют систему или два запроса дороже?
3 sda553
 
13.06.14
10:22
(2) Я не вижу в этом запросе бизнес необходимости вычислять системные ресурсы.
Судя по его тексту это не тот запрос, который должен миллион раз в цикле отработать за оптимальное время.
4 Бюро пиявок
 
13.06.14
10:43
(3) Спасибо.
5 Фокусник
 
13.06.14
10:46
(3)+1 более того, в кеш результат загнать и считать его только 1 раз за сеанс ;)
6 shuhard
 
13.06.14
11:30
(2) [За раз никак] легко

ВЫБРАТЬ
    1 КАК Ключик,
    ВЫБОР
        КОГДА УчетнаяПолитикаСрезПоследних.СпособОценкиМПЗ = ЗНАЧЕНИЕ(Перечисление.СпособыОценки.ФИФО)
            ТОГДА Истина
        ИНАЧЕ Ложь
    КОНЕЦ КАК Сортер
ПОМЕСТИТЬ УП
ИЗ
    РегистрСведений.УчетнаяПолитика.СрезПоследних КАК УчетнаяПолитикаСрезПоследних
ГДЕ
    УчетнаяПолитикаСрезПоследних.СпособОценкиМПЗ = ЗНАЧЕНИЕ(Перечисление.СпособыОценки.ФИФО)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПартииТоваровНаСкладахОстатки.ДокументОприходования.Дата КАК ДатаОприходования,
    ПартииТоваровНаСкладахОстатки.Номенклатура,
    ПартииТоваровНаСкладахОстатки.КоличествоОстаток,
    1 КАК Ключик
ПОМЕСТИТЬ ПартииОстатки
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладахОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПартииОстатки.ДатаОприходования КАК ДатаОприходования
    ИЗ
    ПартииОстатки КАК ПартииОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ УП КАК УП
        ПО ПартииОстатки.Ключик = УП.Ключик

УПОРЯДОЧИТЬ ПО
    ВЫБОР
        КОГДА Сортер=Истина
            ТОГДА  ДатаОприходования
        ИНАЧЕ РАЗНОСТЬДАТ(ПартииОстатки.ДатаОприходования, ДАТАВРЕМЯ(3000, 1, 1), ДЕНЬ)
    КОНЕЦ
7 Мимохожий Однако
 
13.06.14
11:43
ПолуОФФ: Прежде чем менять на ЛИФО, неплохо бы почитать актуальное законодательство на эту тему
8 Fragster
 
гуру
13.06.14
13:58
а я считал
Выбор когда &ФИФО Тогда РазностьДат(&ТекущаяДата,Дата,Секунда) Иначе РазностьДата(Дата, &ТекущаяДата, Секунда) КАК Порядок
9 Fragster
 
гуру
13.06.14
14:01
(7) фифо-лифо может быть не только в расчете СС, а, например, во внутренней логистике склада
10 Fragster
 
гуру
13.06.14
14:02
да и случай может быть не Ин-Аут, а просто некая сортировка
11 Черный бухгалтер
 
13.06.14
14:04
(0) СтрЗаменить в зависимости от учётной политики? Не?
Программист всегда исправляет последнюю ошибку.