Имя: Пароль:
1C
1С v8
Обычное приложение. Красивая работа с таблицей значений.
0 YaYca
 
27.12.11
18:00
К примеру, у таблицы значений есть колонки - организация, контрагент, номенклатура, сумма (выгрузил запрос по регистру в тз). Нужно вычислить сумму конкретной номенклатуры для конкретной организации и контрагенту.

СуммаНоменклатураТЗ = 0;
Для Каждого ТекСтрокаТЗ Из ТЗ Цикл
Если ТекСтрокаТЗ.Организация = ОрганизацияМакет
И ТекСтрокаТЗ.Контрагент = КонтрагентМакет
И ТекСтрокаТЗ.Номенклатура = Выборка.Номенклатура Тогда
СуммаНоменклатураТЗ = СуммаНоменклатураТЗ + ТекСтрокаТЗ.Стоимость;
КонецЕсли;
КонецЦикла;

Можно как-то проще и правильней это сделать?
1 Murzz
 
27.12.11
18:07
Скопировать в другую тз по отбору и получить итог по колонке
2 Kashemir
 
27.12.11
18:21
СуммаНоменклатураТЗ  = 0;
МассивНужныхСтрок = Тз.НайтиСтроки(Новый Структура("Организация, Контрагент", ОрганизацияМакет, КонтрагентМакет);
Для каждого Стр из МассивНужныхСтрок Цикл
СуммаНоменклатураТЗ = СуммаНоменклатураТЗ + Стр.Стоимость;
КонецЦикла;
3 s03
 
27.12.11
18:26
МассивНужныхСтрок = Тз.Скопировать(Тз.НайтиСтроки(Новый Структура("Организация, Контрагент", ОрганизацияМакет, КонтрагентМакет))
СуммаНоменклатураТЗ = МассивНужныхСтрок.Итог("НужнаяКолонка")
4 Kashemir
 
27.12.11
18:28
+(2) Либо же методом (1)

ТЗСОтбором = ТЗ.Скопировать(Тз.НайтиСтроки(Новый Структура("Организация, Контрагент, Номенклатура", ОрганизацияМакет, КонтрагентМакет, Выборка.Номенклатура), "Стоимость");
СуммаНоменклатураТЗ   = ТЗСОтбором.Итог("Стоимость");
5 Kashemir
 
27.12.11
18:31
Если сумму по одной ТЗ нужно рассчитывать неоднократно, желательно сначала проиндексировать по искомому ключу - будет куда быстрее

ТЗ.Индексы.Добавить("Организация, Контрагент, Номенклатура").
6 Мимохожий Однако
 
27.12.11
18:56
Зачем?!
7 Kashemir
 
27.12.11
19:04
(6) Зачем зачем ?
8 DrShad
 
27.12.11
19:06
запросом не предлагать?
9 fank
 
27.12.11
19:22
а так разве нельзя? Свернуть таблицу по: организация, контрагент, номенклатура, далее находим нужную строку (единственную) и в ней будет нужная сумма.
10 Мимохожий Однако
 
27.12.11
19:25
(7)ИМХО, при выгрузке из регистра запросом можно и итоги выгрузить.
Мне очень интересно конечная цель "красивой работы с ТЗ на форме".
11 Азат
 
27.12.11
19:29
а если во временную таблицу и запрос?
12 Азат
 
27.12.11
19:30
+ самое главное - насколько большая ТЗ?
13 el-gamberro
 
27.12.11
19:42
Напиши нормальный запрос с итогами и обойди группировки, если есть задача такое считать, а в (0) извращение
14 vmv
 
27.12.11
21:23
получать дерево с запросом итогов и табличное поле источник данных - дерево
15 YaYca
 
28.12.11
13:32
Спасибо всем.