Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Другие решения на платформе "1С:Предприятие 8"]

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

Klishin Vladisalv
читатель
офлайн
Дата регистрации: 18.01.2016
Сообщений: 1
Пост №1
 
18.01.2016 11:56

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

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


Моя попытка:

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

Которая выдает ошибку при обработки события.

Ответили: пост №2
Петров-В
читатель
офлайн
Дата регистрации: 23.01.2011
Сообщений: 581
Пост №2
 
19.01.2016 13:54
Ответ на пост №1

Klishin Vladisalv,

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

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

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

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №3
 
19.01.2016 15:50

Цитата
ИМЕЮЩИЕ
| КОЛИЧЕСТВО(ВременнаяТаблица.НомерСтроки) > 1";
Если в таблице одна строка, то запрос ничего не вернет. И, как бы, для того что бы узнать сколько строк в ТЗ ее не обязательно пихать в запрос. Там есть готовый метод для этого объекта.

Ответили: пост №4
Петров-В
читатель
офлайн
Дата регистрации: 23.01.2011
Сообщений: 581
Пост №4
 
19.01.2016 16:47
Ответ на пост №3

Денис (САМАРА),
Вопрос был про повторяющиеся строки, см. жирный текст в первом посте

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация