Имя: Пароль:
1C
 
Одинаковые Строки
0 Sofia
 
22.06.09
11:50
как в цикле найти одинаковые строки, а затем свернуть их???

ТоварыИзТекущегоДок - Табличная Часть из документа

Для Каждого СтрТЧ Из ТоварыИзТекущегоДок Цикл
   ///если есть одинаковые строки(по номенкалтуре, хар-ке ном-ры и ед.измерения)
   Пропустить;
Иначе
   .....//здесь уже мои заморочки

как то так хотелось бы...(((
1 Stepa86
 
22.06.09
11:51
Табличная часть
Свернуть (GroupBy)
Синтаксис:
Свернуть(<Колонки группировок>, <Колонки суммирования>)
Параметры:
<Колонки группировок> (обязательный)
Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо группировать строки табличного поля.
<Колонки суммирования> (необязательный)
Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках табличного поля.
Описание:
Осуществляет свертку табличной части по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
Важно! Оба списка колонок должны покрывать всю табличную часть. Списки колонок не должны пересекаться.
Примечание:
Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.
Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них есть тип Число то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке.
Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения.
Пример:
Состав.Свернуть("Номенклатура", "Количество, Сумма, Всего");

(с) СП
2 Sofia
 
22.06.09
11:52
про свернуть я знаю...а как в цикле найти строки например с одинаковыми номенклатурами
3 IronDemon
 
22.06.09
11:52
4 Sofia
 
22.06.09
11:53
меня интерессует только это:
Для Каждого СтрТЧ Из ТоварыИзТекущегоДок Цикл
   ///если есть строки с одинаковыми:(номенкалтурой, хар-кой ном-ры и ед.измерения)

   Пропустить;
5 Ненавижу 1С
 
гуру
22.06.09
11:55
(2)
Для й=0 По ТЗ.Количество()-1 Цикл
 Для к=й+1 По ТЗ.Количество()-1 Цикл
   Если ТЗ[й].Номенклатура = ТЗ[к].Номенклатура Тогда
     //эти строки равны
6 Sofia
 
22.06.09
11:55
по реквизитам получается делать?
что  то типа Функция СтрокиРавны(Строка1, Строка2)
  Результат = Истина;
  Реквизиты = Метаданные.Документы.ТвойДокумент.ТабличныеЧасти.ТвояТабличнаяЧасть.Реквизиты;
  Для каждого Реквизит из Реквизиты Цикл
     Имя = Реквизит.Имя;
     Если Строка1[Имя] <> Строка2[Имя] Тогда
        Результат = Ложь;
        Прервать;
     КонецЕсли;
  КонецЦикла;
  Возврат Результат;
УонецФункции;
7 zbv
 
22.06.09
11:56
(4) свернуть, если количество до сворачивания и после не совпадают, то есть строки с одинаковыми параметрами.

если интересно знать какие позиции, то ИМХО проще запрос прикрутить...
8 Salvador Limones
 
22.06.09
11:59
ВыборкаПоТЧ = Результат.Выбрать(); //Здесь результат запроса к твоей ТЧ ТоварыИзТекущегоДок
   
   Для каждого СтрокаНабора Из ТоварыИзТекущегоДок Цикл
       СтруктураНомХарЕд = Новый Структура;
       СтруктураНомХарЕд.Вставить("Номенклатура", СтрокаНабора.Номенклатура;
       СтруктураНомХарЕд.Вставить("Характеристика", СтрокаНабора.Характеристика;
       СтруктураНомХарЕд.Вставить("ЕдИзм", СтрокаНабора.ЕдИзм;
       ВыборкаПоТЧ.Сбросить();
       Если ВыборкаПоТЧ.НайтиСледующий(СтруктураНомХарЕд) Тогда
            ....
        Иначе
            ....
       КонецЕсли;


Ад кромешный!
9 Михаил Козлов
 
22.06.09
12:01
Может так: выгрузить в ТЗ, упорядочить, пройтись в цикле 1 раз.
10 Murzz
 
22.06.09
12:08
НайтиСтроки(<Параметры отбора>) Подойдет?
11 Murzz
 
22.06.09
12:09
* если в возвращеном массиве >1 элемента - значит есть повторяющиеся строки
12 Stepa86
 
22.06.09
12:11
если после свертки оказалось, что есть дуюди, то отсортировать по 3м полям и упрощенный (5)
13 Sofia
 
22.06.09
12:13
Номенклатура же содержит ссылку на элемент справочника. Вот по ним можешь искать?
14 Sofia
 
22.06.09
12:40
Ненавижу 1С , ты был прав!спасибо))