- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
Процедура СводПродажКоличество_Свод()
ТаблицаПродаж.Очистить();
//Здесь с учетом возвратов
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ТоварыОрганизацийОбороты.Номенклатура,
| ТоварыОрганизацийОбороты.КоличествоРасход КАК Количество
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Обороты(&Период1, &Период2, Период, Склад = &Склад) КАК ТоварыОрганизацийОбороты";
Запрос.УстановитьПараметр("Период1" , НачалоДня(НачДата));
Запрос.УстановитьПараметр("Период2" , КонецДня(КонДата));
Запрос.УстановитьПараметр("Склад" , СкладПриемник);
Рез=Запрос.Выполнить().Выбрать();
Пока Рез.Следующий() Цикл
Нов=ТаблицаПродаж.Добавить();
Нов.Номенклатура=Рез.Номенклатура;
Нов.Количество=Рез.Количество;
КонецЦикла;
ТаблицаПродаж.Свернуть("Номенклатура","Количество");
КонецПроцедуры
Вот так некоторые суровые красноярские 1С-ники феерически говнокодят в вакууме!
levxxx 24.02.2016 14:58 # 0
HomoAlbus 25.02.2016 10:54 # 0
Во-вторых, ТаблицаПродаж.Свернуть("Номенклатура","К оличество"); - Группировка в запросе для слабаков?
Может автор еще что приметил. В целом, конечно, не такое лютое гавно, как ты постишь, а просто плохой код.
saturn5 28.02.2016 00:13 # 0
1. Вместо
Нов=ТаблицаПродаж.Добавить();
Нов.Номенклатура=Рез.Номенклатура;
Нов.Количество=Рез.Количество;
можно написать ЗаполнитьЗначенияСвойств(ТаблицаПродаж.Д обавить(), Рез);
получится:
Рез=Запрос.Выполнить().Выбрать();
Пока Рез.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ТаблицаПродаж.Д обавить(), Рез);
КонецЦикла;
потом вроде мысль появляется: а зачем все это? Тогда:
2. ТаблицаПродаж.Загрузить(Запрос.Выполнить ().Выгрузить());
благо, что наименования колонок в ТЗ и синонимы полей в запросе совпадают.
Итого: одна строка вместо
Рез=Запрос.Выполнить().Выбрать();
Пока Рез.Следующий() Цикл
Нов=ТаблицаПродаж.Добавить();
Нов.Номенклатура=Рез.Номенклатура;
Нов.Количество=Рез.Количество;
КонецЦикла;
еще и ТаблицаПродаж.Очистить(); можно убрать.
3. А потом смотрим на запрос и думаем: "а зачем этот цикл нужен?".
saturn5 28.02.2016 00:19 # 0
mrbus 07.06.2016 23:22 # 0
Синтакс-помощник по таблице оборотов рег. накопления: "Агрегация производится по измерениям указанным в запросе". Как и во многих других вирт. таблицах. Все уже сгруппировано.
vi00 05.10.2016 12:41 # 0
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура,
| КоличествоРасход КАК Количество
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Обор оты(&Период1, &Период2, , Склад = &Склад)";
Запрос.УстановитьПараметр("Период1", НачалоДня(НачДата));
Запрос.УстановитьПараметр("Период2", КонецДня(КонДата));
Запрос.УстановитьПараметр("Склад", СкладПриемник);
ТаблицаПродаж=Запрос.Выполнить().Выгрузи ть();
barop 05.10.2016 14:59 # 0
vi00 05.10.2016 16:34 # 0
guest 13.05.2016 10:44 # 0