|
Несколько запросов в одной процедуре (работает только первый) | ☑ | ||
---|---|---|---|---|
0
capllary
12.09.14
✎
12:53
|
Не могу понять почему из 3 запросов формируется только один:
ТекстЗапроса1 = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.Субконто1 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто1 = &НоменклатурнаяГруппа) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(СуммаОборотКт) |ПО | ОБЩИЕ"; ТекстЗапроса2 = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.Субконто2 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто2 = &НоменклатурнаяГруппа) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(СуммаОборотКт) |ПО | ОБЩИЕ"; ТекстЗапроса3 = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто3 = &НоменклатурнаяГруппа) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(СуммаОборотКт) |ПО | ОБЩИЕ"; Субконто1 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("Счет90", Счет90_01); Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Субконто1); Запрос.Текст = ТекстЗапроса1; РезультатЗапроса1 = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса1.Следующий() Цикл ОбластьДоходы.Параметры.Д21 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса1.СуммаОборотКт); КонецЦикла; Субконто2 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000006"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("Счет90", Счет90_01); Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Субконто2); Запрос.Текст = ТекстЗапроса2; РезультатЗапроса2 = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса2.Следующий() Цикл ОбластьДоходы.Параметры.Д22 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса2.СуммаОборотКт); КонецЦикла; Субконто3 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000002"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("Счет90", Счет90_01); Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Субконто3); Запрос.Текст = ТекстЗапроса3; РезультатЗапроса3 = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса3.Следующий() Цикл ОбластьДоходы.Параметры.Д23 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса3.СуммаОборотКт); КонецЦикла; |
|||
1
mikecool
12.09.14
✎
12:57
|
как проверял, что не работают?
|
|||
2
capllary
12.09.14
✎
12:58
|
Есть макет на который все данные выводятся.
Вот полная процедура: Процедура Отчет(ТабДок, КонПериода, НачПериода, Организация) Экспорт Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет"); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьДоходы = Макет.ПолучитьОбласть("Доходы"); ПС = ПланыСчетов["Хозрасчетный"]; Счет90_01 = ПС.НайтиПоКоду("90.01"); мБухИтоги = Обработки.БухгалтерскиеИтоги.Создать(); мДатаКонцаПериодаПрошлогоГода = КонецМесяца(КонПериода); мДатаНачалаПериодаПрошлогоГода = НачалоМесяца(НачПериода); Итоги = "КонечныйОстатокДт, ОборотДт, ОборотКт, КорОборотДт"; СписокНоменклатурныхГрупп = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); мБухИтоги.РассчитатьИтоги("Хозрасчетный", Итоги, "Сумма", "Счет", мДатаНачалаПериодаПрошлогоГода, мДатаКонцаПериодаПрошлогоГода, , , ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы, , , , ); ТекстЗапроса1 = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.Субконто1 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто1 = &НоменклатурнаяГруппа) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(СуммаОборотКт) |ПО | ОБЩИЕ"; ТекстЗапроса2 = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.Субконто2 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто2 = &НоменклатурнаяГруппа) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(СуммаОборотКт) |ПО | ОБЩИЕ"; ТекстЗапроса3 = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто3 = &НоменклатурнаяГруппа) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(СуммаОборотКт) |ПО | ОБЩИЕ"; Субконто1 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("Счет90", Счет90_01); Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Субконто1); Запрос.Текст = ТекстЗапроса1; РезультатЗапроса1 = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса1.Следующий() Цикл ОбластьДоходы.Параметры.Д21 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса1.СуммаОборотКт); КонецЦикла; Субконто2 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000006"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("Счет90", Счет90_01); Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Субконто2); Запрос.Текст = ТекстЗапроса2; РезультатЗапроса2 = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса2.Следующий() Цикл ОбластьДоходы.Параметры.Д22 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса2.СуммаОборотКт); КонецЦикла; Субконто3 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000002"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("Счет90", Счет90_01); Запрос.УстановитьПараметр("НоменклатурнаяГруппа", Субконто3); Запрос.Текст = ТекстЗапроса3; РезультатЗапроса3 = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса3.Следующий() Цикл ОбластьДоходы.Параметры.Д23 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса3.СуммаОборотКт); КонецЦикла; ОбластьДоходы.Параметры.Квартал = ПредставлениеПериода(НачалоДня(НачПериода), КонецДня(КонПериода), "ФП = Истина" ); //ОбластьДоходы.Параметры.Д21 = КО(Счет90_01); //ОбластьДоходы.Параметры.Д23 = КО(Счет90_01) / 1000 * 18; //ОбластьДоходы.Параметры.Д21 = ""; //ОбластьДоходы.Параметры.Д21 = ""; ОбластьРасходы = Макет.ПолучитьОбласть("Расходы"); ОбластьРасходы.Параметры.Квартал = ПредставлениеПериода(НачалоДня(НачПериода), КонецДня(КонПериода), "ФП = Истина" ); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьДоходы); ТабДок.Вывести(ОбластьРасходы); ТабДок.Вывести(ОбластьПодвал); КонецПроцедуры |
|||
3
capllary
12.09.14
✎
13:00
|
Такое ощущение что запросы (второй и третий) просто не выполняются.
|
|||
4
chelentano
12.09.14
✎
13:02
|
(3) а может без ощущений, зато с отладчиком?
|
|||
5
capllary
12.09.14
✎
13:04
|
(4) Буду пробовать.
|
|||
6
LionHeart_spg
12.09.14
✎
13:05
|
Сколько субсчетов у счета Счет90_01 ?
|
|||
7
drcrasher
12.09.14
✎
13:06
|
Если ты трижды создаёшь "Запрос", то и делай Запрос1, Запрос2 и Запрос3.
|
|||
8
alle68
12.09.14
✎
13:06
|
(3) Все субконто "НомГр"???
|
|||
9
13_Mult
12.09.14
✎
13:06
|
ТабДок <> Макет ?
|
|||
10
Зойч
12.09.14
✎
13:07
|
а что у 90счет все 3 субконто номенклатурные группы?
|
|||
11
capllary
12.09.14
✎
13:10
|
(6) 2 - 90.01.1 и 90.01.2
|
|||
12
capllary
12.09.14
✎
13:11
|
(10) Мне просто нужно заполнить 3 ячейки данными оборотов 90.01 счета с фильтром по номенклатурным группам.
|
|||
13
KishMish
12.09.14
✎
13:11
|
Пока РезультатЗапроса3.Следующий() Цикл
ОбластьДоходы.Параметры.Д23 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса3.СуммаОборотКт); КонецЦикла; идругие а где вывод этой областей в таблицу? |
|||
14
capllary
12.09.14
✎
13:12
|
(13) Т.е. после каждого Цикла надо вставить ТабДок.Вывести(ОбластьДоходы);
|
|||
15
capllary
12.09.14
✎
13:14
|
(13) Это вопрос.
|
|||
16
capllary
12.09.14
✎
13:16
|
Либо же как оставить один запрос, первый, и указать для каждой ячейки вывод оборотов именно по определенной номенклатурной группе?
В этой строке: ОбластьДоходы.Параметры.Д21 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса1.СуммаОборотКт); |
|||
17
alle68
12.09.14
✎
13:17
|
(15) Вопрос это (8) и (10). Они же и ответ.
|
|||
18
capllary
12.09.14
✎
14:55
|
Парни, цель такая - сделать:
ОбластьДоходы.Параметры.Д21 - было сумма оборотов номенклатурной группы с кодом 000000001 ОбластьДоходы.Параметры.Д22 - было сумма оборотов номенклатурной группы с кодом 000000006 ОбластьДоходы.Параметры.Д23 - было сумма оборотов номенклатурной группы с кодом 000000002 |
|||
19
capllary
12.09.14
✎
14:57
|
(17) Да, в моей процедуре 3 субконто Номенклатурная группа у счета 90.01 (не факт что это правильно, скорее наоборот).
Просто не знаю, как в трех запросах указать отбор по разным Номенклатурным группам в субконто счета. |
|||
20
YFedor
12.09.14
✎
14:59
|
(19) оператор ВЫБОР и три Суммы
|
|||
21
capllary
12.09.14
✎
15:10
|
Так?
"ВЫБРАТЬ | ВЫБОР &НоменклатурнаяГруппа | КОГДА 1 | ТОГДА НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"), | КОГДА 2 | ТОГДА НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000006"), | КОГДА 3 | ТОГДА НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000002"), | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.Субконто1 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто1 = &НоменклатурнаяГруппа) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ | СУММА(СуммаОборотКт) |ПО | ОБЩИЕ"; |
|||
22
capllary
12.09.14
✎
15:12
|
(20) А как вот здесь пропись правильные режимы, когда 1, а когда 2 или 3.
Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий() Цикл ОбластьДоходы.Параметры.Д21 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса.СуммаОборотКт); КонецЦикла; |
|||
23
capllary
12.09.14
✎
15:57
|
Кстати, с праздником всех кто помогал!!!
|
|||
24
IKSparrow
12.09.14
✎
16:12
|
Может лучше на СКД? На фига этот онанизм.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |