A
alkinoos
Здравствуйте, имеем 1С 7.7
формирую маленький запрос
Перем Запрос, ТекстЗапроса, Таб;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с НачДата по КонДата;
|Спец = Справочник.Специальности.ТекущийЭлемент;
|ЗОП = Документ.ЗаявлениеОПриеме.ТекущийДокумент;
|Группировка Спец;
|Группировка ЗОП;
|";//}}ЗАПРОС
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
НомСтроки = 0;
Всего=0;
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
НомСтроки=НомСтроки+1;
Если Запрос.ЗОП.Специальность = Запрос.Спец.ТекущийЭлемент() Тогда Всего=Всего+1; КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЦикла;
Если убираю вторую группировку(и цикл вывода соответсвенно) - выводит список СПЕЦиальностей,
Меняю группировки местами в запросе - выводит документы (при наличии одной группировки)
НО почему когда группировки две(как в запросе выше) Запрос.Группировка(2) всегда равен 0 (неважно что я группирую)
Помогите, в чем проблема?
Другими словами если оставлю так
|Период с НачДата по КонДата;
|Спец = Справочник.Специальности.ТекущийЭлемент;
|ЗОП = Документ.ЗаявлениеОПриеме.ТекущийДокумент;
|Группировка Спец;
|";//}}ЗАПРОС
...
Пока Запрос.Группировка(1) = 1 Цикл
НомСтроки=НомСтроки+1;
// Если Запрос.ЗОП.Специальность = Запрос.Спец.ТекущийЭлемент() Тогда
// Всего=Всего+1; КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Тогда выводятся Специальности
И наоборот если так
|Период с НачДата по КонДата;
|Спец = Справочник.Специальности.ТекущийЭлемент;
|ЗОП = Документ.ЗаявлениеОПриеме.ТекущийДокумент;
|Группировка ЗОП;
|";//}}ЗАПРОС
...
Пока Запрос.Группировка(1) = 1 Цикл
НомСтроки=НомСтроки+1;
// Если Запрос.ЗОП.Специальность = Запрос.Спец.ТекущийЭлемент() Тогда
// Всего=Всего+1; КонецЕсли;
Таб.ВывестиСекцию("Строка"); // в строке таблицы выражение <Запрос.Спец>
КонецЦикла;
Выводятся (все) документы нужного типа
В документах есть несколько полей где могут быть указаны специальности,
так вот нужно чтобы выводилась сама специальность и подсчитывалось количество документов
в которых она встречается.
формирую маленький запрос
Перем Запрос, ТекстЗапроса, Таб;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с НачДата по КонДата;
|Спец = Справочник.Специальности.ТекущийЭлемент;
|ЗОП = Документ.ЗаявлениеОПриеме.ТекущийДокумент;
|Группировка Спец;
|Группировка ЗОП;
|";//}}ЗАПРОС
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
НомСтроки = 0;
Всего=0;
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
НомСтроки=НомСтроки+1;
Если Запрос.ЗОП.Специальность = Запрос.Спец.ТекущийЭлемент() Тогда Всего=Всего+1; КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЦикла;
Если убираю вторую группировку(и цикл вывода соответсвенно) - выводит список СПЕЦиальностей,
Меняю группировки местами в запросе - выводит документы (при наличии одной группировки)
НО почему когда группировки две(как в запросе выше) Запрос.Группировка(2) всегда равен 0 (неважно что я группирую)
Помогите, в чем проблема?
Другими словами если оставлю так
|Период с НачДата по КонДата;
|Спец = Справочник.Специальности.ТекущийЭлемент;
|ЗОП = Документ.ЗаявлениеОПриеме.ТекущийДокумент;
|Группировка Спец;
|";//}}ЗАПРОС
...
Пока Запрос.Группировка(1) = 1 Цикл
НомСтроки=НомСтроки+1;
// Если Запрос.ЗОП.Специальность = Запрос.Спец.ТекущийЭлемент() Тогда
// Всего=Всего+1; КонецЕсли;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Тогда выводятся Специальности
И наоборот если так
|Период с НачДата по КонДата;
|Спец = Справочник.Специальности.ТекущийЭлемент;
|ЗОП = Документ.ЗаявлениеОПриеме.ТекущийДокумент;
|Группировка ЗОП;
|";//}}ЗАПРОС
...
Пока Запрос.Группировка(1) = 1 Цикл
НомСтроки=НомСтроки+1;
// Если Запрос.ЗОП.Специальность = Запрос.Спец.ТекущийЭлемент() Тогда
// Всего=Всего+1; КонецЕсли;
Таб.ВывестиСекцию("Строка"); // в строке таблицы выражение <Запрос.Спец>
КонецЦикла;
Выводятся (все) документы нужного типа
В документах есть несколько полей где могут быть указаны специальности,
так вот нужно чтобы выводилась сама специальность и подсчитывалось количество документов
в которых она встречается.