|
|
|
удалить дубликаты строк по колонке | ☑ | ||
|---|---|---|---|---|
|
0
polkin
26.09.08
✎
15:19
|
Ном = 1;
Ном1 = 0; для каждого Строка из Таблица цикл Если Таблица[Ном1].Номенклатура = Таблица[Ном].Номенклатура Тогда Таблица.Удалить(Ном); Иначе Ном = Ном + 1; Ном1 = Ном1 + 1; КонецЕсли; КонецЦикла; Удаляет только дубликаты 1 строки..... |
|||
|
1
Альберт_Уфа
26.09.08
✎
15:20
|
Свернуть()
|
|||
|
2
polkin
26.09.08
✎
15:22
|
(1) подробнее пож. для чайников.
|
|||
|
3
Альберт_Уфа
26.09.08
✎
15:23
|
Свернуть (GroupBy)
Синтаксис: Свернуть(<Колонки группировок>, <Колонки суммирования>) Параметры: <Колонки группировок> (обязательный) Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо группировать строки табличного поля. <Колонки суммирования> (необязательный) Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках табличного поля. Описание: Осуществляет свертку табличной части по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются. Важно! Оба списка колонок должны покрывать всю табличную часть. Списки колонок не должны пересекаться. Примечание: Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число. Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться. Если в колонке несколько типов и среди них есть тип Число то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться. Если в колонке несколько типов и среди них нет типа Число, то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке. Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения. Пример: Состав.Свернуть("Номенклатура", "Количество, Сумма, Всего"); |
|||
|
4
polkin
26.09.08
✎
15:27
|
Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения....
|
|||
|
5
Cheater
26.09.08
✎
15:30
|
(4) У тебя "Таблица" - это что?
|
|||
|
6
Альберт_Уфа
26.09.08
✎
15:31
|
(4) у тебя Объект! иначе ты не удалишь!
|
|||
|
7
polkin
26.09.08
✎
15:34
|
(5) Таблица из запроса
|
|||
|
8
Divemaster
26.09.08
✎
15:36
|
и вот это: "для каждого Строка из Таблица цикл"
поправь на "для каждого ТекСтрока из Таблица цикл" - Строка - замени |
|||
|
9
Cheater
26.09.08
✎
15:38
|
(7) Выгружай в таблицу значений и сворачивай
|
|||
|
10
Cheater
26.09.08
✎
15:38
|
(8) А какая разница?
|
|||
|
11
Cheater
26.09.08
✎
15:39
|
(7) А вообще тебе запрос надо менять, чтобы без дубликатов выводил
|
|||
|
12
Альберт_Уфа
26.09.08
✎
15:40
|
(7) Таблица из запроса??? может Попробовать использовать Выбрать РАЗЛИЧНЫЕ.
|
|||
|
13
Альберт_Уфа
26.09.08
✎
15:43
|
Запрос в студию!
|
|||
|
14
Mitriy
26.09.08
✎
15:43
|
МассивУдаляемых = НовыйМассив;
СписокНоменклатуры = Новый Соответствие; для каждого Строка из Таблица цикл ЕстьНоменклатура = СписокНоменклатуры[Строка.Номенклатура]; Если ЕстьНоменклатура = Неопределено Тогда СписокНоменклатуры.Вставить(Строка.Номенклатура); Иначе МассивУдаляемых.Добавить(Строка); КонецЕсли; КонецЦикла; Для Каждого Строка Из МассивУдаляемых Цикл Таблица.Удалить(Строка); КонецЦикла; |
|||
|
15
Mitriy
26.09.08
✎
15:44
|
(14) МассивУдаляемых = НовыйМассив; читать как МассивУдаляемых = Новый Массив;
|
|||
|
16
polkin
26.09.08
✎
15:59
|
Запрос.Текст =
"ВЫБРАТЬ | ЦенаНоменклатуры.Цена1, | МАКСИМУМ(ЦенаНоменклатуры.ДатаЦены) КАК ДатаЦены, | ЦенаНоменклатуры.Номенклатура КАК Номенклатура, | ЦенаНоменклатуры.Номинал КАК Номинал |ИЗ | РегистрСведений.ЦенаНоменклатуры КАК ЦенаНоменклатуры |ГДЕ | ЦенаНоменклатуры.Номенклатура.Родитель = &Родитель | |СГРУППИРОВАТЬ ПО | ЦенаНоменклатуры.Цена1, | ЦенаНоменклатуры.Номенклатура, | ЦенаНоменклатуры.Номинал | |УПОРЯДОЧИТЬ ПО | Номенклатура |АВТОУПОРЯДОЧИВАНИЕ"; Смысл - получить цену номенклатуры на последнюю имеющуюся дату |
|||
|
17
Cheater
26.09.08
✎
16:04
|
(16) РегистрСведение.ЦенаНоменклатуры.СрезПоследних(&ДатаНаКоторуюМнеНужноУзнатьЦену)
|
|||
|
18
Альберт_Уфа
26.09.08
✎
16:04
|
СрезПоследних используй!
|
|||
|
19
Cheater
26.09.08
✎
16:05
|
+(17) *РегистрСведений
|
|||
|
20
Mitriy
26.09.08
✎
16:08
|
(16) млин...
|
|||
|
21
polkin
26.09.08
✎
16:10
|
(17)Что будет если
РегистрСведение.ЦенаНоменклатуры.СрезПоследних(&ДатаНаКоторуюМнеНужноУзнатьЦену) ДатаНаКоторуюМнеНужноУзнатьЦену нет. Например я хочу получить сегодня, а посл. раз ЦенаНоменклатуры 10 дней назад. |
|||
|
22
Альберт_Уфа
26.09.08
✎
16:16
|
(21) все пучком будет. отработает как нужно!
|
|||
|
23
polkin
26.09.08
✎
16:23
|
"ВЫБРАТЬ
| ЦенаНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, | ЦенаНоменклатурыСрезПоследних.Номинал КАК Номинал, | ЦенаНоменклатурыСрезПоследних.Цена1, | ЦенаНоменклатурыСрезПоследних.ДатаЦены |ИЗ | РегистрСведений.ЦенаНоменклатуры.СрезПоследних КАК ЦенаНоменклатурыСрезПоследних |ГДЕ | ЦенаНоменклатурыСрезПоследних.Номенклатура.Родитель = &Родитель | |УПОРЯДОЧИТЬ ПО | Номенклатура |АВТОУПОРЯДОЧИВАНИЕ"; ???? |
|||
|
24
Альберт_Уфа
26.09.08
✎
16:25
|
(23) см. (21). сам ведь ставил условие на дату!!!!!
|
|||
|
25
polkin
26.09.08
✎
16:33
|
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Родитель",ЭлементыФормы.НоменклатураДерево.ТекущаяСтрока); Запрос.УстановитьПараметр("Дата",ТекущаяДата()); Запрос.Текст = "ВЫБРАТЬ | ЦенаНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, | ЦенаНоменклатурыСрезПоследних.Номинал КАК Номинал, | ЦенаНоменклатурыСрезПоследних.Цена1, | ЦенаНоменклатурыСрезПоследних.ДатаЦены |ИЗ | РегистрСведений.ЦенаНоменклатуры.СрезПоследних КАК ЦенаНоменклатурыСрезПоследних |ГДЕ | ЦенаНоменклатурыСрезПоследних.Номенклатура.Родитель = &Родитель | И ЦенаНоменклатурыСрезПоследних.ДатаЦены = &Дата | | |УПОРЯДОЧИТЬ ПО | Номенклатура |АВТОУПОРЯДОЧИВАНИЕ"; Результат = Запрос.Выполнить(); ЭлементыФормы.Таблица.Значение = Результат.Выгрузить(); Вообще дату не выводит |
|||
|
26
Cheater
29.09.08
✎
15:09
|
(25) Читай в ЖКК про срез последних
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |