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

Как сделать разность двух запросов?

Автор vurdalak, 20 окт 2010, 02:39

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

progmikon

Цитата: vurdalak от 20 окт 2010, 16:02
А как выбрать в запросе субсчета?
Вы хотите их как параметр передать или получить по ним суммы?

Makifka

В ИЕРАРХИИ(&Счет)
или
ПланыСчетов.Хозрасчетный.НайтиПоКоду("01.01")

vurdalak

В ТЗ написано:
Основные средства считаются по среднемесячной остаточной стоимости - т.е. (СКД01-СКК02 на начало периода +на конец каждого месяца периода) / (кол-во месяцев периода+1)
Это означает по субсчетам или по простым счетам?

progmikon

Если следовать тексту ТЗ нужно по всей группе счетов, т.е. 01 и 02.

Makifka

В проводках используется только 01.01 и 02.01. Да, если вы работаете в типовой конфигурации, то точно по субсчетам. Субсчет 01.01 - это подсчет счета 01. Как правило, если у счета есть субсчет, то сам счет в проводках не учавствует.

Условие
СчетДт В ИЕРАРХИИ (&Счет) означает, что вы выбираете обороты по счету 01, который передается в параметре &Счет, включая субсчета

Makifka

Мне кажется согласно ТЗ, надо брать не обороты за период, а остатки на начало периода, считать разницу, потом остатки на конец периода, считать разницу. Суммировать их и затем делить на количество месяцев.

progmikon

Проверил на демке. Makifka права.
В данном случае нужно накладывать ограничения на счета через "В ИЕРАРХИИ".


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


Либо указывать конкретные счета, через "="

vurdalak

А можете кто нибудь дать ссылку на заполненную конфигурацию бухгалтерии?А то я проверить не могу работоспособность этой разности.

progmikon

А вы сделайте ручные проводки (документ "операции введенные вручную"). Например первая проводка
д 01.01 - к08.04 это мы приняли к учету ос и
д 20.01 - к 02.01 начислили амортизацию

vurdalak

А как из этого запроса вытащить значение разности?
ЗапросРазностьСчетов.Текст =
"ВЫБРАТЬ
|ОборотПо01.СуммаОборот КАК ОборотПо01,
|ОборотПо02.СуммаОборот КАК ОборотПо02,
|ЕСТЬNULL(ОборотПо01.СуммаОборот, 0) - ЕСТЬNULL(ОборотПо02.СуммаОборот, 0) КАК РазностьОборотов
|ИЗ
|РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , СчетДт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновныеСредства)), , , , Организация = &Организация) КАК ОборотПо01,
|РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , , , СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.АмортизацияОсновныхСредств)), , Организация = &Организация) КАК ОборотПо02
       |ВыборкаРазностьСчетов = ЗапросРазностьСчетов.Выполнить().Выбрать()" ;
ВыборкаРазностьСчетов = ЗапросОрганизация.Выполнить().Выбрать();

Пробовал:
Пока ВыборкаРазностьСчетов.Следующий() Цикл
   Титул = Макет.ПолучитьОбласть("Титул");
    Титул.Параметры.СредсваВсегоПП = ВыборкаРазностьСчетов.СуммаОборот;
   ТабДок.Вывести(Титул);
КонецЦикла;

То же значение наверное я что то не то вытаскиваю.

Теги:

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

Рейтинг@Mail.ru

Поиск