|
v7: SKU (количество номенклатурных позиций) | ☑ | ||
---|---|---|---|---|
0
Vitekkkk
16.10.13
✎
10:26
|
Всем привет!
Помогите с такой задачей: Нужно сделать отчет по SKU (количество номенклатурных позиций) с настраиваемыми группировками: канал сбыта, менеджер, контрагент. Я так понял что из запроса тупо этого не получу. Но в ТЗ крутить тоже геморойно. может кто делал что то подобное и нашел оптимальное решение.(Время формирования, универсальность в настройке). |
|||
1
Aleksey
16.10.13
✎
10:27
|
почему запросом не получишь?
В чем гемор ТЗ? |
|||
2
NikVars
16.10.13
✎
10:32
|
(0) Оптимальным решением для конфигурации Х1 размером Y1 на железе Y1 с учетом софта X2, при количестве пользователей Y2 при формировании отчета Z2 является система линейных уравнений с 6-ю неизвестными. Линейность взята в качестве тривиального случая.
|
|||
3
Vitekkkk
16.10.13
✎
10:35
|
(1) если ты правильно понял задачу, и все же полагаешь что можно через запрос дай пример плиз.
(2)Кури |
|||
4
Aleksey
16.10.13
✎
10:37
|
(3) Пример чего? Сферического запроса в вакууме?
Ни конфигурация, ни что и где и как лежит |
|||
5
Aleksey
16.10.13
✎
10:38
|
Пример, ради бога
Select Поля from Таблица Where Условия Пойдёт в качестве примера? |
|||
6
NikVars
16.10.13
✎
10:43
|
(3) Примеры запросов тебе всегда рад выдать Конструктор Запросов!
Запускаешь конфигуратор, далее Файл - Новый - Внешний отчет. Открываешь модуль отчета. Далее Конструкторы - Запрос... Далее чего нажмешь - то и получишь. |
|||
7
viktor_vv
16.10.13
✎
11:00
|
(0) Просвети, каким образом с номенклатурой свзяаны
канал сбыта, менеджер, контрагент. А то как-то не телепатируется. |
|||
8
ADirks
16.10.13
✎
11:06
|
(0) Крутить запрос, и крутить ТЗ - разница в общем то невелика. Вот тупо крутить, и с умом - тут разница может быть в порядки.
(7) Номенклатура и Контрагенты - это такие штуки, с которыми всё что угодно связано :) |
|||
9
viktor_vv
16.10.13
✎
11:09
|
(8) Ну вот захотелось конкретики :), кого на чем крутить.
А так-то если тупо из запроса, то понятно, что не получить :), если немного подумать, то все может быть. |
|||
10
Vitekkkk
16.10.13
✎
11:28
|
(4)(5)
Вот к примеру буду делать так. Текст = "//{{ЗАПРОС(Сформировать) |Период с ДатаНач по ДатаКон; |Обрабатывать НеПомеченныеНаУдаление; |КаналСбыта = Регистр.Продажи.Контрагент.КаналСбыта; |Контрагент = Регистр.Продажи.Контрагент; |ТипХоз = Регистр.Продажи.ТипХозОперации; |Номенклатура = Регистр.Продажи.Номенклатура; |Количество = Регистр.Продажи.Количество; |Менеджер = Регистр.Продажи.Контрагент.Менеджер; |Функция Кол = Сумма(Количество); |"; //Здесь устанавливаются условия и группировки в зависимости от пользовательских настроек // Саму процедуру не пишу она на суть вопроса не влияет УстановитьУсловиеЗапроса(1, ФлажокУсловие1, МоноУсловие1, СписокУсловие1, "ТипХоз", Текст, Заголовок); УстановитьУсловиеЗапроса(2, ФлажокУсловие2, МоноУсловие2, СписокУсловие2, "КаналСбыта", Текст, Заголовок); УстановитьУсловиеЗапроса(3, ФлажокУсловие3, МоноУсловие3, СписокУсловие3, "Менеджер", Текст, Заголовок); УстановитьУсловиеЗапроса(4, ФлажокУсловие4, МоноУсловие4, СписокУсловие4, "Контрагент", Текст, Заголовок); // Дальше выполняем запрос Если Запрос.Выполнить(Текст) = 0 Тогда Возврат; КонецЕсли; ЗаголовокПервойКолонки = ""; НомерПоследнегоЗначения = СписокГруппировок.РазмерСписка(); Если НомерПоследнегоЗначения > 0 Тогда СписокГруппировок.ПолучитьЗначение(НомерПоследнегоЗначения, ЗаголовокПервойКолонки); КонецЕсли; Таб.ВывестиСекцию("Заголовок|Основной"); Таб.ПрисоединитьСекцию("Заголовок|План"); Пока Запрос.Группировка(1) = 1 Цикл СформироватьСтроку(1,ДляСвертки); Если КоличествоГруппировок = 1 Тогда Продолжить; КонецЕсли; Пока Запрос.Группировка(2) = 1 Цикл СформироватьСтроку(2,ДляСвертки); Если КоличествоГруппировок = 2 Тогда Продолжить; КонецЕсли; Пока Запрос.Группировка(3) = 1 Цикл СформироватьСтроку(3,ДляСвертки); Если КоличествоГруппировок = 3 Тогда Продолжить; КонецЕсли; Пока Запрос.Группировка(4) = 1 Цикл СформироватьСтроку(4,ДляСвертки); Если КоличествоГруппировок = 4 Тогда Продолжить; КонецЕсли; Пока Запрос.Группировка(5) = 1 Цикл СформироватьСтроку(5); Если КоличествоГруппировок = 5 Тогда Продолжить; КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; //отсюда поподаем в процедуру СформироватьСтроку() ну и там формируем что нужно. //А вот что нужно поясни!!! |
|||
11
viktor_vv
16.10.13
✎
11:33
|
(10) А вопрос в чем? Вроде все как тебе надо.
|
|||
12
Vitekkkk
16.10.13
✎
11:34
|
Повторюсь мне нужно количество номенклатурных позиций.
Хотя... Конкретнне на примере Продали Иванову И.И: дата 01.01.01 Ном1 - 5шт Ном2 - 10шт Дата 02.01.01 Ном1 -2шт Ном3 -3шт Дата 03.01.01 Ном1 - 1шт Ном2 - 15шт В отчете мне нужно видеть на примере одной группировки: Контрагент SKU Иванов И.И. 3 т.е. обшщее количество позиций проданных |
|||
13
Vitekkkk
16.10.13
✎
11:36
|
ну я в запросе количество Килограмм получаю, а мне нужно получать количество номенклатурных позици по каждой группировке
|
|||
14
Vitekkkk
16.10.13
✎
11:37
|
(11)пост выше тебе
|
|||
15
monsterZE
16.10.13
✎
11:38
|
=) на а в чем проблема то? продажи клиенту свернуть по товару
|
|||
16
monsterZE
16.10.13
✎
11:38
|
количество строк - вот тебе скю
|
|||
17
Vitekkkk
16.10.13
✎
11:40
|
(16)подумай и увидишь причину
|
|||
18
Vitekkkk
16.10.13
✎
11:40
|
много писать очнь чтоб пояснить причину
|
|||
19
monsterZE
16.10.13
✎
11:40
|
накладывай свои условия на "отчет по продажам" и сворачивай его по товару
|
|||
20
monsterZE
16.10.13
✎
11:41
|
(18) =)))) ну не пиши
|
|||
21
viktor_vv
16.10.13
✎
11:46
|
(12) Ну так-то да, в запросе не получишь этого. Это по каждой группировке надо выгружать и сворачивать.
|
|||
22
Mikeware
16.10.13
✎
11:50
|
||||
23
viktor_vv
16.10.13
✎
11:51
|
(21)+ Должна помочь индексированная таблица из 1С++ с методом КоличествоСтрок().
Это перед выводом выгрузить в индексированную ТЗ подобавлять необходимых индексов, и при выводе группировок получать количество строк по этим индексам. |
|||
24
viktor_vv
16.10.13
✎
11:53
|
(22) Прикольно :).
|
|||
25
Vitekkkk
16.10.13
✎
11:53
|
(22) Там количество продаж а не SKU
|
|||
26
Vitekkkk
16.10.13
✎
11:54
|
(22) где нашел такое?
|
|||
27
КонецЦикла
16.10.13
✎
11:56
|
http://1c911.by/stati_1s/statya-kak-ispolzovat-indeksirovannuyu-tablicu-znacheniy-1s.htm
Там же есть и пример отчета (до и после) |
|||
28
Vitekkkk
16.10.13
✎
12:33
|
(27)Спсаибо! Сейчас попробую.... отпишусь
|
|||
29
monsterZE
16.10.13
✎
12:50
|
как-то так =)
ТекстЗапроса = " |SELECT | $Док.Клиент as [Клиент $Справочник.Клиенты] | ,COUNT($ДокСтр.Товар) as СКЮ |FROM | $ДокументСтроки.РасходнаяНал as ДокСтр (NOLOCK) |INNER JOIN | $Документ.РасходнаяНал as Док (NOLOCK) ON Док.IDDoc = ДокСтр.IDDoc |INNER JOIN | _1SJourn as Жур (NOLOCK) ON Жур.IDDoc = ДокСтр.IDDoc | AND Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.Closed & 1 = 1 |WHERE | $Док.Клиент IN (SELECT Val FROM #ГруппаК) |GROUP BY | $Док.Клиент |ORDER BY | $Док.Клиент |"; |
|||
30
monsterZE
16.10.13
✎
12:53
|
(29) товар не свернул =)
|
|||
31
monsterZE
16.10.13
✎
12:59
|
от так вот
ТекстЗапроса = " |SELECT | Подзапрос.Клиент as [Клиент $Справочник.Клиенты] | ,COUNT(Подзапрос.Товар) as СКЮ |FROM | ( | SELECT | $Док.Клиент as Клиент | ,$ДокСтр.Товар as Товар | FROM | $ДокументСтроки.РасходнаяНал as ДокСтр (NOLOCK) | INNER JOIN | $Документ.РасходнаяНал as Док (NOLOCK) ON Док.IDDoc = ДокСтр.IDDoc | INNER JOIN | _1SJourn as Жур (NOLOCK) ON Жур.IDDoc = ДокСтр.IDDoc | AND Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.Closed & 1 = 1 | WHERE | $Док.Клиент IN (SELECT Val FROM #ГруппаК) | GROUP BY | $Док.Клиент, $ДокСтр.Товар | ) as Подзапрос |GROUP BY | Подзапрос.Клиент |ORDER BY | Подзапрос.Клиент |"; |
|||
32
viktor_vv
16.10.13
✎
14:07
|
(31) В первом запросе можно было просто
COUNT(Distinct $ДокСтр.Товар) as СКЮ но ему не поможет на нескольких группирвоках. |
|||
33
monsterZE
16.10.13
✎
14:21
|
(32) точно =) спос
|
|||
34
ADirks
16.10.13
✎
14:27
|
кстати, SKU - это Stock Keeping Unit, т.е. номенклатура по нашему
|
|||
35
Mikeware
16.10.13
✎
14:39
|
(25) мне просто не надо было "по товарам". но добавить этот разрез - ровно три строки.
(26) не "нашел", а "сделал". |
|||
36
Злопчинский
16.10.13
✎
23:22
|
(0) формируешь плоскую ТЗ по виду
Измерение1,Измерение2...,Число1,Число2... . подсовываешь ее в "универсальный отчет по ТЗ" . выводишь группировками/шахматками. . http://infostart.ru/public/14794/ . не олап конечно и не панацея, но в большинстве случаев хватает. |
|||
37
Злопчинский
16.10.13
✎
23:30
|
(34) ой ли номенклатура? ане раздельные учитываемые отдельно единицы измерени яноменклатуры..?
. товар, который отдельно учитывается в коробах и отдельно в блоках - это будет один SKU или 2 SKU..? |
|||
38
Jaffar
17.10.13
✎
12:44
|
(2) "Оптимальным решением для конфигурации Х1 размером Y1 на железе Y1 с учетом софта X2, при количестве пользователей Y2 при формировании отчета Z2"
Y2 мало. лучше Z14. |
|||
39
Jaffar
17.10.13
✎
12:47
|
(37) у нас - один. и пофих, как он отгружался.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |