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 Сейчас в теме
идеальный вариант, когда планирование хранения данных в базе сделан через "правильный выход"
какой ответ вы хотите услышать на форуме или вас взяли на работу вместо програмера и поставили задачу срочно "слепить" отчет?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Консультант-аналитик 1С
Москва
зарплата от 70 000 руб. до 100 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб. до 120 000 руб.
Временный (на проект)