|
|
|
Качественное дополнение данных в ТЧ | ☑ | ||
|---|---|---|---|---|
|
0
picom
28.10.25
✎
11:17
|
Имеется табличная часть документа с данными
1. Номенклатура 2. Кол-во 3. Цена 4. 5. ... n. Сумма Как одним проходом, желательно, не помещая вручную всю ТЧ во временную таблицу, просчитать и заполнить новую колонку Сумма. Одним запросом бы без переборов до или после... |
|||
|
1
Волшебник
28.10.25
✎
11:18
|
Для Каждого СтрокаТЧ из ТЧ Цикл
СтрокаТЧ.Сумма = СтрокаТЧ.Количество * СтрокаТЧ.Цена;
КонецЦикла; |
|||
|
2
picom
28.10.25
✎
11:21
|
Иногда расчет значения может быть внушительным, научиться бы делать ВТ с каким-то номером строки, а затем по нему дополнять данные...
|
|||
|
3
Garykom
гуру
28.10.25
✎
11:28
|
(0) Эмм классика же
ТаблицаБезСумм = ТЧ.Выгрузить();
// ...
Запрос.УстановитьПараметр("ТаблицаДляВТ", ТаблицаБезСумм);
ТаблицаССуммами = Запрос.Выполнить.Выгрузить();
ТЧ.Загрузить(ТаблицаССуммами); |
|||
|
4
picom
28.10.25
✎
11:30
|
(3) Да, но неизбежно надо в запросе перечислять все колонки...
|
|||
|
5
2S
28.10.25
✎
11:31
|
(4) шта?
|
|||
|
6
2S
28.10.25
✎
11:32
|
В типовых, как правило, есть функции ОМ для пересчета строк таблиц. Ищите там.
|
|||
|
7
Web00001
28.10.25
✎
11:33
|
>не помещая вручную всю ТЧ во временную таблицу
>Одним запросом бы без переборов до или после.. Не совсем понятно, где у тебя имеется табличная часть если ты и во временную таблицу не хочешь и в запросе хочешь одновременно |
|||
|
8
Ненавижу 1С
гуру
28.10.25
✎
11:33
|
ТЧ.ДляКаждого(Стр -> Стр.Сумма = Стр.Количество*Стр.Цена);
правда это не 1С |
|||
|
9
Garykom
гуру
28.10.25
✎
11:36
|
(4) Если количество строк не меняется можно использовать ТЧ.ЗагрузитьКолонку()
|
|||
|
10
picom
28.10.25
✎
11:36
|
(7) хочу во временную, что бы не все колонки потом перечислять, как в (2) бы
|
|||
|
11
picom
28.10.25
✎
11:37
|
(9) Норм, пошёл пробовать. Спасибо.
|
|||
|
12
Web00001
28.10.25
✎
11:40
|
(4)Не обязательно, можно выгрузить\загрузить одну колонку - с результатом. Но в остальном, ты думаешь, что система выгружая\загружая каким-то чудесным образом транспортирует данные, не перебирая значения?
|
|||
|
13
Garykom
гуру
28.10.25
✎
11:39
|
Имхо тут нахрен не нужны запросы как правильно написано еще в (1)
Зачем пытаться сделать все через одно странное место? Вместо простого кода? |
|||
|
14
Web00001
28.10.25
✎
11:42
|
(13)+1 все модули расчета строк табличных частей, в типовых написаны без использования запросов.
Вера в магию "Выгрузить\загрузить" Выгрузить\загрузить работает быстро, а перебор значений медленно. Почему, не спрашивайте. Просто так повелось. Иногда хочется как-то извернуться, чтоб похитрее. Ну скучно же просто Цена * Количество = Сумма |
|||
|
15
picom
28.10.25
✎
11:43
|
(13) Иногда для расчетов нужен запрос, в этом случае он будет один.
|
|||
|
16
Garykom
гуру
28.10.25
✎
11:46
|
(15) Часто есть смысл делать запросы в цикле
Потому что тупо так проще и нет смысла гнаться за ненужным быстродействием |
|||
|
17
mikecool
28.10.25
✎
12:43
|
прочитал ветку и вспомнил Алису и гусеницу...
извиняюсь за ОФФ |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |