Как правильно сделать запрос и получить количество повторяющихся элементов в таблице (временная)?

Новая тема
у меня есть обработка с табличной частью документа. Табличная часть включает в себя два реквизита
- НомерСтроки
- СтрокаТабЧасти

СтрокаТабЧасти заполняется символами рандомно.
Мне нужно вывести все повторяющиеся элементы в таблице с помощью запроса:


Моя попытка:
Код
МенВрТаб = Новый МенеджерВременныхТаблиц;               
      Макет = Обработки.ПроизвольнаяОбработка.ПолучитьМакет("Макет");      
      Запрос = Новый Запрос;
      Запрос.МенеджерВременныхТаблиц = МенВрТаб;
      Запрос.Текст = 
            "ВЫБРАТЬ 
            |  СтрокаТабЧасти,
            |  НомерСтроки 
            |ПОМЕСТИТЬ
            |  ВременнаяТаблица 
            |ИЗ 
            |  &ТабличнаяЧасть КАК ТабличнаяЧасть;
            |ВЫБРАТЬ 
            |  СтрокаТабЧасти,
            |  КОЛИЧЕСТВО(НомерСтроки)      
            |ИЗ 
            |  ВременнаяТаблица КАК ВременнаяТаблица
            |  СГРУППИРОВАТЬ ПО 
            |  СтрокаТабЧасти"; 
            
            
      Запрос.УстановитьПараметр("ТабличнаяЧасть",Объект.ТабЧасть.Выгрузить());      
      РезультатЗапроса = Запрос.Выполнить();

Которая выдает ошибку при обработки события.
Ответили: пост #2
Ответ на пост №1
Klishin Vladisalv,

Какую ошибку выдает? Все должны запускать эту обработку и проверять?
Зачем тип строки неограниченной длины? Приходится писать ВЫРАЗИТЬ.

Вставь мой текст в начало своей процедуры и проверь. Двойников только не забудь сделать сначала. :)

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

Быстрый переход