Привет. Ребята подскажите. Как поправить этот код, чтобы выводился результат этого цикла, в значение элемента формы документа. Отладчиком, цикл проходит, далее пишет объект суммаОбъема, следовательно и веса наверное тоже не найден. У меня в форме созданы 2 колонки, в которых прописывается значение единицы измерения в кг и м3 за 1 шт., по формуле я должен умножить значение каждой строки (товара) количество*на вес и количество*объем, а полученное вывести в форму, чтобы снизу было видно, хоть куда, даже в подвал, только не соображу как и еще чтобы менялся фон ячейки веса, если она не заполнена. Только пожалуйста по существу, а не так, ручками и прочее, не могу допетрить. реквизиты снизу я создал ВесТовара и ОбъемТовара, только там постоянно нули, ничего не меняется, хотя количество указано, вес тоже указан с номенклатуры. Спасибо за помощь.

```1c
    //VID(
    Объем1 = 0;
    Вес1 = 0;
    Для Каждого Строка Из Объект.Товары Цикл
    Объем1 = Объем1 + Строка.Количество * Строка.Объем;
    Вес1 = Вес1 + Строка.Количество * Строка.Вес;
    КонецЦикла;
    Элементы.СуммаОбъема.Значение = Объем1;
    Элементы.СуммаВеса.Значение = Вес1;

    Для каждого ОформлениеСтроки из ОформлениеСтроки Цикл
    Если ОформлениеСтроки.ДанныеСтроки.Номенклатура.ЕдиницаХраненияОстатков.Вес Тогда
    ЦветФона=Новый Цвет (255, 255, 255);
    Иначе
    ЦветФона=Новый Цвет (255, 147, 244);
    КонецЕсли;
    ОформлениеСтроки.ЦветФона=ЦветФона;
    КонецЦикла;

    //VID)
```
---
ниже пример на расширении для УТ 11.4
---
Проще, если СуммаОбъема, СуммаВеса - это реквизиты формы

```1c
    СуммаОбъема=0;
    СуммаВеса = 0;
    Для Каждого Строка Из Объект.Товары Цикл
    СуммаОбъема = СуммаОбъема + Строка.Количество * Строка.Объем;
    СуммаВеса = СуммаВеса + Строка.Количество * Строка.Вес;
    КонецЦикла;
```

А цвет строк через условное оформление формы
---
СуммаОбъема=0;
СуммаВеса = 0;
Для Каждого Строка Из Объект.Товары Цикл
   СуммаОбъема = СуммаОбъема + Строка.Количество * Строка.Объем;
   СуммаВеса = СуммаВеса + Строка.Количество * Строка.Вес;
КонецЦикла;
Все равно нет результата((
---
У меня почему-то значение Строка.Объем и Строка.Вес равно 0, хотя в таблице указана единица, а как прописать ссылку не на колонки в таблице, а идентифицировать какой товар в данной строке и подхватить данные с номенклатуры
СуммаОбъема = СуммаОбъема + Строка.Количество * ЧТО НАПИСАТЬ ЗДЕСЬ ЧТОБЫ ДАННЫЕ ПОДТЯГИВАЛИСЬ НАПРЯМУЮ СО СПРАВОЧНИКА, ТОЛЬКО УКАЗАННОГО В СТРОКЕ ТОВАРА;
---
Процедура с директивой на &НаСервере

```1c
    СуммаОбъема=0;
    СуммаВеса = 0;
    Для Каждого Строка Из Объект.Товары Цикл
    СуммаОбъема = СуммаОбъема + Строка.Количество * Строка.Номенклатура.Объем;
    СуммаВеса = СуммаВеса + Строка.Количество * Строка.Номенклатура.Вес;
    КонецЦикла;
```
---
Еще вопрос а где эту операцию лучше вставлять в модуле формы, объекта? И в какой функции или процедуре, у меня сейчас в модуле формы &НаКлиенте
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
---
вы хотя бы режим работы приложения указали...

для уф это одно решение, для обычного совсем другое
---
управляемая форма
---
Управляемая форма? Оформление строки? Вас кто-то пытался запутать или вы сами решили делать именно так?
---
просто нашел в интернете, но это видимо для ут 10.3
---
для уф можно сделать так

в тч создать колонку ИтогОбъем, снять ей видимость,писать в колонку суммируемый итог по объему, но только для первой строки
в самой таблице установить галку Подвал, а для колонки Объем для отображения итога в подвале таблицы выбрать в ПутьКДаннымПодвала = Таблица[0].ИтогОбъем

или же через реквизит объекта\формы, без заморочек с отображением итога по данным для подвала
Объект.СуммаОбъема = Объект.Таблица.Итог("Объем");
---
создам я колонку, а как ее научить считать итог объема, она же сама не сможет умножить количество на вес из номенклатуры, нужно прописать, только как? мне не важно как это будет выглядеть можно и в подвале, но только КАК???((( я уже создавал колонку вес, сделал ссылку на номенклатуру вес, она показывает только вес 1 единицы товара.
---
колонка Количество ПриИзменении() - перекинуть на сервер и там ТекущаяСтрока.Вес = ТекущаяСтрока.Количество*ТекущаяСтрока.Номенклатура.Вес или как там вес для номенклатуры определяется, в общем принцип должен быть понятен
дальше пересчитать итог
проще сделать это не для таблицы, а для реквизита объекта, как Объект.СуммаОбъема = Объект.Таблица.Итог("Объем")
с отораженим итога в подвале таблицы возни больше, да и реквизиты вы уже нарисовали

типа такого

```1c
    &НаКлиенте
    Процедура ТаблицаКоличествоПриИзменении()
    ТаблицаКоличествоПриИзменнииНаСервере();
    КонецПроцедуры

    &НаСервере
    Процедура ТаблицаКоличествоПриИзменнииНаСервере()
    лТекущаяСтрока = Таблица.НайтиПоИдентификатору(ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
    лТекущаяСтрока.Объем = лТекущаяСтрока.Количество * [вес единицы товара];

    ЭтотОбъект.СуммаОбъема = Таблица.Итог("Объем");
    КонецПроцедуры
```

ну и не забыть про связанные события таблицы при этом - изменение товара, удаление строки, изменение единицы измерения
---
&НаКлиенте
Процедура ТаблицаКоличествоПриИзменении()
  ТаблицаКоличествоПриИзменнииНаСервере();
КонецПроцедуры

&НаСервере
Процедура ТаблицаКоличествоПриИзменнииНаСервере()
  лТекущаяСтрока = Таблица.НайтиПоИдентификатору(ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
  лТекущаяСтрока.Объем = лТекущаяСтрока.Количество * [вес единицы товара];

  ЭтотОбъект.СуммаОбъема = Таблица.Итог("Объем");
КонецПроцедуры

{Документ.ЗаказКлиента.МодульОбъекта(925,20)}: Переменная не определена (Таблица)
  лТекущаяСтрока = <<?>>Таблица.НайтиПоИдентификатору(ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока); (Проверка: Сервер)
{Документ.ЗаказКлиента.МодульОбъекта(928,28)}: Переменная не определена (Таблица)
  ЭтотОбъект.СуммаОбъема = <<?>>Таблица.Итог("Объем"); (Проверка: Сервер)
---
ну нельзя же вот так в лоб примеры использовать...
"Таблица" - это ваша ТЧ объекта или формы, никто не знает как она у вас называется, но могу предположить, что это "Товары"
---
Ну тупой (или доверчивый), что сделать. Спасибо. Какую книгу порекомендуете почитать, которая ближе к практике?
---
Можно еще узнать, что это (Итог("Объем")) реквизит или элемент и это СуммаОбъема? А то у меня не выводится, вроде и ошибок нет, а толку нет
---
Итог("Объем") - возвращает итог по колонке Объем, это метод таблицы значений
СуммаОбъема - реквизит формы или объекта, куда и помещается итог по колонке таблицы значений

не вводиться может по разным причинам, это уф
начиная с того, что надо форму обновить и заканчивая тем, что тип реквизита формы не соответствует типу значения итога

тут, если вроде все работать должно, а не работает, надо отладчиком пробежаться и убедиться, что итог есть, и в реквизит передается, а дальше уже думать почему отображение на форме не обновляется

читать можно любую книгу, Радченко хорош
---
Обработчик даже не видит эту процедуру
---
т.е. отладчик
---
рекомендую научиться работать с отладчиком
---
я бы с удовольствием, но сначала задачу нужно выполнить, может подскажете.
---
ниже пример на расширении для УТ 11.4
---
Спасибо
---
нехорошо делать серверный вызов для умножения двух чисел
---
Реквизиты снизу - снизу чего? Реквизиты чего? Почему имена реквизитов отличаются от используемых в коде?
---
снизу формы документа во вкладке товары, это я просто экспериментирую, поэтому и отличается, в ут 10.3 у меня было так и все работает, тут же нет. я создал поля ввода, лучше конечно вывода, но там нет такого.
---
Какого вида элемент "СуммаОбъема".
Удали этот элемент. Создай новый реквизит формы СуммаОбъема (тип: число). Перетащи реквизит СуммаОбъема в дерево элементов формы. В коде пиши "СуммаОбъема = Объем1"
Аналогично с СуммаВеса.
---
удалил, нет результата. может у меня здесь неправильно написано
Для Каждого Строка Из Объект.Товары Цикл
---
вот фото