Вывод веса и объема номенклатуры в заказе клиента (УТ 11)

28.01.24

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

Статья ориентирована на программиста и содержит пример реализации вывода веса и объема номенклатуры (справочно) в ТЧ "Товары" документа "ЗаказКлиента" в УТ 11.5.

Скачать исходный код

Наименование Файл Версия Размер
Вывода веса и объема номенклатуры (справочно) в заказе клиента (УТ11)
.cfe 114,80Kb
33
.cfe 1.0 114,80Kb 33 Скачать

Привожу пример реализации сей задачи для документа "Заказ клиента".

1. Добавим реквизиты формы:

Реквизит/Путь Тип
Товары.Вес Число(15,3)
Товары.Объем Число(15,3)
Товары.ЕдиницаИзмеренияВеса

СправочникСсылка.УпаковкиЕдиницыИзмерения

Товары.ЕдиницаИзмеренияОбъема  СправочникСсылка.УпаковкиЕдиницыИзмерения
Товары.ВесУпаковки

Число(18,9)

Товары.ОбъемУпаковки Число(18,9)

 

 

 

 

 

 

2. Внесём изменения в обработчики ПриИзменении() количества и упаковок:

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

	//++
	СтруктураДействий.Вставить("ЗаполнитьВесУпаковки",Новый Структура("Номенклатура, Упаковка", "ВесУпаковки"));
	СтруктураДействий.Вставить("ЗаполнитьОбъемУпаковки",Новый Структура("Номенклатура, Упаковка", "ОбъемУпаковки"));
	СтруктураДействий.Вставить("ЗаполнитьЕдиницуИзмеренияВеса",Новый Структура("Номенклатура, Упаковка", "ЕдиницаИзмеренияВеса"));
	СтруктураДействий.Вставить("ЗаполнитьЕдиницуИзмеренияОбъема",Новый Структура("Номенклатура, Упаковка", "ЕдиницаИзмеренияОбъема"));
	СтруктураДействий.Вставить("ПересчитатьВесОбъем");
	//--
	
	ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
    ...
	
КонецПроцедуры

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

&НаКлиентеНаСервереБезКонтекста
Процедура ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, Объект)
	
	СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
	СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСумму");
	СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
	СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
	СтруктураДействий.Вставить("ЗаполнитьДубликатыЗависимыхРеквизитов", ЗависимыеРеквизиты());
	
	//++
	СтруктураДействий.Вставить("ЗаполнитьВесУпаковки",Новый Структура("Номенклатура, Упаковка", "ВесУпаковки"));
	СтруктураДействий.Вставить("ЗаполнитьОбъемУпаковки",Новый Структура("Номенклатура, Упаковка", "ОбъемУпаковки"));
	СтруктураДействий.Вставить("ЗаполнитьЕдиницуИзмеренияВеса",Новый Структура("Номенклатура, Упаковка", "ЕдиницаИзмеренияВеса"));
	СтруктураДействий.Вставить("ЗаполнитьЕдиницуИзмеренияОбъема",Новый Структура("Номенклатура, Упаковка", "ЕдиницаИзмеренияОбъема"));
	СтруктураДействий.Вставить("ПересчитатьВесОбъем");
	//--

КонецПроцедуры

4. И не забудем про условное оформление и инициализацию реквизитов при чтении объекта:

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
    ...

    //++
	СтруктураДействий = Новый Структура();
	СтруктураДействий.Вставить("ЗаполнитьВесУпаковки",Новый Структура("Номенклатура, Упаковка", "ВесУпаковки"));
	СтруктураДействий.Вставить("ЗаполнитьОбъемУпаковки",Новый Структура("Номенклатура, Упаковка", "ОбъемУпаковки"));
	СтруктураДействий.Вставить("ЗаполнитьЕдиницуИзмеренияВеса",Новый Структура("Номенклатура, Упаковка", "ЕдиницаИзмеренияВеса"));
	СтруктураДействий.Вставить("ЗаполнитьЕдиницуИзмеренияОбъема",Новый Структура("Номенклатура, Упаковка", "ЕдиницаИзмеренияОбъема"));
	СтруктураДействий.Вставить("ПересчитатьВесОбъем");
	Для Каждого Стр Из Объект.Товары Цикл
		ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(Стр, СтруктураДействий, Неопределено);
	КонецЦикла;
    //--	
	
КонецПроцедуры

&НаСервере
Процедура УстановитьУсловноеОформление()
    
    ...

    //++
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыВес.Имя);
	
	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ВесУпаковки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = 0;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не используется>'"));
	Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
	
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыОбъем.Имя);
	
	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ОбъемУпаковки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = 0;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
	Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<не используется>'"));
	Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
	
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЕдиницаИзмеренияВеса.Имя);
	
	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ВесУпаковки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = 0;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
	
	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЕдиницаИзмеренияОбъема.Имя);
	
	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ОбъемУпаковки");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = 0;
	
	Элемент.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
    //--
    
    ...
	
КонецПроцедуры

Добавил пример в виде расширения. Протестировано в УТ 11.5.12.215 (платформа 8.3.23.1782).

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.12.215

УТ11 Вес Объем Заказ клиента

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

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

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

29400 руб.

29.06.2023    4872    10    5    

19

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

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

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

7200 руб.

02.08.2023    3246    5    0    

22

Каждому менеджеру нужен свой Excel

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

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

2 стартмани

22.04.2024    4352    dimanich70    15    

18

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

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

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

01.03.2024    2424    dimanich70    8    

15

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

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

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

1 стартмани

27.10.2023    2279    19    avmartynov    14    

44

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2494    34    progmaster    8    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user743102 26.01.19 11:46 Сейчас в теме
Зачем вес и объем выводить в заказ клиента?
2. Fox-trot 158 26.01.19 12:05 Сейчас в теме
(1)видимо так решил заказчик
или ты думаешь, что программист?
fomix; triviumfan; +2 Ответить
3. user743102 26.01.19 12:13 Сейчас в теме
(2) Видимо бог велел, или мамка сказала, так можно долго перечислять, а я конкретно спрашиваю, интересно же)
4. Fox-trot 158 26.01.19 12:17 Сейчас в теме
(3)в моем случае заказчик
5. marko_polo 22.10.19 23:00 Сейчас в теме
для сверки веса заказа поставщику и веса накладной транспортной компании.
для ориентира по машине для перевозки заказа и тд.
zif74; kseonbr; +2 Ответить
6. Xershi 1491 13.01.20 18:41 Сейчас в теме
Нужно было посчитать в ПФ тоже самое. В модуле менеджера упаковки есть функция, которая все это выводит.
7. BarsukM 18.02.20 15:31 Сейчас в теме
Если единица измерения количества отличается от единицы хранения, то при изменении номенклатуры пересчет веса-объема не происходит.
И нет ли какой-нибудь функции подсчета итогов по весу-объему?
8. triviumfan 94 01.05.20 14:57 Сейчас в теме
(7)
И нет ли какой-нибудь функции подсчета итогов по весу-объему?

Не видел сообщения, почему-то у меня оповещений нет.
РассчитатьИтоговыеПоказателиЗаказа();
9. Ulus 289 20.07.20 07:20 Сейчас в теме
если в форма в расширение закинуто не проще элементы формы интерактивно добавить, а не рисовать их программно в УстановитьУсловноеОформление()
triviumfan; +1 Ответить
10. triviumfan 94 19.10.20 10:38 Сейчас в теме
(9) согласен. Почему-то до сих пор не вижу оповещений.
11. rogovae 1 10.12.21 11:56 Сейчас в теме
(10) Вопрос есть к Вам. Как в ЛС можно обратиться?
Ошибки при загрузке Расширения.
Прикрепленные файлы:
12. triviumfan 94 10.12.21 13:46 Сейчас в теме
(11) ох, похоже оно давно не актуально. Вообще оно больше для программистов, чтобы они адаптировали под себя.
Попробую на выходных исправить его для последней платформы.
13. rogovae 1 10.12.21 13:48 Сейчас в теме
(12)
Ну я сопоставление сделал, вроде работает. Есть вопрос в ЛС можем пообщаться?
14. triviumfan 94 10.12.21 13:50 Сейчас в теме
(13) Можем. Вроде профиль открыт.
15. rogovae 1 10.12.21 13:52 Сейчас в теме
(14)
Странно у меня нет возможности написать.
16. Serezha_Ivchik 16.11.22 20:48 Сейчас в теме
Вес номенклатуры и объем выводит пересчёт делает только при изменение количества относительно веса а вот при изменение веса количество не меняется и если определенно установить вес превышающий вес упаковки распределение по расчёту количества в шт и количества в упаковках не будет
17. Serezha_Ivchik 16.11.22 20:55 Сейчас в теме
не подскажите как доработать данную об
работку
18. triviumfan 94 25.01.24 10:08 Сейчас в теме
Судя по скачиваниям, то доработка до сих пор актуальна. В ближайшее время актуализирую расширение, а то не совсем приятно, что люди скачивают, а оно, вероятно, уже "не встаёт" на современные версии.
19. triviumfan 94 29.01.24 10:27 Сейчас в теме
(18) Обновил расширение под УТ (11.5.12.215).
Колонки справочные, интерактивное редактирование веса и объема не предусмотрено.
Оставьте свое сообщение