Как правильно сделать запрос и получить количество повторяющихся элементов в таблице (временная)?
18.01.2016
11:56
#1
у меня есть обработка с табличной частью документа. Табличная часть включает в себя два реквизита
- НомерСтроки
- СтрокаТабЧасти
СтрокаТабЧасти заполняется символами рандомно.
Мне нужно вывести все повторяющиеся элементы в таблице с помощью запроса:
Моя попытка:
Которая выдает ошибку при обработки события.
- НомерСтроки
- СтрокаТабЧасти
СтрокаТабЧасти заполняется символами рандомно.
Мне нужно вывести все повторяющиеся элементы в таблице с помощью запроса:
Моя попытка:
| Код |
|---|
МенВрТаб = Новый МенеджерВременныхТаблиц;
Макет = Обработки.ПроизвольнаяОбработка.ПолучитьМакет("Макет");
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенВрТаб;
Запрос.Текст =
"ВЫБРАТЬ
| СтрокаТабЧасти,
| НомерСтроки
|ПОМЕСТИТЬ
| ВременнаяТаблица
|ИЗ
| &ТабличнаяЧасть КАК ТабличнаяЧасть;
|ВЫБРАТЬ
| СтрокаТабЧасти,
| КОЛИЧЕСТВО(НомерСтроки)
|ИЗ
| ВременнаяТаблица КАК ВременнаяТаблица
| СГРУППИРОВАТЬ ПО
| СтрокаТабЧасти";
Запрос.УстановитьПараметр("ТабличнаяЧасть",Объект.ТабЧасть.Выгрузить());
РезультатЗапроса = Запрос.Выполнить(); |
Которая выдает ошибку при обработки события.
Ответили:
пост #2
19.01.2016
13:54
#2
Ответ на
пост №1
Klishin Vladisalv, Какую ошибку выдает? Все должны запускать эту обработку и проверять?
Зачем тип строки неограниченной длины? Приходится писать ВЫРАЗИТЬ.
Вставь мой текст в начало своей процедуры и проверь. Двойников только не забудь сделать сначала.
| Код |
|---|
//МенВрТаб = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
//Запрос.МенеджерВременныхТаблиц = МенВрТаб;
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТабличнаяЧасть.СтрокаТабЧасти КАК СТРОКА(1000)) КАК СтрокаТабЧасти,
| ТабличнаяЧасть.НомерСтроки КАК НомерСтроки
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| &ТабличнаяЧасть КАК ТабличнаяЧасть
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВременнаяТаблица.СтрокаТабЧасти,
| КОЛИЧЕСТВО(ВременнаяТаблица.НомерСтроки) КАК КоличествоСтрок
|ИЗ
| ВременнаяТаблица КАК ВременнаяТаблица
|
|СГРУППИРОВАТЬ ПО
| ВременнаяТаблица.СтрокаТабЧасти
|
|ИМЕЮЩИЕ
| КОЛИЧЕСТВО(ВременнаяТаблица.НомерСтроки) > 1";
Запрос.УстановитьПараметр("ТабличнаяЧасть",Объект.ТабЧасть.Выгрузить());
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("" + СокрЛП(Выборка.СтрокаТабЧасти) + " - " + Выборка.КоличествоСтрок);
КонецЦикла;
Возврат;
|
Читают тему
(гостей: 1)