|
Из одной таблицы значений создать другую | ☑ | ||
---|---|---|---|---|
0
Serdolik55
05.06.12
✎
15:43
|
Есть Таблица:
ЦеноваяГруппа СуммаЛимита Процент Игрушки 10000 2% Игрушки 200000 5% Нужно в цикле обработать её и создать такую: Интервал1 Интервал2 Процент 0 10000 2% 10000 200000 5% Как правильно обойти в цикле и создать её? Пишу так: ТаблицаСкидок = Новый ТаблицаЗначений; ТаблицаСкидок.Колонки.Добавить("Интервал1"); ТаблицаСкидок.Колонки.Добавить("Интервал2"); ТаблицаСкидок.Колонки.Добавить("ПроцентСкидки"); Для Каждого Строка Из ТЗ Цикл Стр = ТаблицаСкидок.Добавить(); ....................(Как тут описать, чтобы получить таблицу описанную выше) КонецЦикла; |
|||
1
salvator
05.06.12
✎
15:49
|
Добавить в исходную таблицу строку в начало со значением 0 в колонке "Сумма лимита"
Цикл сделай по индексам и напиши что-то типа Если Н+1 <= КоличествоСтрокВТЗ Тогда Стр.Интервал1 = ТЗ[Н].СуммаЛимита; Стр.Интервал2 = ТЗ[Н+1].СуммаЛимита; ... |
|||
2
Serdolik55
05.06.12
✎
16:23
|
(1) Не получается, вот код:
СтраршийИндекс = РезультатЗапросаПоСкидкам.Количество()-1; Для Н = 0 По СтраршийИндекс Цикл Если Н+1 <= РезультатЗапросаПоСкидкам.Количество() Тогда Стр = ТаблицаСкидок.Добавить(); Стр.Интервал1 = РезультатЗапросаПоСкидкам[Н].ЗначениеУсловия; Стр.Интервал2 = РезультатЗапросаПоСкидкам[Н+1].ЗначениеУсловия; КонецЕсли; КонецЦикла; |
|||
3
Лефмихалыч
05.06.12
✎
16:27
|
(0) не делай мозг, юзай запрос
|
|||
4
Serdolik55
05.06.12
✎
16:28
|
(3) Вот запрос:
ЗапросПоСкидкам = Новый Запрос; ЗапросПоСкидкам.УстановитьПараметр("ДатаСреза",ТекущаяДата()); ЗапросПоСкидкам.УстановитьПараметр("ЦеноваяГруппа",Выборка.Ценоваягруппа); ЗапросПоСкидкам.УстановитьПараметр("Склад",ЭтотОбъект.Склад); ЗапросПоСкидкам.Текст = "ВЫБРАТЬ | СкидкиНаценкиПоЦеновымГруппамСрезПоследних.ЗначениеУсловия, | СкидкиНаценкиПоЦеновымГруппамСрезПоследних.ПроцентСкидкиНаценки |ИЗ | РегистрСведений.СкидкиНаценкиПоЦеновымГруппам.СрезПоследних( | &ДатаСреза, | ЦеноваяГруппа = &ЦеноваяГруппа | И ПолучательСкидки = &Склад) КАК СкидкиНаценкиПоЦеновымГруппамСрезПоследних"; РезультатЗапросаПоСкидкам = ЗапросПоСкидкам.Выполнить().Выгрузить(); НоваяСтрока = РезультатЗапросаПоСкидкам.Вставить(0); НоваяСтрока.ЗначениеУсловия = 0; НоваяСтрока.ПроцентСкидкиНаценки = 0; ТаблицаСкидок = Новый ТаблицаЗначений; ТаблицаСкидок.Колонки.Добавить("Интервал1"); ТаблицаСкидок.Колонки.Добавить("Интервал2"); ТаблицаСкидок.Колонки.Добавить("ПроцентСкидки"); СтраршийИндекс = РезультатЗапросаПоСкидкам.Количество()-1; Для Н = 0 По СтраршийИндекс Цикл Если Н+1 <= РезультатЗапросаПоСкидкам.Количество() Тогда Стр = ТаблицаСкидок.Добавить(); Стр.Интервал1 = РезультатЗапросаПоСкидкам[Н].ЗначениеУсловия; Стр.Интервал2 = РезультатЗапросаПоСкидкам[Н+1].ЗначениеУсловия; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |