Как вывести вес и объем в форме документа?
Привет. Ребята подскажите. Как поправить этот код, чтобы выводился результат этого цикла, в значение элемента формы документа. Отладчиком, цикл проходит, далее пишет объект суммаОбъема, следовательно и веса наверное тоже не найден. У меня в форме созданы 2 колонки, в которых прописывается значение единицы измерения в кг и м3 за 1 шт., по формуле я должен умножить значение каждой строки (товара) количество*на вес и количество*объем, а полученное вывести в форму, чтобы снизу было видно, хоть куда, даже в подвал, только не соображу как и еще чтобы менялся фон ячейки веса, если она не заполнена. Только пожалуйста по существу, а не так, ручками и прочее, не могу допетрить. реквизиты снизу я создал ВесТовара и ОбъемТовара, только там постоянно нули, ничего не меняется, хотя количество указано, вес тоже указан с номенклатуры. Спасибо за помощь.
//VID(
Объем1 = 0;
Вес1 = 0;
Для Каждого Строка Из Объект.Товары Цикл
Объем1 = Объем1 + Строка.Количество * Строка.Объем;
Вес1 = Вес1 + Строка.Количество * Строка.Вес;
КонецЦикла;
Элементы.СуммаОбъема.Значение = Объем1;
Элементы.СуммаВеса.Значение = Вес1;
Для каждого ОформлениеСтроки из ОформлениеСтроки Цикл
Если ОформлениеСтроки.ДанныеСтроки.Номенклатура.ЕдиницаХраненияОстатков.Вес Тогда
ЦветФона=Новый Цвет (255, 255, 255);
Иначе
ЦветФона=Новый Цвет (255, 147, 244);
КонецЕсли;
ОформлениеСтроки.ЦветФона=ЦветФона;
КонецЦикла;
//VID)
ПоказатьПо теме из базы знаний
- Готовимся к экзамену 1С: Специалист по платформе 8.х. Разбор часто встречающихся ошибок.
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Автоматизация печатной формы (автоформирование табличного документа на основе любой таблицы значений)
- Как мы автоматизировали башню раздачи воды
- Как увеличить количество аналитик в бюджетных формах 1С:Управление холдингом? Обзор способов и поиск оптимального решения
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Проще, если СуммаОбъема, СуммаВеса - это реквизиты формы
А цвет строк через условное оформление формы
СуммаОбъема=0;
СуммаВеса = 0;
Для Каждого Строка Из Объект.Товары Цикл
СуммаОбъема = СуммаОбъема + Строка.Количество * Строка.Объем;
СуммаВеса = СуммаВеса + Строка.Количество * Строка.Вес;
КонецЦикла;
А цвет строк через условное оформление формы
(6) У меня почему-то значение Строка.Объем и Строка.Вес равно 0, хотя в таблице указана единица, а как прописать ссылку не на колонки в таблице, а идентифицировать какой товар в данной строке и подхватить данные с номенклатуры
СуммаОбъема = СуммаОбъема + Строка.Количество * ЧТО НАПИСАТЬ ЗДЕСЬ ЧТОБЫ ДАННЫЕ ПОДТЯГИВАЛИСЬ НАПРЯМУЮ СО СПРАВОЧНИКА, ТОЛЬКО УКАЗАННОГО В СТРОКЕ ТОВАРА;
СуммаОбъема = СуммаОбъема + Строка.Количество * ЧТО НАПИСАТЬ ЗДЕСЬ ЧТОБЫ ДАННЫЕ ПОДТЯГИВАЛИСЬ НАПРЯМУЮ СО СПРАВОЧНИКА, ТОЛЬКО УКАЗАННОГО В СТРОКЕ ТОВАРА;
(27) Процедура с директивой на &НаСервере
СуммаОбъема=0;
СуммаВеса = 0;
Для Каждого Строка Из Объект.Товары Цикл
СуммаОбъема = СуммаОбъема + Строка.Количество * Строка.Номенклатура.Объем;
СуммаВеса = СуммаВеса + Строка.Количество * Строка.Номенклатура.Вес;
КонецЦикла;
(3) для уф можно сделать так
в тч создать колонку ИтогОбъем, снять ей видимость,писать в колонку суммируемый итог по объему, но только для первой строки
в самой таблице установить галку Подвал, а для колонки Объем для отображения итога в подвале таблицы выбрать в ПутьКДаннымПодвала = Таблица[0].ИтогОбъем
или же через реквизит объекта\формы, без заморочек с отображением итога по данным для подвала
Объект.СуммаОбъема = Объект.Таблица.Итог("Объем");
в тч создать колонку ИтогОбъем, снять ей видимость,писать в колонку суммируемый итог по объему, но только для первой строки
в самой таблице установить галку Подвал, а для колонки Объем для отображения итога в подвале таблицы выбрать в ПутьКДаннымПодвала = Таблица[0].ИтогОбъем
или же через реквизит объекта\формы, без заморочек с отображением итога по данным для подвала
Объект.СуммаОбъема = Объект.Таблица.Итог("Объем");
(7) создам я колонку, а как ее научить считать итог объема, она же сама не сможет умножить количество на вес из номенклатуры, нужно прописать, только как? мне не важно как это будет выглядеть можно и в подвале, но только КАК???((( я уже создавал колонку вес, сделал ссылку на номенклатуру вес, она показывает только вес 1 единицы товара.
(13) колонка Количество ПриИзменении() - перекинуть на сервер и там ТекущаяСтрока.Вес = ТекущаяСтрока.Количество*ТекущаяСтрока.Номенклатура.Вес или как там вес для номенклатуры определяется, в общем принцип должен быть понятен
дальше пересчитать итог
проще сделать это не для таблицы, а для реквизита объекта, как Объект.СуммаОбъема = Объект.Таблица.Итог("Объем")
с отораженим итога в подвале таблицы возни больше, да и реквизиты вы уже нарисовали
типа такого
ну и не забыть про связанные события таблицы при этом - изменение товара, удаление строки, изменение единицы измерения
дальше пересчитать итог
проще сделать это не для таблицы, а для реквизита объекта, как Объект.СуммаОбъема = Объект.Таблица.Итог("Объем")
с отораженим итога в подвале таблицы возни больше, да и реквизиты вы уже нарисовали
типа такого
&НаКлиенте
Процедура ТаблицаКоличествоПриИзменении()
ТаблицаКоличествоПриИзменнииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ТаблицаКоличествоПриИзменнииНаСервере()
лТекущаяСтрока = Таблица.НайтиПоИдентификатору(ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
лТекущаяСтрока.Объем = лТекущаяСтрока.Количество * [вес единицы товара];
ЭтотОбъект.СуммаОбъема = Таблица.Итог("Объем");
КонецПроцедуры
Показатьну и не забыть про связанные события таблицы при этом - изменение товара, удаление строки, изменение единицы измерения
(16)
{Документ.ЗаказКлиента.МодульОбъекта(925,20)}: Переменная не определена (Таблица)
лТекущаяСтрока = <<?>>Таблица.НайтиПоИдентификатору(ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока); (Проверка: Сервер)
{Документ.ЗаказКлиента.МодульОбъекта(928,28)}: Переменная не определена (Таблица)
ЭтотОбъект.СуммаОбъема = <<?>>Таблица.Итог("Объем"); (Проверка: Сервер)
&НаКлиенте
Процедура ТаблицаКоличествоПриИзменении()
ТаблицаКоличествоПриИзменнииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ТаблицаКоличествоПриИзменнииНаСервере()
лТекущаяСтрока = Таблица.НайтиПоИдентификатору(ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
лТекущаяСтрока.Объем = лТекущаяСтрока.Количество * [вес единицы товара];
ЭтотОбъект.СуммаОбъема = Таблица.Итог("Объем");
КонецПроцедуры
Процедура ТаблицаКоличествоПриИзменении()
ТаблицаКоличествоПриИзменнииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ТаблицаКоличествоПриИзменнииНаСервере()
лТекущаяСтрока = Таблица.НайтиПоИдентификатору(ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока);
лТекущаяСтрока.Объем = лТекущаяСтрока.Количество * [вес единицы товара];
ЭтотОбъект.СуммаОбъема = Таблица.Итог("Объем");
КонецПроцедуры
{Документ.ЗаказКлиента.МодульОбъекта(925,20)}: Переменная не определена (Таблица)
лТекущаяСтрока = <<?>>Таблица.НайтиПоИдентификатору(ЭтотОбъект.ТекущийЭлемент.ТекущаяСтрока); (Проверка: Сервер)
{Документ.ЗаказКлиента.МодульОбъекта(928,28)}: Переменная не определена (Таблица)
ЭтотОбъект.СуммаОбъема = <<?>>Таблица.Итог("Объем"); (Проверка: Сервер)
(20) Итог("Объем") - возвращает итог по колонке Объем, это метод таблицы значений
СуммаОбъема - реквизит формы или объекта, куда и помещается итог по колонке таблицы значений
не вводиться может по разным причинам, это уф
начиная с того, что надо форму обновить и заканчивая тем, что тип реквизита формы не соответствует типу значения итога
тут, если вроде все работать должно, а не работает, надо отладчиком пробежаться и убедиться, что итог есть, и в реквизит передается, а дальше уже думать почему отображение на форме не обновляется
читать можно любую книгу, Радченко хорош
СуммаОбъема - реквизит формы или объекта, куда и помещается итог по колонке таблицы значений
не вводиться может по разным причинам, это уф
начиная с того, что надо форму обновить и заканчивая тем, что тип реквизита формы не соответствует типу значения итога
тут, если вроде все работать должно, а не работает, надо отладчиком пробежаться и убедиться, что итог есть, и в реквизит передается, а дальше уже думать почему отображение на форме не обновляется
читать можно любую книгу, Радченко хорош
Какого вида элемент "СуммаОбъема".
Удали этот элемент. Создай новый реквизит формы СуммаОбъема (тип: число). Перетащи реквизит СуммаОбъема в дерево элементов формы. В коде пиши "СуммаОбъема = Объем1"
Аналогично с СуммаВеса.
Удали этот элемент. Создай новый реквизит формы СуммаОбъема (тип: число). Перетащи реквизит СуммаОбъема в дерево элементов формы. В коде пиши "СуммаОбъема = Объем1"
Аналогично с СуммаВеса.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот