Расчет общего объема и веса номенклатуры
Есть справочник Шаблоны Схем Пакования,там есть пакеты в которых есть объем и вес. Надо чтобы в справочнике номенклатура считался объем и вес со всех пакетов.
ERP Дописанная. Подготовила вот такой запрос:
Подскажите пожалуйста,как это выполнить?
ERP Дописанная. Подготовила вот такой запрос:
ВЫБРАТЬ
ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Длина,
ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Ширина,
ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Высота,
ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес,
ШаблоныСхемПакования.Владелец.Наименование,
ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем
ИЗ
Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШаблоныСхемПакования КАК ШаблоныСхемПакования
ПО ШаблоныСхемПакованияТЧСостав.Ссылка = ШаблоныСхемПакования.Ссылка
ПоказатьПодскажите пожалуйста,как это выполнить?
По теме из базы знаний
- Концепция автоматизации многопрофильного Холдинга в системе АУБ на платформе 1С
- Печать ТТН, 1-Т и Торг-12 с весом, упаковкой и количеством мест
- Навигация по функциональным опциям типовых конфигураций
- Как вывести итоговый вес и объем на форму документа Заказ клиента. УТ 11.4
- Расчет и вывод веса и объема товаров в УТ 11, КА 2, ERP 2
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ
СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Длина),
СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Ширина),
СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Высота),
СУММА( ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес),
ШаблоныСхемПакованияТЧСостав.Ссылка.Владелец,
СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем)
ИЗ
Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
ГРУППИРОВАТЬ ПО
ШаблоныСхемПакования.Владелец
Наверное как-то так, если я правильно понимаю, что владелец - это номенклатура
СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Длина),
СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Ширина),
СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Высота),
СУММА( ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес),
ШаблоныСхемПакованияТЧСостав.Ссылка.Владелец,
СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем)
ИЗ
Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
ГРУППИРОВАТЬ ПО
ШаблоныСхемПакования.Владелец
Наверное как-то так, если я правильно понимаю, что владелец - это номенклатура
(2)Сделала вот так. Но неправильно считает. Должно быть 2,а он пишет 0,02
ЗапросОбъем=Новый Запрос;
ЗапросОбъем.Текст= "ВЫБРАТЬ
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес) КАК Вес,
| ШаблоныСхемПакования.Владелец.Наименование,
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем) КАК Объем
|ИЗ
| Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШаблоныСхемПакования КАК ШаблоныСхемПакования
| ПО ШаблоныСхемПакованияТЧСостав.Ссылка = ШаблоныСхемПакования.Ссылка
|ГДЕ
| ШаблоныСхемПакования.Владелец.Наименование = &Наименование
|
|СГРУППИРОВАТЬ ПО
| ШаблоныСхемПакования.Владелец.Наименование" ;
ЗапросОбъем.УстановитьПараметр("Наименование", Ссылка);
РезультатЗапроса = ЗапросОбъем.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Объем=ВыборкаДетальныеЗаписи.Объем;
КонецЦикла;
КонецПроцедуры
Показать
(5)Поменяла и нашла вот такую ошибку
ЗапросОбъем=Новый Запрос;
ЗапросОбъем.Текст= "ВЫБРАТЬ
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес) КАК Вес,
| ШаблоныСхемПакования.Владелец.Наименование,
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем) КАК Объем
|ИЗ
| Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШаблоныСхемПакования КАК ШаблоныСхемПакования
| ПО ШаблоныСхемПакованияТЧСостав.Ссылка = ШаблоныСхемПакования.Ссылка
|ГДЕ
| ШаблоныСхемПакования.Владелец.Наименование = &Наименование
|
|СГРУППИРОВАТЬ ПО
| ШаблоныСхемПакования.Владелец" ;
ЗапросОбъем.УстановитьПараметр("Наименование", Ссылка);
Выборка = ЗапросОбъем.Выполнить().Выбрать();
//ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Элемент = Выборка.Ссылка.ПолучитьОбъект();
Элемент.Объем= Выборка.Объем;
// ЭлементыФормы.Объем=ВыборкаДетальныеЗаписи.Объем;
// ЭлементыФормы.Вес=ВыборкаДетальныеЗаписи.Вес;
КонецЦикла;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
(13)И, судя по в запросе Вы должны выбрать поле ссылка
Выборка.Ссылка.ПолучитьОбъект();
"ВЫБРАТЬ
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес) КАК Вес,
| ШаблоныСхемПакования.Владелец.Наименование,
| ШаблоныСхемПакования.Ссылка, //ВОТ ЭТОЙ СТРОКИ НЕ ХВАТАЕТ
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем) КАК Объем
|ИЗ
| Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШаблоныСхемПакования КАК ШаблоныСхемПакования
| ПО ШаблоныСхемПакованияТЧСостав.Ссылка = ШаблоныСхемПакования.Ссылка
|ГДЕ
| ШаблоныСхемПакования.Владелец.Наименование = &Наименование
|
|СГРУППИРОВАТЬ ПО
| ШаблоныСхемПакования.Владелец"
Показать
(17)
Сейчас у меня вот так
ЗапросОбъем=Новый Запрос;
ЗапросОбъем.Текст= "ВЫБРАТЬ
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес) КАК Вес,
| ШаблоныСхемПакования.Владелец,
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем) КАК Объем
|ИЗ
| Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШаблоныСхемПакования КАК ШаблоныСхемПакования
| ПО ШаблоныСхемПакованияТЧСостав.Ссылка = ШаблоныСхемПакования.Ссылка
|ГДЕ
| ШаблоныСхемПакования.Владелец = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ШаблоныСхемПакования.Владелец" ;
ЗапросОбъем.УстановитьПараметр("Ссылка", Ссылка);
Выборка = ЗапросОбъем.Выполнить().Выбрать();
//ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Элемент = Выборка.Ссылка.ПолучитьОбъект();
Элемент.Объем= Выборка.Объем;
Элемент.Записать();
// ЭлементыФормы.Объем=ВыборкаДетальныеЗаписи.Объем;
// ЭлементыФормы.Вес=ВыборкаДетальныеЗаписи.Вес;
КонецЦикла;
КонецПроцедуры
ПоказатьСейчас у меня вот так
(26)При первом входе происходит обработка и запись данных. На сколько я понял, Вы свою доработку выставили в процедуру перед открытием, а это событие происходит уже после того как данные получены на сервере и переданы на клиента. Чтобы увидеть актуальные данные сразу, Вам необходимо выполнять свой код в процедуре "ПриСозданииНаСервере".
(36)
Ничего не срабатывает
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗапросОбъем=Новый Запрос;
ЗапросОбъем.Текст= "ВЫБРАТЬ
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес) КАК Вес,
| ШаблоныСхемПакования.Владелец,
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем) КАК Объем,
| ШаблоныСхемПакования.Ссылка
|ИЗ
| Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШаблоныСхемПакования КАК ШаблоныСхемПакования
| ПО ШаблоныСхемПакованияТЧСостав.Ссылка = ШаблоныСхемПакования.Ссылка
|ГДЕ
| ШаблоныСхемПакования.Владелец = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ШаблоныСхемПакования.Владелец,
| ШаблоныСхемПакования.Ссылка" ;
ЗапросОбъем.УстановитьПараметр("Ссылка", Ссылка);
Выборка = ЗапросОбъем.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Элемент = Выборка.Владелец.ПолучитьОбъект();
Элемент.Объем= Выборка.Объем;
Элемент.Вес=Выборка.Вес;
Элемент.Записать();
КонецЦикла;
КонецПроцедуры
ПоказатьНичего не срабатывает
(8)Наименование сравнивать как минимум не корректно.... В справочнике могут быть записи наподобие: "Тара стекло", "тара стекло", " тара Стекло", "Тара стекло", "Тара Стекло " и при условии поиска по наименованию "Тара стекло" в результате окажется только 1 строка. А если еще и это наименование пользователь случайно изменит(например поставит лишний пробел), то в результате запроса будет вообще 0
(46)
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ЗапросОбъем=Новый Запрос;
ЗапросОбъем.Текст= "ВЫБРАТЬ
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес) КАК Вес,
| ШаблоныСхемПакования.Владелец,
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем) КАК Объем,
| ШаблоныСхемПакования.Ссылка
|ИЗ
| Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШаблоныСхемПакования КАК ШаблоныСхемПакования
| ПО ШаблоныСхемПакованияТЧСостав.Ссылка = ШаблоныСхемПакования.Ссылка
|ГДЕ
| ШаблоныСхемПакования.Владелец = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ШаблоныСхемПакования.Владелец,
| ШаблоныСхемПакования.Ссылка" ;
ЗапросОбъем.УстановитьПараметр("Ссылка", Ссылка);
Выборка = ЗапросОбъем.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Элемент = Выборка.Владелец.ПолучитьОбъект();
Элемент.Объем= Выборка.Объем;
Элемент.Вес=Выборка.Вес;
Элемент.Записать();
КонецЦикла;
ПоказатьПроцедура ПередОткрытием(Отказ, СтандартнаяОбработка)
//Перед типовым кодом
ПосчитатьОбъемы(Ссылка);
//Далее типовой код
...................
...............
КонецПроцедуры
Процедура ПосчитатьОбъемы(Ссылка)
ЗапросОбъем=Новый Запрос;
ЗапросОбъем.Текст= "ВЫБРАТЬ
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Вес) КАК Вес,
| ШаблоныСхемПакования.Владелец,
| СУММА(ШаблоныСхемПакованияТЧСостав.ШаблонУпаковки.Объем) КАК Объем,
| ШаблоныСхемПакования.Ссылка
|ИЗ
| Справочник.ШаблоныСхемПакования.ТЧСостав КАК ШаблоныСхемПакованияТЧСостав
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШаблоныСхемПакования КАК ШаблоныСхемПакования
| ПО ШаблоныСхемПакованияТЧСостав.Ссылка = ШаблоныСхемПакования.Ссылка
|ГДЕ
| ШаблоныСхемПакования.Владелец = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ШаблоныСхемПакования.Владелец,
| ШаблоныСхемПакования.Ссылка" ;
ЗапросОбъем.УстановитьПараметр("Ссылка", Ссылка);
Выборка = ЗапросОбъем.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Элемент = Выборка.Владелец.ПолучитьОбъект();
Элемент.Объем= Выборка.Объем;
Элемент.Вес=Выборка.Вес;
Элемент.Записать();
КонецЦикла;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот