![]() |
![]() |
|
Одинаковые Строки | ☑ | ||
---|---|---|---|---|
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С , ты был прав!спасибо))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |