Как вывести итоговый вес и объем на форму документа Заказ клиента. УТ 11.4

16.01.20

Задачи пользователя - Адаптация типовых решений

Всем привет, долго ломал голову, но с помощью тыка и подсказок более опытных программистов, вот что мне удалось достичь и как это я сделал. Открываем конфигуратор - заходим в Документы-Заказ-Клиенту-Формы-ФормаДокумента, все будем делать только здесь, снизу формы две вкладки, в общем сама форма и модуль (как открыть, смотри рисунок - открыть форму).

Создаем два табличных поля, у меня это ТоварВес и ТоварОбъем, указываем путь к данным - Объект.Товары.Номенклатура.Вес(Числитель) и указываем заголовок в свойствах, для более корректного отображения в списке колонок (смотри рисунок Создаем 2 поля)

 

.
Создаем реквизиты итоговых значений у меня это ИтогВес и ИтогОбъем с типом число, характеристики указывайте сами по умолчанию 10,3 (для создания реквизита нажмите на маленький плюсик в области реквизитов (смотри рисунок Реквизиты для итоговых)

 

.


Далее, поочередно цепляем мышкой созданные реквизиты в дерево формы, туда где вам необходимо, я сделал снизу (смотри рисунок Размещаем рисунок на форме)

 

Указываем Заголовок, вид выбираем поле надписи, путь присвоен автоматически. 
После этого в нижней части окна переходим на вкладку модуль и ищем процедуру ТоварыКоличествоУпаковокПриИзменении, и вставляем следующий код

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

 

(смотри рисунок код модуля)

 


После этого обновляем конфигурацию и смотрим что получилось Рисунок в итоге.

 

Т.е. после изменения количества снизу у нас просчитывается общий вес и объем всех товаров, а в колонках прописан вес и объем за 1 единицу товара.

При проверке выяснилось, что при выходе данные автоматически не проставляются, все что для этого нужно, чтобы при открытии заказа клиента, у вас уже были посчитаны данные, это в модуле формы документа найти процедуру ПриОткрытии и вставить в конец, тот же код.

Если Вам не нужны колонки с отображением веса за единицу, то можете их скрыть и создать новые или изменить заголовок для вывода общих построчных значений, ну например вы количество меняете на 4 вес товара у вас при этом 5 кг, и вместо 5 в окне должно писаться 20, т.е. сумма именно этих товаров в зависимости от количества, то нам необходимо, я не стал удалять текущие колонки,  создал новые Вес товара и Объем Товара. Дальше открыл конфигурации раскрыл документ заказ клиента, табличные части, товары и правой кнопкой создал реквизиты табличной части ВесТовара и ОбъемТовара, с типом Число, 15,3, далее как я уже и писал создал 2 поля ВесТовара иОбъем товара и указал путь к этим 2 реквизитам (смотри рисунок подсчет строк)

После этого заходим в модуль объекта формы и дополняем в те места где вставляли первоначальный код, следующий код

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

Смотрим что получилось, вес и объем за 1 единицу товара я скрыл убрав в свойствах галочку видимость и теперь у меня построчный расчет веса и объема.

Смотри рисунок что вышло

Ребята при работе выяснилось, что данный код не работает в тонком клиенте, поэтому создайте следующую функцию прямо в модуле документа

//VID( добавляем наши реквизиты для тонкого клиента, без этой функции, код указанный при открытии ипри изменении количества работает только на толстом клиенте
 
&НаСервереБезКонтекста
Функция ПолучитьСведенияНоменклатуры(Номенклатура)
Возврат ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Номенклатура, "ОбъемЧислитель, ВесЧислитель");
КонецФункции
//VID)

и измените предыдущий код, во всех местах куда его вставляли!

//VID(
	  Объем1 = 0; 
      Вес1 = 0; 
      Для Каждого Строка Из Объект.Товары Цикл 

      СведенияНоменклатуры = ПолучитьСведенияНоменклатуры(Строка.Номенклатура); 

      Объем1 = Объем1 + Строка.Количество * СведенияНоменклатуры.ОбъемЧислитель; 
      Вес1 = Вес1 + Строка.Количество * СведенияНоменклатуры.ВесЧислитель; 

     Строка.ВесТовара = Строка.Количество * СведенияНоменклатуры.ВесЧислитель;
	  Строка.ОбъемТовара = Строка.Количество * СведенияНоменклатуры.ОбъемЧислитель;
	  
      КонецЦикла; 
      ИтогоВес = Вес1; 
      ИтогоОбъем = Объем1;     	  
	
//VID)	


Теперь надеюсь, точно все, пока полет нормальный

Спасибо, что прочли эту статью, всем всего хорошего.

Вступайте в нашу телеграмм-группу Инфостарт

VID УТ11.4 УФ

См. также

Адаптация типовых решений 1С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

32330 руб.

29.06.2023    11556    34    15    

41

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

5500 руб.

07.02.2023    12423    115    20    

71

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    7102    2    2    

6

Адаптация типовых решений 1С 8.3 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Беларусь Россия Платные (руб)

Расширение "Дополнительные документы" предназначено для создания дополнительных документов различного назначения, как форм для внесения данных так и печатных форм в расширяемой конфигурации пользовательскими средствами, без работы в конфигураторе и внесения изменений в структуру данных. Тестировалось для "1С:БП", "1С:УНФ","1С:КА"

21859 руб.

29.12.2025    1005    1    8    

2

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Решение позволяет автоматически заполнять отдельные реквизиты загружаемых банковских документов, основываясь на известных значениях реквизитов и тексте назначения платежа. Простая настройка, широкие возможности анализа назначения платежа без написания кода и сложных шаблонов.

9760 руб.

17.06.2025    2999    8    0    

8

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Расширение для УНФ, чтобы автоматически отменять старые резервы и не мешалть эффективно продавать.

9150 руб.

02.08.2023    7814    25    5    

41

Адаптация типовых решений 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Расширение для вывода информации об остатках и ценах номенклатуры в форме списка и выбора номенклатуры. (УТ 11, КА 2, ERP). Позволяет получать информацию о ценах, остатках и доступности в разрезе складов и характеристик номенклатуры, информацию по документам резерва.

7930 руб.

16.10.2025    1014    1    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. PowerBoy 3493 24.01.20 08:12 Сейчас в теме
Проще вывести в подвал табличной части. Да и итоговые суммы колонок уже есть подсчитанные в реквизитах таб.части.
Для колонки:
ПутьКДаннымПодвала:Объект.Товары.ИтогКоличествоУпаковок
EvgeniyOlxovskiy; Ali1976; +2 Ответить
2. VID1234 148 24.01.20 08:22 Сейчас в теме
(1) Спасибо. Как нибудь попробую!
3. Bamovec 08.06.20 10:47 Сейчас в теме
(2) Вызывать лучше из процедуры ТоварыПриОкончанииРедактирования т.к. могут поменять наименование номенклатуры и вес не пересчитает
4. DanDy 57 13.07.20 17:32 Сейчас в теме
(3)А еще лучше для такого использовать расширения, чтобы при обновлении не затиралось.
7. user1696980 10.11.21 16:28 Сейчас в теме
(4) А есть такое расширение?
5. patimka 11.09.20 04:12 Сейчас в теме
Лично мне непонятно, почему игнорируется весЗнаменатель. Иногда указывают сколько в килограммах грамм. Кроме умножения на вес числитель надо бы разделить на вес знаменатель.
6. VID1234 148 11.09.20 09:21 Сейчас в теме
(5)Здравствуйте. Это уже смотря какие потребности, для меня этого было достаточно, но если Вам этого недостаточно, то почему бы и нет.
8. sasha-asn 24.01.22 12:40 Сейчас в теме
9. VID1234 148 24.01.22 14:34 Сейчас в теме
(8)Здравствуйте. Я рад. Хорошего дня!
10. vkholodnov 7 17.03.22 06:58 Сейчас в теме
Почему именно цикл? Это актуально на малом кол-ве записей. А если их будет 2000? Рекомендую такую схему:

Кол = Объект.Товары.Итог("Количество");
Объект.ОбщийВес = Объект.Товары.Итог("Вес") *Кол;
Объект.ОбщийОбъем = Объект.Товары.Итог("Объем") *Кол;


Всего 3 строчки кода.
11. chuff 26.04.22 09:32 Сейчас в теме
(10) Страшно даже представить, какой получится общий вес, если общее количество единиц товара умножить на сумму всех весов.
Например, первая строка 1 шт 1 кг, вторая 1 шт 10кг, итоговый вес будет (1 + 1) * (1 + 10) = 22кг...
12. user936084 26.04.22 13:11 Сейчас в теме
Верно подмечено , нужно суммировать !
Для отправки сообщения требуется регистрация/авторизация