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

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

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

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

vurdalak

Исправил.Выбираю организация в форме документа,нажимаю кнопку, пишет что нет такого поля. :(

progmikon


vurdalak


progmikon

Я запускаю ваш отчет - он работает

Проверьте еще раз кусок кода:

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

vurdalak

Заработало спасибо).Progmikon ,а можете написать как сделать так чтобы вывод макета не повторялся?

progmikon

Поясните, пожалуйста, что вы имеете ввиду?

vurdalak

Цитата: progmikon от 20 окт 2010, 19:12
Поясните, пожалуйста, что вы имеете ввиду?
Справка для расчета налога на прибыль за период                     
                     
                     
                     
                     
                  

vurdalak

Вот что он делает посмотрите,повторяет вывод всех надписей и вставляет туда значение.

progmikon

Это  происходит по тому, что вы несколько раз получаете область "Титул" и несколько раз ее выводите.

Выход в данном случае такой:
помещайте результат отчета в переменную, а в конце один раз выводите:

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




progmikon

Единственное, что хочу отметить: проверяйте эти переменные. Ведь может быть так, что запрос вернет нулевой результат и этой переменной просто не будет. Как одно из решений этой проблемы в начале определить эти переменные:
Перем ВсегоЗППоПП, СредсваВсегоПП;

Теги:

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

Рейтинг@Mail.ru

Поиск