Имя: Пароль:
1C
1С v8
Работа с таблицей значений
0 Filipp_1987
 
26.11.16
00:57
Знатоки подскажите, как составить код чтобы из ТЗ определить по периоду (применяется с)есть несколько одинаковых периодов с одним и тем же регистратором и удалить строку с меньшей суммой.

Пример картинки:https://yadi.sk/i/i_jbeC-CzV627
1 Vladal
 
26.11.16
01:45
Как вариант:

ТЗ.Сортировать("Период, Регистратор, Сумма");
2 Web00001
 
26.11.16
05:42
+(1)Потом перебирать строки и если период или регистратор изменился, запомнить в отдельном массиве строку которую надо удалить. После чего удалить все строки которые есть в массиве. Есть еще варианты, но это вроде как самый простой.
3 craxx
 
26.11.16
05:48
(0) Загрузить в запросе из Тз во временную таблицу, обработать, выгрузить результат запроса в ТЗ
4 kosts
 
26.11.16
09:25
Выгрузить в новую ТЗ, только колонки "Период, Регистратор".
Свернуть эту ТЗ.
В цикле этой ТЗ, найти строки из первой ТЗ и в цикле по найденным строкам искать минимальный.

Всего примерно в 15 строк можно наверное уложиться.
5 kosts
 
26.11.16
09:26
Запросом найти еще легче, да и предпочтительнее, так как данные в базе уже лежат. Запрос должен вернуть список строк подлежащих удалению.
6 Filipp_1987
 
26.11.16
10:29
Спасибо
7 SleepyHead
 
гуру
26.11.16
14:45
ТЗ.найтиСтроки()
8 craxx
 
26.11.16
14:48
(7) такое точно не подойдет
9 SleepyHead
 
гуру
26.11.16
14:50
(8) Почему? В (0) написано, что есть одинаковые периоды. искать строки с одинаковыми периодам, помещать в массив методом найтистроки, определить, у какой строки минимальная сумма и удалить ее.
10 SleepyHead
 
гуру
26.11.16
14:51
Хотя да, неизвестно же, какие периоды и регистарторы искать, чет я тупанул :)
11 craxx
 
26.11.16
16:20
(4) по скорости запросом быстрее
12 Serginio1
 
26.11.16
16:30
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой