|
Группировка строк табличной части Товары | ☑ | ||
---|---|---|---|---|
0
newtech77777
27.08.11
✎
20:59
|
Имеется табличная часть с такими данными
N Код Номенклатура Количество Цена Единица К. Сумма Всего ГТД 1 ЦБ165179 Глушитель 0219-01-07134P 4MAX 2,000 30,25 шт 1,000 60,50 60,50 2 ЦБ165179 Глушитель 0219-01-07134P 4MAX 1,000 25,45 шт 1,000 25,45 25,45 3 ЦБ154667 Глушитель 10049 ASMET 2,000 29,32 шт 1,000 58,64 58,64 4 ЦБ154667 Глушитель 10049 ASMET 1,000 25,45 шт 1,000 25,45 25,45 6,000 Цена закупочная 170,04 170,04 Написал такой код для группировки строк с одинаковой номенклатурой и вычислением средней цены., все прекрасно работает, но есть одно но., очищаются поля ЕДИНИЦА И КОЭФФИЦИЕНТ, как реализовать так , чтоб эти реквизиты оставались? Процедура КоманднаяПанельТоварыКнопкаГруппировкаПоНаименованию(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |К.Номенклатура, |К.Количество, |К.Цена |ПОМЕСТИТЬ ТЧ |ИЗ |&ТЗ КАК К |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЧ.Номенклатура, | СУММА(ТЧ.Количество) как Количество, | СРЕДНЕЕ(ТЧ.Цена) как Цена |ИЗ | ТЧ КАК ТЧ |СГРУППИРОВАТЬ ПО | ТЧ.Номенклатура"; Запрос.УстановитьПараметр("ТЗ",Товары.Выгрузить()); // Здесь мы передаем наши значения ТЧ во временную таблицу Товары.Загрузить(Запрос.Выполнить().Выгрузить()); // А здесь мы загружаем в ТЧ уже сгруппированные данные КонецПроцедуры |
|||
1
Axel2009
27.08.11
✎
21:02
|
сгруппировать по этим полям тоже?
|
|||
2
Лефмихалыч
27.08.11
✎
21:02
|
Товары.Свернуть("Номенклатура, Цена, Единица, Коэффициент, ГТД", "Количество,Сумма,Всего");
|
|||
3
newtech77777
27.08.11
✎
21:25
|
2 В данном случае группировка работает если строки совершенно одинаковы , а у меня цена номенклатуры в одной накладной может быть разная, мне нужно сгруппировать с вычислением средней цены,так же нужно учесть чтоб общая сумма всей накладной не менялась при округлении
|
|||
4
newtech77777
27.08.11
✎
21:47
|
(2)В общем удалил из кода ЦЕНА и ГТД , все заработало., теперь как бы выполнить событие изменение суммы , для всех строк таблицы, для того чтоб пересчиталась цена., так как она в данном случае очистилась.
|
|||
5
Лефмихалыч
27.08.11
✎
21:49
|
(3) тогда единицу и кожффициент засовывай в ту же временную таблицу, из которой ты сейчас данные получаешь и бери от них максимум, минимум или среднее на выбор.
Только какой смысл получат среднюю температуру по больнице, включая морг, не понятно |
|||
6
newtech77777
27.08.11
✎
22:03
|
(5) мы нашему поставщику заказываем одну и туже номенклатуру с разделением во времени, товар собирается у него на складе и он уже его отправляет одной накладной , но с разной ценой (так как он так же закупает с разницей, во времени). Наша конфигурация не понимает в одной накладной одинаковый товар по разной цене , потому и приходится вычислять среднее.
Ваш метод мне больше понравился и как бы даже работает, как пересчитать каждую строку сумма / количество? |
|||
7
Eugeneer
27.08.11
✎
22:06
|
У всех все работает так же. Но одни вы решили что надо править конфигурацию. лол.
|
|||
8
Лефмихалыч
27.08.11
✎
22:09
|
(6) я разрешаю тебе в запросе использовать арифметические операции, если ты об этом. А вообще, это один из тех редчайших случаев. когда Eugeneer прав
|
|||
9
newtech77777
27.08.11
✎
22:15
|
(7) а как Вы решаете эту проблему?
|
|||
10
newtech77777
27.08.11
✎
23:37
|
(8)(7) вот результат , все работает
// Группирует строки по наименованию с вычислением цены Процедура КоманднаяПанельТоварыКнопкаГруппировкаПоНаименованию(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | К.Номенклатура, | К.Количество, | К.Цена, | К.ЕдиницаИзмерения, | К.Коэффициент, | К.Сумма, | К.СуммаВсего |ПОМЕСТИТЬ ТЧ |ИЗ | &ТЗ КАК К |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЧ.Номенклатура, | СУММА(ТЧ.Сумма) / СУММА(ТЧ.Количество) КАК Цена, | ТЧ.ЕдиницаИзмерения, | ТЧ.Коэффициент, | СУММА(ТЧ.Количество) КАК Количество, | СУММА(ТЧ.Сумма) КАК Сумма, | СУММА(ТЧ.СуммаВсего) КАК СуммаВсего |ИЗ | ТЧ КАК ТЧ | |СГРУППИРОВАТЬ ПО | ТЧ.ЕдиницаИзмерения, | ТЧ.Коэффициент, | ТЧ.Номенклатура"; Запрос.УстановитьПараметр("ТЗ",Товары.Выгрузить()); // Здесь мы передаем наши значения ТЧ во временную таблицу Товары.Загрузить(Запрос.Выполнить().Выгрузить()); // А здесь мы загружаем в ТЧ уже сгруппированные данные КонецПроцедуры |
|||
11
Amiralnar
28.08.11
✎
06:34
|
> конфигурация не понимает в одной накладной одинаковый товар по разной цене
Это то за чудо конфигурация? |
|||
12
Eugeneer
28.08.11
✎
21:07
|
(11) я ткокпат! у него стоит регистрация цен. она не позволяет регистрировать один товар два раза!
|
|||
13
Eugeneer
28.08.11
✎
21:08
|
телепат....
ксати они по ебнутому работают. эта регистрация ваще накуй не нужна |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |