Имя: Пароль:
1C
1С v8
выбрать записи с макс датой из ТЗ, остальные удалить
0 pilot_iv
 
28.12.12
10:29
Как можно,не используя временные таблицы, найти в таблице значений строки с одинаковыми значениями, но разной датой, выбрать строку с максимальной,с меньшими удалить. В результате посмотреть, чтоб остались строки с одной - максимальной датой, если есть строки с датой меньшей максимальной -удалить. Таблица значений генерируется внешней системой.
1 pilot_iv
 
28.12.12
10:30
т.е на первом шаге сравниваем строки - если все одинаково,оставляем с максимальной датой остальные удаляем.
2 Maxus43
 
28.12.12
10:31
а почему не используя ВТ? достаточно непростой алгоритм будет, а запросом пару раз тыкнуть мышкой. Группиировка по всем полям и Макс по дате
3 sidalexsandr
 
28.12.12
10:33
Свернуть (GroupBy)  

Синтаксис:  

Свернуть(<Колонки группировок>, <Колонки суммирования>)  

Параметры:  

<Колонки группировок> обязательный  

Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений.  

<Колонки суммирования> необязательный  

Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений.  

Описание:  

Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
4 Maxus43
 
28.12.12
10:34
(3) где макс дата? только суммирование же
5 pilot_iv
 
28.12.12
10:34
в вт придется типизировать кучу полей
6 Maxus43
 
28.12.12
10:35
(5) щас не типизированы? всем "строку" тип сделай, кроме даты
7 Maxus43
 
28.12.12
10:36
Или юзай (3), сворачивай по всем кроме даты.
Потом в цикле обходи ТЗ_Новая, юзай ТЗ.НайтиСтроки и из них выбирай дату и записывай в ТЗ_Новая
8 newfantom
 
28.12.12
10:41
Может, сортировать по дате
9 Gesperid
 
28.12.12
10:45
(0) сортируешь по значению и по дате, обходишь ТЗ в обратном порядке, по ходу удаляешь
10 pilot_iv
 
28.12.12
10:53
как это примерно должно в коде выглядеть (9)
11 Maxus43
 
28.12.12
10:56
(10) не прокатит так, тебе надо сравнить на все совпадающие колонки, чтоб понять дубль или нет, более правильно имхо (6)(7)
12 Gesperid
 
28.12.12
10:59
(11) он не сказал, что колонок со значением несколько, да и в этом случае решаемо
13 Maxus43
 
28.12.12
11:00
(12) говорил, и там их много что ппц, раз не хочет даже в ВТ сувать. Типизировать лень, а сравнивать кучу колонок с предыдущей записью ТЗ думаешь не лень будет?
14 Gesperid
 
28.12.12
11:02
(13) про ключевые поля слышал?
15 Maxus43
 
28.12.12
11:03
(14) я то слышал.
хз, пусть автор озвучит критерии номрально, я так понял что в (0) надо сравнивать абсолютно все столбцы, а дату только максимальную
16 Reset
 
28.12.12
11:05
Из озвученных условий я бы делал (9).
Простейший однопроходный цикл
17 Reset
 
28.12.12
11:05
Если столбцов несколько, это совершенно не затрудняет
18 Maxus43
 
28.12.12
11:06
(17) как будешь сравнивать с предыдущей строкой цикла? чтоб убрать дубль.
Мення бы не затруднило типизировать колонки вобще, и не изобретать велосипед
19 Reset
 
28.12.12
11:09
(18)
Меня бы не затруднило завести переменную для хранения предыдущей строки, и не изобретать велосипед
_Простейший_Цикл_
20 Reset
 
28.12.12
11:11
А если брать шире - то полученная автором таблица явно откуда-то получена (думаю из запроса). Вот такм заранее и отобрать как в (2)
21 Maxus43
 
28.12.12
11:11
(19) и потом сравнивать Если СтараяСтрока.Колонка1 = СтараяСтрока.Колонка1 И СтараяСтрока.Колонка2 = СтараяСтрока.Колонка2 И ... И СтараяСтрока.Колонка50 = СтараяСтрока.Колонка50 ?
22 Reset
 
28.12.12
11:11
(21) Да
23 Reset
 
28.12.12
11:12
(21) Ты тоже Если-ненавистник? :)
24 Maxus43
 
28.12.12
11:12
(22) неэстэтично на мой взгляд. запросы наше всё!
25 Reset
 
28.12.12
11:12
Долой язык 1С как класс ? :)
26 Maxus43
 
28.12.12
11:12
(23) да это номрально, если там не 82 сравнения
27 Gesperid
 
28.12.12
11:14
(21) ключевых полей, обычно, сильно меньше 50
28 Reset
 
28.12.12
11:15
(27) Если их больше или сравнимо, имхо нужно в консерватории править чтото, т.е. в алгоритме :)
29 Maxus43
 
28.12.12
11:15
(27) ждём автора, чего из пустого в порожнее)
в шаблонах есть даже конструкторы описания типов, Типизирование займёт мало времени
30 pilot_iv
 
28.12.12
12:22
всем спасибо, проблему решил фактически просто через сортировку и удаление записей с меньшей датой
31 pilot_iv
 
28.12.12
12:22
т. е сортирую, из 1 строки получаю макс дату, потом сравниваю все строки на нее и с меньшими убираю.
Программист всегда исправляет последнюю ошибку.