Доброго времени суток, возникла такая задача:
надо в ТЗ посчитать количество строк с повторяемым полем, если бы делал обычный запрос и тд... просто включил группировку. и посчитал бы группы что то типа такого:
по факту порылся я в гугле, яндексе, нарыл инфу что надо сначала перебросить ТЗ во временную таблицу а потом с этой таблицей работать как со справочником, в итоге набрасал такой код:
как я понимаю данный запрос у меня должен выдать временную таблицу "ВременнаяТаблица" к которой я потом могу обратиться вторым запросом уже с группировкой
НО выскакивает ошибка:
Что не так? может как то по другому можно реализовать?
PS: УФ. в ТЗ данные добавляются разными запросами с разных источников, разными запросами....
надо в ТЗ посчитать количество строк с повторяемым полем, если бы делал обычный запрос и тд... просто включил группировку. и посчитал бы группы что то типа такого:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Сотрудник КАК Сотрудник
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Статус = &Статус
|
|СГРУППИРОВАТЬ ПО
| Номенклатура.Сотрудник";
Запрос.УстановитьПараметр("Статус", Отчет.Статус);
РЗ = Запрос.Выполнить();
Выборка = РЗ.Выбрать();
СтатистикаСотрудник = выборка.Количество();
Показатьпо факту порылся я в гугле, яндексе, нарыл инфу что надо сначала перебросить ТЗ во временную таблицу а потом с этой таблицей работать как со справочником, в итоге набрасал такой код:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТЗ.Сотрудник КАК Сотрудник,
| ТЗ.пп КАК пп,
| ТЗ.отдел КАК отдел,
| ТЗ.регистратор КАК регистратор,
| ТЗ.Дата КАК Дата,
| ТЗ.Комментарий КАК Комментарий
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| &ТЗ КАК ТЗ";
Запрос.УстановитьПараметр("ТЗ", Список);
Запрос.Выполнить();
Показатькак я понимаю данный запрос у меня должен выдать временную таблицу "ВременнаяТаблица" к которой я потом могу обратиться вторым запросом уже с группировкой
НО выскакивает ошибка:
{(10, 2)}: Неверные параметры "ТЗ"
<<?>>&ТЗ КАК ТЗ
Что не так? может как то по другому можно реализовать?
PS: УФ. в ТЗ данные добавляются разными запросами с разных источников, разными запросами....
По теме из базы знаний
- Объектная модель запроса "Схема запроса" - теория и примеры использования
- Объединение двух таблиц значений запросом, циклом
- Консоль запросов для УФ с возможностью передачи готовой ТЗ в качестве параметра
- Консоль запросов со встроенным Конструктором запросов для 1с8.3 (8.2) своими руками
- Решение некоторых задач с помощью "Отладчика запросов"
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Можно без запроса.
Что-то типо такого:
может как то по другому можно реализовать?
Можно без запроса.
Что-то типо такого:
ТабЗначенийОбщая = Список.Выгрузить();
КолонкиГруппировки = "Тут колонки через запятую";
ТабСвернутая = ТабЗначенийОбщая.Скопировать(,КолонкиГруппировки);
ТабСвернутая.Свернуть(КолонкиГруппировки);
ТабЗначенийОбщая.Индексы.Добавить(КолонкиГруппировки);
Для Каждого СтрТЧ Из ТабСвернутая Цикл
СтруктураПоиска = Новый Структура(КолонкиГруппировки);
ЗаполнитьЗначенияСвойств(СтруктураПоиска,СтрТЧ);
НайденныеСтроки = ТабЗначенийОбщая.НайтиСтроки(СтруктураПоиска);
КоличествоСтрок = НайденныеСтроки.Количество();
КонецЦикла;
Показать
Может развести имена параметра и источника:
Запрос.Текст =
"ВЫБРАТЬ
| ТЗ.Сотрудник КАК Сотрудник,
| ТЗ.пп КАК пп,
| ТЗ.отдел КАК отдел,
| ТЗ.регистратор КАК регистратор,
| ТЗ.Дата КАК Дата,
| ТЗ.Комментарий КАК Комментарий
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| &Список КАК ТЗ";
Запрос.УстановитьПараметр("Список", Список);
Запрос.Выполнить();
Показать
(5)
не помогло, та же ошибка
Запрос.Текст =
"ВЫБРАТЬ
| ТЗ.Сотрудник КАК Сотрудник,
| ТЗ.пп КАК пп,
| ТЗ.отдел КАК отдел,
| ТЗ.регистратор КАК регистратор,
| ТЗ.Дата КАК Дата,
| ТЗ.Комментарий КАК Комментарий
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| &Список КАК ТЗ";
Запрос.УстановитьПараметр("Список", Список);
Запрос.Выполнить();
Показать"ВЫБРАТЬ
| ТЗ.Сотрудник КАК Сотрудник,
| ТЗ.пп КАК пп,
| ТЗ.отдел КАК отдел,
| ТЗ.регистратор КАК регистратор,
| ТЗ.Дата КАК Дата,
| ТЗ.Комментарий КАК Комментарий
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| &Список КАК ТЗ";
Запрос.УстановитьПараметр("Список", Список);
Запрос.Выполнить();
не помогло, та же ошибка
продолжим :-)
в итоге получается такой код:
и ошибка
если из запроса убрать группировку, все работает...
тыкните как сделать что бы группировка работала
в итоге получается такой код:
функция СчитаемСотрудников ()
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| ТЗ.Сотрудник КАК Сотрудник,
| ТЗ.пп КАК пп,
| ТЗ.отдел КАК отдел,
| ТЗ.регистратор КАК регистратор,
| ТЗ.Дата КАК Дата,
| ТЗ.Комментарий КАК Комментарий
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| &Список КАК ТЗ";
Запрос.УстановитьПараметр("Список", Список.Выгрузить());
Запрос.Выполнить();
//========================================================== ==============
Запрос.Текст =
"ВЫБРАТЬ
| ВременнаяТаблица.Сотрудник КАК Сотрудник
|ИЗ
| ВременнаяТаблица КАК ВременнаяТаблица
|
|СГРУППИРОВАТЬ ПО
| ВременнаяТаблица.Сотрудник";
Выборка = Запрос.Выполнить().Выбрать();
возврат выборка.Количество();
конецФункции
Показатьи ошибка
{(7, 2)}: Недопустимое поле для группировки "Сотрудник"
<<?>>ВременнаяТаблица.Сотрудник
если из запроса убрать группировку, все работает...
тыкните как сделать что бы группировка работала
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот