Вопрос по обработке(дополнительный отчет)

1. kolbaska228 11.01.17 13:21 Сейчас в теме
Есть обработка которая показывает сколько продал данный контрагент по определенному товару и выдает ему бонус за это. Вопрос в том как добавить дополнительное условие. Проблема в том чтобы обработка не показывала товары которые стоят с пометкой (06- Возврат товара и 07- Уикенд, Брак, Пересорт). То есть надо сделать отбор по этому значению как указано на картинке
Вот сам код
Процедура КоманднаяПанель1Сформировать(Кнопка) 
ТабДок = ЭлементыФормы.ТабДок; 
ТабДок.АвтоМасштаб = Истина; 
ТабДок.Очистить(); 
Макет = ОбработкаОбъект.ПолучитьМакет("Макет"); 
Макет.Защита = Истина; 

Запрос = Новый Запрос; 
Запрос.Текст =" 
|ВЫБРАТЬ 
| Контрагенты.Ссылка КАК Сотрудник
|ПОМЕСТИТЬ Сотрудники 
|ИЗ 
| Справочник.Контрагенты КАК Контрагенты 
|ГДЕ 
| Контрагенты.Ссылка В(&Сотрудники) 
|; 

////////////////////////////////////////////////////////////­//////////////////// 
|ВЫБРАТЬ 
| Сотрудники.Сотрудник КАК Сотрудник, 
| ПродажиОбороты.Номенклатура КАК Номенклатура, 
| ПродажиОбороты.СтоимостьОборот КАК Стоимость 
|ПОМЕСТИТЬ Продажи 
|ИЗ 
| РегистрНакопления.Продажи.Обороты(&Нач, &Кон, , ) КАК ПродажиОбороты 
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Сотрудники КАК Сотрудники 
| ПО ПродажиОбороты.Контрагент = Сотрудники.Сотрудник 
|ГДЕ
| ПродажиОбороты.Номенклатура В ИЕРАРХИИ(&Элит, &Кофе)
|; 
| 
////////////////////////////////////////////////////////////­////////////////////


////////////////////////////////////////////////////////////­////////////////////

|ВЫБРАТЬ 
| Продажи.Сотрудник, 
| СУММА(ВЫБОР 
| КОГДА (НЕ Продажи.Номенклатура.Наименование ПОДОБНО ""фильтр%"") и (НЕ Продажи.Номенклатура.Наименование ПОДОБНО ""камер%"")
| ТОГДА Продажи.Стоимость 
| ИНАЧЕ 0 
| КОНЕЦ) КАК Напитки, 
| СУММА(ВЫБОР 
| КОГДА (НЕ Продажи.Номенклатура.Наименование ПОДОБНО ""фильтр%"") и (НЕ Продажи.Номенклатура.Наименование ПОДОБНО ""камер%"")
| ТОГДА Продажи.Стоимость * 0.1 
| ИНАЧЕ 0 
| КОНЕЦ) КАК Процент10, 
| СУММА(ВЫБОР 
| КОГДА (Продажи.Номенклатура.Наименование ПОДОБНО ""фильтр%"") 
| ТОГДА Продажи.Стоимость 
| ИНАЧЕ 0 
| КОНЕЦ) КАК Ненапитки, 
| СУММА(ВЫБОР 
| КОГДА (Продажи.Номенклатура.Наименование ПОДОБНО ""фильтр%"") 
| ТОГДА Продажи.Стоимость * 0.05 
| ИНАЧЕ 0 
| КОНЕЦ) КАК Процент5, 

| СУММА(ВЫБОР 
| КОГДА (Продажи.Номенклатура.Наименование ПОДОБНО ""камер%"") 
| ТОГДА Продажи.Стоимость 
| ИНАЧЕ 0 
| КОНЕЦ) КАК Кофе, 

| СУММА(ВЫБОР 
| КОГДА (Продажи.Номенклатура.Наименование ПОДОБНО ""камер%"") 
| ТОГДА Продажи.Стоимость * 0.1 
| ИНАЧЕ 0 
| КОНЕЦ) КАК ПроцентКофе 

|ПОМЕСТИТЬ Результат 
|ИЗ 
| Продажи КАК Продажи 
| 
|СГРУППИРОВАТЬ ПО 
| Продажи.Сотрудник 
|; 
| 
////////////////////////////////////////////////////////////­//////////////////// 


////////////////////////////////////////////////////////////­//////////////////// 


|ВЫБРАТЬ 
| Результат.Сотрудник КАК Сотрудник, 
| Результат.Напитки КАК Напитки, 
| Результат.Процент10 КАК Процент10, 
| Результат.Ненапитки КАК Сигареты, 
| Результат.Процент5 КАК Процент5, 
| Результат.Процент10 + Результат.Процент5 + Результат.ПроцентКофе КАК Бонус, 
| Результат.Кофе Как Кофе, 
| Результат.ПроцентКофе Как ПроцентКофе 
|ИЗ 
| Результат КАК Результат "; 



Запрос.УстановитьПараметр("Карт1", карты); 



Запрос.УстановитьПараметр("Нач", НачалоДня(Нач)); 
Запрос.УстановитьПараметр("Кон", КонецДня(Кон)); 
Запрос.УстановитьПараметр("Сотрудники", Сотрудники); 
Запрос.УстановитьПараметр("Элит", Справочники.Номенклатура.НайтиПоКоду("01000012612" )); 
Запрос.УстановитьПараметр("Кофе", Справочники.Номенклатура.НайтиПоКоду("01000023504" )); 

Результат = Запрос.Выполнить().Выбрать(); 

Голова = Макет.ПолучитьОбласть("Голова"); 
Голова.Параметры.Дата = ТекущаяДата(); 
Голова.Параметры.Нач = Формат(Нач, "ДЛФ=Д"); 
Голова.Параметры.Кон = Формат(Кон, "ДЛФ=Д"); 
ТабДок.Вывести(Голова); 


Шапка = Макет.ПолучитьОбласть("Шапка"); 
ТабДок.Вывести(Шапка); 

ИтогНапитки = 0; 
ИтогПроцент5 = 0; 
ИтогСигареты = 0; 
ИтогПроцент10 = 0; 
ИтогКофе = 0; 
ИтогПроцентКофе = 0; 
ИтогБонус = 0; 

Таблица = Макет.ПолучитьОбласть("Таблица"); 
Пока Результат.Следующий() Цикл 
Таблица.Параметры.Заполнить(Результат); 
ТабДок.Вывести(Таблица); 
ИтогНапитки = ИтогНапитки + Результат.Напитки; 
ИтогПроцент5 = ИтогПроцент5 + Результат.Процент5; 
ИтогСигареты = ИтогСигареты + Результат.Сигареты; 
ИтогПроцент10 = ИтогПроцент10 + Результат.Процент10; 

ИтогКофе = ИтогКофе + Результат.Кофе; 
ИтогПроцентКофе = ИтогПроцентКофе + Результат.ПроцентКофе; 


ИтогБонус = ИтогБонус + Результат.Бонус; 
КонецЦикла; 

Итоги = Макет.ПолучитьОбласть("Итоги");
Итоги.Параметры.ИтогНапитки 
= ИтогНапитки ; 
Итоги.Параметры.ИтогПроцент10 = ИтогПроцент10; 
Итоги.Параметры.ИтогСигареты = ИтогСигареты; 
Итоги.Параметры.ИтогПроцент5 = ИтогПроцент5; 

Итоги.Параметры.ИтогКофе = ИтогКофе; 
Итоги.Параметры.ИтогПроцентКофе = ИтогПроцентКофе; 

Итоги.Параметры.ИтогБонус = ИтогБонус; 
ТабДок.Вывести(Итоги); 






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

Процедура ПриОткрытии() 
Нач = НачалоМесяца(ТекущаяДата()); 
Кон = КонецМесяца(ТекущаяДата()); 

спр = Справочники.Контрагенты.Выбрать(Справочники.Контрагенты.НайтиПоКоду("000000042"),,,); 
Пока (спр.Следующий()) Цикл 
Если спр.ЭтоГруппа = ложь Тогда 
Сотрудники.Добавить(спр.Ссылка); 
КонецЕсли; 
КонецЦикла; 


КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. kolbaska228 11.01.17 13:22 Сейчас в теме
Дополнительно
1С:Предприятие 8.1 (8.1.15.14)
"Управление торговлей", редакция 10.3 (10.3.1.17)
3. Frogger1971 11.01.17 13:27 Сейчас в теме
сделай массив категорий товаров, которые не нужно показывать и поставь условие в запросе
НЕ Продажи.Номенклатура В ("твой массив")
6. kolbaska228 11.01.17 14:03 Сейчас в теме
(3) Да проблема в том что товар который у меня отбирает эта обработка , купили и потом вернули , но поставили пометку брака .
7. Ганс 11.01.17 14:17 Сейчас в теме
(6) Где поставили пометку брака? в накладной?
Где-то ещё кроме накладной есть эта "метка", в регистре Продажи может или ещё где?
8. kolbaska228 11.01.17 14:21 Сейчас в теме
(7) есть регистр накопления (ПродажиПоДисконтнымКартам)
Прикрепленные файлы:
10. Ганс 11.01.17 14:51 Сейчас в теме
(8) Смотрю ваш скриншот, там видно Возврат с "Меткой" = 6 Возврат товара, вижу накладную по которой был отпущен товар, там "Метка" = 2 Доставка поставщику

Что нужно в итоге: Получить сколько менеджер продал - возврат/брак или получить просто сколько менеджер продал?
11. kolbaska228 11.01.17 14:58 Сейчас в теме
(10) Нужно получить все что продал кроме (возрат/брак)
12. Ганс 11.01.17 15:13 Сейчас в теме
(11) Т.е. Продал - возврат/брак?

Тогда ваш запрос должен возвращать вам именно это! Обороты по продажам: Например 3 продали из них 1 вернули на выходе будет 2 (у вас в запросе тоже 2)

Если Вообще не учитывать возврат/брак, то обороты вам не подойдут, нужно брать просто продажи устанавливать что регистратор ссылка Документы.РТУ (если у вас только реализацией отпускается товар и потом группировать, тогда при том примере 3 продали из них 1 вернули у вас на выходе всё равно будет 3!
9. kolbaska228 11.01.17 14:27 Сейчас в теме
(7) Пометку брака, да , в накладной
4. Ганс 11.01.17 13:32 Сейчас в теме
Можно в эту строчку:
| РегистрНакопления.Продажи.Обороты(&Нач, &Кон, , ) КАК ПродажиОбороты

добавить что-то типа того
| РегистрНакопления.Продажи.Обороты(&Нач, &Кон, , Номенклатура.Метка В ("МассивМеток") ) КАК ПродажиОбороты

Это условие можно туда же пихнуть:
ПродажиОбороты.Номенклатура В ИЕРАРХИИ(&Элит, &Кофе)

Это если метка является реквизитом номенклатуры, если нет, то понять бы как они связаны)
5. kolbaska228 11.01.17 14:01 Сейчас в теме
(4) метка не является реквизитом номенклатуры , метка ставиться при реализации товара, то есть выбивается накладная и в ней помечается пометка (Дисконтная карта)
Прикрепленные файлы:
13. Frogger1971 12.01.17 17:42 Сейчас в теме
идеальный вариант, когда планирование хранения данных в базе сделан через "правильный выход"
какой ответ вы хотите услышать на форуме или вас взяли на работу вместо програмера и поставили задачу срочно "слепить" отчет?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот