8.х Как в 1С 8 подсчитать количество строк с одинаковым значением

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем kladovoy, 3 мар 2007.

  1. TopicStarter Overlay
    kladovoy
    Offline

    kladovoy

    Регистрация:
    13 янв 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Как в 1С 8 подсчитать количество строк с одинаковым значением?


    При таком варианте считает все строки из табличного поля, а надо подсчитать только с одинаковым наименованием.
    Не могу сообразить, как правильно сделать.

    Код:
    Функция ПолучитьКоличествоСтрокПолосыПоШирине()
    Кол = 1;
    Кол1 = 0;
    СписокТабличноеПоле = ЭлементыФормы.ТабличноеПоле.Значение;
    КолСтрокТабличноеПоле = СписокТабличноеПоле.Количество();
    Для ТекЭлементСписокТабличноеПоле  = 0 По КолСтрокТабличноеПоле - 1 Цикл
    СписокСтрокТабПоле = ТаблицаЗнач[ТекЭлементСписокТабличноеПоле].КолонкаНаимен;
    Если  СписокСтрокТабПоле = "Клавиатура" Тогда
    Кол1 = ТекЭлементСписокТабличноеПоле  + Кол;
    КонецЕсли;
    КонецЦикла;
    Возврат Кол1;
    КонецФункции
    
  2. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    Если я правильно понял, то надо посчитать количество строк в документе, наименование которых равно "Клавиатура"?

    Код:
    Функция ПолучитьКоличествоСтрокПолосыПоШирине()
    Кол1 = 0;
    Для Каждого ТекущаяСтрока Из ЭлементыФормы.ТабличноеПоле Цикл 
    Если  ТекущаяСтрока.Значение = "Клавиатура" Тогда
    Кол1 = ТекЭлементСписокТабличноеПоле  + Кол;
    КонецЕсли;
    КонецЦикла;
    Возврат Кол1;
    КонецФункции
    
    хотя более правильный вариант наверно этот
    Код:
    Запрос.Текст = "ВЫБРАТЬ 
    |    КОЛИЧЕСТВО(Товары.Ссылка) КАК КоличествоПозиций 
    |ИЗ 
    |    Документ.Реализация.Товары КАК Товары 
    |ГДЕ 
    |    Товары.Наименование = &Знач 
    </span>
    Запрос.УстановитьПараметр("Знач", "Клавиатура"); 
    </FONT></FONT></pre>
  3. pho
    Offline

    pho

    Регистрация:
    24 дек 2006
    Сообщения:
    48
    Симпатии:
    0
    Баллы:
    1
    Код:
    
    Таб = ЭлементыФормы.ТабличноеПоле.Значение.Скопировать();  // тут не совсем уверен, но нужна копия твоей таблицы!
    
    Таб.Колонки.Добавить("Счетчик");
    Таб.ЗаполнитьЗначения(1, "Счетчик");
    Таб.Свернуть("Значение", "Счетчик");
    
    // всё, теперь у нас только уникальные значения с указанием количества повторений в колонке счетчик
    
    // например
    ИщемЗначение = "Клавиатура";
    Повторений = 0;
    стр = Таб.Найти(ИщемЗначение, "Значение")
    Если стр <> Неопределено Тогда
    Повторений = стр.Счетчик;
    КонецЕсли;
    Сообщть("Повторений: " + Повторений);
    
    
    
  4. TopicStarter Overlay
    kladovoy
    Offline

    kladovoy

    Регистрация:
    13 янв 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Большое всем спасибо!
  5. Deosfen
    Offline

    Deosfen Опытный в 1С

    Регистрация:
    6 фев 2007
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    надо еще сгруппировать по номенклатуре
  6. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    А зачем?
    Нам же не нужно перебирать позиции. Нам нужна только одна цифра "КОЛИЧЕСТВО".
  7. Deosfen
    Offline

    Deosfen Опытный в 1С

    Регистрация:
    6 фев 2007
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Я не внимательно прочел: "Как в 1С 8 подсчитать количество строк с одинаковым значением?" вы правы
Похожие темы
  1. Vektor8
    Ответов:
    3
    Просмотров:
    1.075
  2. PowerMan
    Ответов:
    2
    Просмотров:
    632
  3. FUX
    Ответов:
    3
    Просмотров:
    754
  4. orsk75
    Ответов:
    5
    Просмотров:
    292
  5. Vitaly
    Ответов:
    1
    Просмотров:
    642
Загрузка...

Поделиться этой страницей