|
|
Качественное дополнение данных в ТЧ
Волшебник, АгентБезопаснойНацио, mikecool, zenik, picom, Группа неравнодушных, alexxx961503, Мультук, vis, Garykom, , okmail, DeeK, Dен, denk32, Климов Сергей, maxar, Web00001, vyaz, Олдж, 2S, Ненавижу 1С, pasha_d, Михаил Козлов, Злоп, shuhard, ndrv, maxab72, nick86, Kongo2019, RomanYS, Krendel, Хряк, Wildman666
| ☑ |
|
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
|
прочитал ветку и вспомнил Алису и гусеницу...
извиняюсь за ОФФ
|
|