Как вывести вес и объем в форме документа?

1. VID1234 110 15.01.20 09:01 Сейчас в теме
Привет. Ребята подскажите. Как поправить этот код, чтобы выводился результат этого цикла, в значение элемента формы документа. Отладчиком, цикл проходит, далее пишет объект суммаОбъема, следовательно и веса наверное тоже не найден. У меня в форме созданы 2 колонки, в которых прописывается значение единицы измерения в кг и м3 за 1 шт., по формуле я должен умножить значение каждой строки (товара) количество*на вес и количество*объем, а полученное вывести в форму, чтобы снизу было видно, хоть куда, даже в подвал, только не соображу как и еще чтобы менялся фон ячейки веса, если она не заполнена. Только пожалуйста по существу, а не так, ручками и прочее, не могу допетрить. реквизиты снизу я создал ВесТовара и ОбъемТовара, только там постоянно нули, ничего не меняется, хотя количество указано, вес тоже указан с номенклатуры. Спасибо за помощь.
 //VID(
	  Объем1 = 0;
		Вес1 = 0;
		Для Каждого Строка Из Объект.Товары Цикл
		Объем1 = Объем1 + Строка.Количество * Строка.Объем;            
		Вес1 = Вес1 + Строка.Количество * Строка.Вес;    
	КонецЦикла;    
		Элементы.СуммаОбъема.Значение = Объем1;
		Элементы.СуммаВеса.Значение = Вес1;
	
		
		   
Для каждого ОформлениеСтроки из ОформлениеСтроки Цикл
 Если ОформлениеСтроки.ДанныеСтроки.Номенклатура.ЕдиницаХраненияОстатков.Вес Тогда
  ЦветФона=Новый Цвет (255, 255, 255);
    Иначе
  ЦветФона=Новый Цвет (255, 147, 244);
КонецЕсли;
ОформлениеСтроки.ЦветФона=ЦветФона;
КонецЦикла;

		
		//VID)
Показать
По теме из базы знаний
Найденные решения
29. VictorRGB2 13 16.01.20 14:14 Сейчас в теме
(25) ниже пример на расширении для УТ 11.4
Прикрепленные файлы:
Расш_УТ11.4_ВесЗаказа.cfe
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. independ 1520 15.01.20 10:31 Сейчас в теме
(1) Проще, если СуммаОбъема, СуммаВеса - это реквизиты формы

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


А цвет строк через условное оформление формы
14. VID1234 110 15.01.20 13:53 Сейчас в теме
(6)
СуммаОбъема=0;
СуммаВеса = 0;
Для Каждого Строка Из Объект.Товары Цикл
СуммаОбъема = СуммаОбъема + Строка.Количество * Строка.Объем;
СуммаВеса = СуммаВеса + Строка.Количество * Строка.Вес;
КонецЦикла;

Все равно нет результата((
Прикрепленные файлы:
27. VID1234 110 16.01.20 11:29 Сейчас в теме
(6) У меня почему-то значение Строка.Объем и Строка.Вес равно 0, хотя в таблице указана единица, а как прописать ссылку не на колонки в таблице, а идентифицировать какой товар в данной строке и подхватить данные с номенклатуры
СуммаОбъема = СуммаОбъема + Строка.Количество * ЧТО НАПИСАТЬ ЗДЕСЬ ЧТОБЫ ДАННЫЕ ПОДТЯГИВАЛИСЬ НАПРЯМУЮ СО СПРАВОЧНИКА, ТОЛЬКО УКАЗАННОГО В СТРОКЕ ТОВАРА;
28. independ 1520 16.01.20 13:09 Сейчас в теме
(27) Процедура с директивой на &НаСервере
СуммаОбъема=0;
СуммаВеса = 0;
Для Каждого Строка Из Объект.Товары Цикл
   СуммаОбъема =  СуммаОбъема + Строка.Количество * Строка.Номенклатура.Объем;            
   СуммаВеса = СуммаВеса + Строка.Количество * Строка.Номенклатура.Вес;    
КонецЦикла;
15. VID1234 110 15.01.20 13:55 Сейчас в теме
(1)Еще вопрос а где эту операцию лучше вставлять в модуле формы, объекта? И в какой функции или процедуре, у меня сейчас в модуле формы &НаКлиенте
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
2. VictorRGB2 13 15.01.20 10:03 Сейчас в теме
вы хотя бы режим работы приложения указали...

для уф это одно решение, для обычного совсем другое
3. VID1234 110 15.01.20 10:09 Сейчас в теме
5. catena 110 15.01.20 10:30 Сейчас в теме
(3)Управляемая форма? Оформление строки? Вас кто-то пытался запутать или вы сами решили делать именно так?
9. VID1234 110 15.01.20 13:38 Сейчас в теме
(5) просто нашел в интернете, но это видимо для ут 10.3
7. VictorRGB2 13 15.01.20 10:44 Сейчас в теме
(3) для уф можно сделать так

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

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

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

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

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


ну и не забыть про связанные события таблицы при этом - изменение товара, удаление строки, изменение единицы измерения
17. VID1234 110 15.01.20 15:20 Сейчас в теме
(16)
&НаКлиенте
Процедура ТаблицаКоличествоПриИзменении()
ТаблицаКоличествоПриИзменнииНаСервере();
КонецПроцедуры

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

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


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

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

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

читать можно любую книгу, Радченко хорош
22. VID1234 110 16.01.20 09:28 Сейчас в теме
(21) Обработчик даже не видит эту процедуру
26. VID1234 110 16.01.20 10:19 Сейчас в теме
24. serm 16.01.20 09:48 Сейчас в теме
(19) рекомендую научиться работать с отладчиком
25. VID1234 110 16.01.20 10:19 Сейчас в теме
(24) я бы с удовольствием, но сначала задачу нужно выполнить, может подскажете.
29. VictorRGB2 13 16.01.20 14:14 Сейчас в теме
(25) ниже пример на расширении для УТ 11.4
Прикрепленные файлы:
Расш_УТ11.4_ВесЗаказа.cfe
30. VID1234 110 17.01.20 14:34 Сейчас в теме
23. serm 16.01.20 09:47 Сейчас в теме
(16) нехорошо делать серверный вызов для умножения двух чисел
4. catena 110 15.01.20 10:20 Сейчас в теме
Реквизиты снизу - снизу чего? Реквизиты чего? Почему имена реквизитов отличаются от используемых в коде?
10. VID1234 110 15.01.20 13:39 Сейчас в теме
(4)снизу формы документа во вкладке товары, это я просто экспериментирую, поэтому и отличается, в ут 10.3 у меня было так и все работает, тут же нет. я создал поля ввода, лучше конечно вывода, но там нет такого.
Прикрепленные файлы:
8. serm 15.01.20 11:04 Сейчас в теме
Какого вида элемент "СуммаОбъема".
Удали этот элемент. Создай новый реквизит формы СуммаОбъема (тип: число). Перетащи реквизит СуммаОбъема в дерево элементов формы. В коде пиши "СуммаОбъема = Объем1"
Аналогично с СуммаВеса.
11. VID1234 110 15.01.20 13:40 Сейчас в теме
(8) удалил, нет результата. может у меня здесь неправильно написано
Для Каждого Строка Из Объект.Товары Цикл
12. VID1234 110 15.01.20 13:42 Сейчас в теме
(8) вот фото
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот