|
Знаю что много раз встречалось, но все же | ☑ | ||
---|---|---|---|---|
0
Oz11
31.08.11
✎
10:56
|
Объясните популярно, каким методом можно удалить одинаковые записи в таблице значений? (в таблице 3 колонки)
|
|||
1
Дикообразко
31.08.11
✎
10:56
|
свернуть/сгруппировать
|
|||
2
alex-pro
31.08.11
✎
10:58
|
Засунуть в запрос, вывести РАЗЛИЧНЫЕ )))
|
|||
3
Morphius
31.08.11
✎
10:58
|
(0) Думаю, это ни разу не встречалось. Потому что есть метод Свернуть()
|
|||
4
Morphius
31.08.11
✎
11:00
|
(2) Вариант;)
|
|||
5
Oz11
31.08.11
✎
11:01
|
Метод Свернуть не подходит, так как есть числовое значение, которое не нужно суммировать.
|
|||
6
Goggy
31.08.11
✎
11:02
|
а я выделюсь быдлокодом :)
Прочесать тз в циклами и удалить повторяющиеся элементы :) |
|||
7
Morphius
31.08.11
✎
11:03
|
(5)Ну так и не суммируй
|
|||
8
alex-pro
31.08.11
✎
11:27
|
Свернуть("Контрагент,Номенклатура,Сумма",);
|
|||
9
Oz11
31.08.11
✎
11:29
|
Сделал так как посоветовали, вроде все свернулось как нужно, но вот другая проблемка - при записи этого всего в Док.КорректировкаЗаписейРегистров ошибка что строка уже существует - вот ищу решение.
|
|||
10
John83
31.08.11
✎
11:49
|
как бы запись делает не только кор. записей
|
|||
11
Oz11
31.08.11
✎
11:54
|
отладчиком прохожусь - все ок. все сворачивает как нужно, а при записи в документ ошибка. заметил закономерность. (колонки таблицы значений: Дата, Автомобиль, Пробег) если дата (период) и автомобиль(элемент справочника) одинаковы, то ему пофигу какой пробег, хоть он и разный. может в документе стоит какая-то проверка или что-то того. уже все пересмотрел. в текстовом файле из которого я гружу данные - эти строки разные, в таблицу значений они грузяться тоже отдельно, после сворачивания обе остаются. осталось только или в документе корректировка проблема или в регистре.
|
|||
12
kosts
31.08.11
✎
11:57
|
В регистре скорее всего Контрагент и Номенклатура - измерения
а Сумма - ресурс, но группировка по всем полям значит вполне вероятно встречаются одинаковые Контрагент с Номенклатура но разной суммой. Вот и ошибка, что строка уже существует ... |
|||
13
Oz11
31.08.11
✎
11:59
|
в регистре есть одно измерение - Автомобиль, а Пробег - это ресурс. а что значит группировка по всем полям? и как такую ситуацию можно обойти?
|
|||
14
kosts
31.08.11
✎
12:02
|
(13) Твоя исходная таблица
Ауди, 100 Ауди, 200 Ауди, 200 БМВ, 300 После свертки по Свернуть("Автомобиль,Пробег",); Будет Ауди, 100 Ауди, 200 БМВ, 300 Т.е. Ауди дважды, либо нужно Пробег суммировать либо как-то по другому обработать эту ситуацию... |
|||
15
Oz11
31.08.11
✎
12:11
|
Практическе, только перед автомобилем есть еще дата, но это не особо меняет ситуацию.
26.05.2010 Мерседес 100 27.05.2011 Ауди 200 27.05.2011 Ауди 300 После сворачивания ТЗ - естественно остаются все три записи, что и требуется, но при записи в документ Коректировка - вылетает ошибка на 3й строке, так как он считает что 2я и 3я строки одинаковы. в регистре. куда пишу Автомобиль - реквизит, Пробег - ресурс. я так понимаю ошибка именно в акте записи в регистр. (предполагаю что из-за того что системе пофигу, какой там ресурс, ее волнует реквизит, период записи и регистратор) вопрос в том как это все обойти? упоминалась группировка по всем полям (12), прошу объяснить что это такое и как с ним работать. |
|||
16
aleks-id
31.08.11
✎
12:13
|
ну поставь периодичность Секунда
|
|||
17
Oz11
31.08.11
✎
12:15
|
(16) имеется ввиду периодичность регистра? а как это поможет?
|
|||
18
kosts
31.08.11
✎
12:18
|
(15) Что то недопроектировано с регистром, явно не хватает измерения...
И почему Автомобиль - реквизит, а не измерение |
|||
19
Oz11
31.08.11
✎
12:23
|
Все, проблема отпала. реально выйти из этой ситуации не получается, поэтому решено в такой ситуации брать строку, у которой пробег больше.
теперь вернулись в самое начало - я так понимаю чтобы провернуть все это нужно перебирать во вложеных циклах. у меня сомнения что вложеные циклы справятся с ситуацией, если таких строк не две, а больше. что посоветуете? |
|||
20
kosts
31.08.11
✎
12:24
|
(19) Не можем посоветовать. Задача не известна...
|
|||
21
Evil-Wisp
31.08.11
✎
12:27
|
(13) >> в регистре есть одно измерение - Автомобиль
(15) >> куда пишу Автомобиль - реквизит Так все-таки?? Опиши структуру регистра, как она у тебя в окне конфигурации. |
|||
22
Dен
31.08.11
✎
12:27
|
(19) Алгоритм не можешь составить?
|
|||
23
Oz11
31.08.11
✎
12:28
|
Есть ТЗ, уже свернута, то есть очищена от одинаковых записей. там три колонки (Дата),(Автомобиль),(Пробег). в этой ТЗ, есть строки у которых Дата и Автомобиль одинаковы а Пробег разный. нужно очистить ТЗ от таким образом повторяющихся строк, причем оставлять ту строку, у которой Пробег максимален.
|
|||
24
Oz11
31.08.11
✎
12:29
|
за регистр забыли. поговорил с начальством, оно все обдумало и решило что нужно делать так как описал выше.
|
|||
25
Dен
31.08.11
✎
12:31
|
(23) Ну, например, запросом сверни.
|
|||
26
Kassius
31.08.11
✎
12:31
|
А почему регистр сведений?
|
|||
27
Evil-Wisp
31.08.11
✎
12:33
|
(24) чтобы свернуть запросом, нужно сначала данные сохранить куда нибудь.
|
|||
28
Dен
31.08.11
✎
12:33
|
(26) Если мы пойдем так дальше, может нам придется помогать переписывать всю конфигурацию.
|
|||
29
Dен
31.08.11
✎
12:34
|
(27) Во временную таблицу.
|
|||
30
Kassius
31.08.11
✎
12:37
|
(26) В таком случае писать надо конечный пробег.
В принципе это даже логично. Ты часом не из омска? Больно знакомая задача. |
|||
31
Oz11
31.08.11
✎
12:48
|
(26) нет, совсем не оттуда.
Запрос = Новый Запрос; МВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = " |ВЫБРАТЬ | ТЗ.Период, | ТЗ.Автомобиль, | ТЗ.Пробег |ПОМЕСТИТЬ ПробегАвтомобилей |ИЗ | &ТЗ КАК ТЗ"; Запрос.УстановитьПараметр("ТЗ", ТЗ); Выб = Запрос.Выполнить(); Нарыл это в одной из веток. это, если я правильно понимаю, помещение ТЗ во временную таблицу ПробегАвтомобилей. а как теперь к ней обратится и перебрать запросом? |
|||
32
Dен
31.08.11
✎
12:56
|
(31)
Запрос = Новый Запрос; МВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = " |ВЫБРАТЬ | ТЗ.Период, | ТЗ.Автомобиль, | ТЗ.Пробег |ПОМЕСТИТЬ ПробегАвтомобилей |ИЗ | &ТЗ КАК ТЗ |; |ВЫБРАТЬ | ПробегАвтомобилей.Период, | ПробегАвтомобилей.Автомобиль, | МАКСИМУМ(ПробегАвтомобилей.Пробег) КАК Пробег |ИЗ | ПробегАвтомобилей |СГРУППИРОВАТЬ ПО | ПробегАвтомобилей.Период, | ПробегАвтомобилей.Автомобиль"; Запрос.УстановитьПараметр("ТЗ", ТЗ); ТЗ = Запрос.Выполнить().Выгрузить(); ТЗ - уже будет почишена от дублирующихся строк |
|||
33
Oz11
31.08.11
✎
13:07
|
{Форма.Форма.Форма(126)}: Ошибка при вызове метода контекста (Выполнить)
ТЗ = Запрос.Выполнить().Выгрузить(); по причине: по причине: {(3, 4)}: Тип не может быть выбран в запросе <<?>>ТЗ.Период, Вылазит вот такая неизвестная мне ошибка. |
|||
34
Oz11
31.08.11
✎
13:08
|
когда создавал ТЗ - типы колонок не указывал, может в этом причина?
|
|||
35
Evil-Wisp
31.08.11
✎
13:18
|
(34) Да. И тип колонки Автомобиль -строка ограниченной длины
|
|||
36
Dен
31.08.11
✎
13:28
|
(35) Почему? Разве там не ссылка на справочник?
|
|||
37
Evil-Wisp
31.08.11
✎
13:31
|
(36) Как я понял, данные из текстового файла попали в ТЗ.
|
|||
38
Oz11
31.08.11
✎
13:33
|
(37) все верно, данные попадают из текстового файла, но в ТЗ записывается именно ссылка на элемент справочника.
|
|||
39
Evil-Wisp
31.08.11
✎
13:52
|
Ну что, получилось? А поблагодарить всех?:)
|
|||
40
Oz11
31.08.11
✎
13:58
|
Та вроде получилось, но есть один нюанс, не знаю как он важен. в текстовом файле в некоторых записях пробег = 0.
переношу его в ТЗ как число 0, в документ пишу и тут загвоздка - такой пробег отображается как пустое поле, и в регистр идет как пустое поле. не знаю ошибка ли это? то есть в регистре эта запись с визуально пустым полем пробег. |
|||
41
Nagaru
31.08.11
✎
14:03
|
(40) Нет, не ошибка, просто 0 в 1с почти везде отображается как пстое поле, фактически же хранится именно 0.
|
|||
42
Oz11
31.08.11
✎
14:58
|
(41) раз так то все в порядке. всем огромное спасибо за помощь, надеюсь теперь все так как хочет заказчик. )
|
|||
43
Learn_
31.08.11
✎
15:02
|
вы что там автомобилями торгуете что ли
|
|||
44
Oz11
31.08.11
✎
15:33
|
Заказчик торгует.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |