Как вывести итоговый вес и объем на форму документа Заказ клиента. УТ 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С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

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

7200 руб.

02.08.2023    4322    16    1    

33

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

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

29400 руб.

29.06.2023    6185    15    5    

24

Печатные формы Адаптация типовых решений Бухгалтер Пользователь Платформа 1С v8.3 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, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    6897    73    17    

30

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

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    5353    dimanich70    15    

22

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    7427    dimanich70    10    

19

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    3719    30    TempTablesManager    14    

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