|
Классификация номенклатуры, для наглядности | ☑ | ||
---|---|---|---|---|
0
Margo95
26.11.20
✎
07:48
|
Добрый день, такой вопрос, сделан был запрос, для того, чтобы определять класс номенклатуры по важности, исходя из его % продаж, так вот у меня весь товар по какой-то причине приобретает 1 класс (С), подскажите пожалуйста, с чем это связано?
ВЫБРАТЬ ПродажаТовараОбороты.СуммаПродажиОборот КАК СуммаПродажиОборот ПОМЕСТИТЬ ОбщаяСумма ИЗ РегистрНакопления.ПродажаТовара.Обороты КАК ПродажаТовараОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродажаТовара.СуммаПродажи / ОбщаяСумма.СуммаПродажиОборот * 100 КАК Сумма, ПродажаТовара.Номенклатура КАК Номенклатура ПОМЕСТИТЬ втИтоги ИЗ РегистрНакопления.ПродажаТовара КАК ПродажаТовара, ОбщаяСумма КАК ОбщаяСумма ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втИтоги.Номенклатура КАК Номенклатура, ВЫБОР КОГДА втИтоги.Сумма >= 80 ТОГДА "А" КОГДА втИтоги.Сумма >= 20 ТОГДА "Б" КОГДА втИтоги.Сумма < 20 ТОГДА "С" КОНЕЦ КАК КлассНоменклатуры, втИтоги.Сумма КАК Сумма ИЗ втИтоги КАК втИтоги |
|||
1
ДенисЧ
26.11.20
✎
07:55
|
Посмотри в свою вт глазами. Видишь где-то сумму > 20?
|
|||
2
Margo95
26.11.20
✎
07:57
|
(1) Для этого я и вывела сумму, чтобы посмотреть, но нигде не увидела, поэтому я подразумеваю, что где-то в запросе ошибка или я ошибаюсь?
|
|||
3
Margo95
26.11.20
✎
07:58
|
(1) нигде не увидела сумму больше 20* не правильно написала выше
|
|||
4
Ненавижу 1С
гуру
26.11.20
✎
08:00
|
Abc анализ не так считается. Там идёт упорядочивание товара по показателю продаж, накопительная сумма и процент от него
|
|||
5
Margo95
26.11.20
✎
08:08
|
(4) не совсем понимаю, как это будет в запросе смотреться? мне нужно просто накопительный итог сделать, а после уже в втИтог засунуть и последним запросом так же всё сравнивать?
|
|||
6
Мимохожий Однако
26.11.20
✎
08:26
|
Неправильно считаешь процент
|
|||
7
Margo95
26.11.20
✎
08:27
|
(6) не пойму тогда, а как процент считать? нужно же сумму одной нмк разделить на Общую сумму и * 100?
|
|||
8
Малыш Джон
26.11.20
✎
08:31
|
(0) Так во второй вт тоже обороты надо брать. Сейчас считается не процент продаж по номенклатуре, а процент по каждой конкретной продаже.
|
|||
9
Галахад
гуру
26.11.20
✎
08:31
|
Хм, а интересно, эту задачу можно вообще запросом решить.
|
|||
10
Малыш Джон
26.11.20
✎
08:33
|
(9) "Запрос может всё" (с)
|
|||
11
Margo95
26.11.20
✎
08:33
|
(8) Пробовала, и обороты взять во второй вт, но все равно получается одно и тоже, вот пример
ВЫБРАТЬ ПродажаТовараОбороты.СуммаПродажиОборот КАК СуммаПродажиОборот ПОМЕСТИТЬ ОбщаяСумма ИЗ РегистрНакопления.ПродажаТовара.Обороты КАК ПродажаТовараОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродажаТовараОбороты.СуммаПродажиОборот / ОбщаяСумма.СуммаПродажиОборот * 100 КАК Сумма, ПродажаТовараОбороты.Номенклатура КАК Номенклатура ПОМЕСТИТЬ втИтоги ИЗ РегистрНакопления.ПродажаТовара.Обороты КАК ПродажаТовараОбороты, ОбщаяСумма КАК ОбщаяСумма ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втИтоги.Номенклатура КАК Номенклатура, ВЫБОР КОГДА втИтоги.Сумма >= 80 ТОГДА "А" КОГДА втИтоги.Сумма >= 20 ТОГДА "Б" КОГДА втИтоги.Сумма < 20 ТОГДА "С" КОНЕЦ КАК КлассНоменклатуры, втИтоги.Сумма КАК Сумма ИЗ втИтоги КАК втИтоги |
|||
12
Галахад
гуру
26.11.20
✎
08:37
|
(10) Покажи как из этого:
Товар1 100 Товар2 90 Товар3 50 Как получить это: Товар1 100 240 Товар2 90 140 Товар3 50 50 |
|||
13
Margo95
26.11.20
✎
08:38
|
Я же правильно понимаю, что в колонке Сумма, которую я дополнительно вывела, для просмотра результата, у меня по всей номенклатуре должно быть 100%, но у меня таких цифр что-то там не наблюдается и я не могу понять, с чем это связанно
|
|||
14
Margo95
26.11.20
✎
08:39
|
(12) Не совсем поняла, что именно нужно сделать и к чему этот пример
|
|||
15
Margo95
26.11.20
✎
08:41
|
(12) 50+90 = 140, 100+140 = 240, но что-то все равно не особо понимаю, накопительный итог? уже писала выше про это (5)
|
|||
16
Галахад
гуру
26.11.20
✎
08:42
|
(14) Я вроде для (10) писал.
|
|||
17
Margo95
26.11.20
✎
08:43
|
(16) Упс, извиняюсь, сообщения перепутала .-.
|
|||
18
Малыш Джон
26.11.20
✎
08:47
|
(12)
ВЫБРАТЬ "Товар1" КАК Товар, 100 КАК Сумма ПОМЕСТИТЬ втТовар ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Товар2", 90 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Товар3", 50 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втТовар.Товар КАК Товар, втТовар.Сумма КАК Сумма, СУММА(втТовар1.Сумма) КАК Сумма1 ИЗ втТовар КАК втТовар ЛЕВОЕ СОЕДИНЕНИЕ втТовар КАК втТовар1 ПО втТовар.Товар <= втТовар1.Товар СГРУППИРОВАТЬ ПО втТовар.Товар, втТовар.Сумма УПОРЯДОЧИТЬ ПО Товар |
|||
19
Малыш Джон
26.11.20
✎
08:49
|
(13) возможно в регистре кроме продаж есть ещё и обратные операции?
|
|||
20
Margo95
26.11.20
✎
08:53
|
(19) Если вы именно про расход и приход по движению, то нет, регистр оборотный и изменения в нём происходят только при продаже товара
|
|||
21
Малыш Джон
26.11.20
✎
08:54
|
(20) это я понимаю, что оборотный. Может отрицательные суммы есть?
|
|||
22
Галахад
гуру
26.11.20
✎
08:56
|
(18) Прикольно.
(20) В колонке "Сумма" не не сумма, а процент. |
|||
23
Margo95
26.11.20
✎
09:03
|
(21) Проверяла, нет, по сумма все положительные
(22) Да, я знаю, что там выводятся проценты, а не сумма |
|||
24
Малыш Джон
26.11.20
✎
09:08
|
(23) А у тебя есть номенклатура, которая дает больше, чем 20%-ный вклад в общие продажи?
|
|||
25
Margo95
26.11.20
✎
09:11
|
(24) да, 3 номенклатура, у которых самые большие продажи 45, 41 и 60%, у них класс проставляется Б, который и должен, но я не понимаю, почему в колонке "Сумма" у меня нет общего значения 100%
|
|||
26
Margo95
26.11.20
✎
09:14
|
(24) Вспомнила про вчерашнюю ошибку, когда код не отрабатывал, перезапустила, убрала параметры из запроса, и сделала итоги общие, проценты стали совсем другие и теперь код отрабатывает как нужно с параметрами и без них, проблема решена, всем спасибо большое, кто откликнулся
|
|||
27
Margo95
26.11.20
✎
10:47
|
Такой вопрос возник, есть обработка, мне нужно перед выполнением Выборки(Запроса), узнать какие у меня значения 3х реквизитов у Товара, но если я Ставлю условие Если Справочники.Товары.НайтиПоРеквизиту("...", ЗначениеРеквизита) Тогда, то у меня выскакивает ошибка, Преобразование значения к типу Булево не может быть выполнено, как мне можно произвести проверку Реквизита? то-есть если у меня значение реквизита установлено (какое-то) , то Возврат, Иначе Пока Выборка.Следующий() ....?
|
|||
28
Малыш Джон
26.11.20
✎
10:51
|
(27) НайтиПоРеквизиту() - это используется не для того, чтобы узнать, какие значения у реквизитов
|
|||
29
Margo95
26.11.20
✎
10:53
|
(28) А можно подсказку, как я могу узнать изначальное значение реквизита товара?
|
|||
30
arsik
гуру
26.11.20
✎
10:54
|
(29) Товар.ИмяРеквизита
|
|||
31
Margo95
26.11.20
✎
10:57
|
(30) В обработке всё происходит, не в форме самого справочника
|
|||
32
arsik
гуру
26.11.20
✎
11:00
|
(31) И чего?
|
|||
33
arsik
гуру
26.11.20
✎
11:01
|
+ (32) Открой отладчик и посмотри свойства своего товара в момент исполнения кода (27). Все станет ясно.
|
|||
34
Margo95
26.11.20
✎
11:08
|
(33) Проблема в том, что у меня запрос построен не на всей номенклатуре, а только на той, которая продаётся и не совсем понимаю, как после цикла Выборка.Следующий(), ставить условие Допустим, Если Выборка.Товар ... , чтобы узнать значение Реквизита
|
|||
35
arsik
гуру
26.11.20
✎
11:10
|
(34) Выборка.Товар.ИмяРеквизита
|
|||
36
Margo95
26.11.20
✎
11:12
|
(35) Посмотрите (11) пожалуйста, у меня такой запрос, вот из-за того, что я не вижу прямого доступа к Номенклатуре в Запросе, а только к её наименованию, поэтому и возникли проблемы с правильностью написания условия для проверки
|
|||
37
Margo95
26.11.20
✎
12:34
|
Пытаюсь записать данные по нажатию на кнопку в реквизит справочника, ошибок нет, в отладчике посмотрела, все данные находит, а класс почему-то не меняет по итогу в справочнике
Для каждого Элемент из ТЗ Цикл НайденныйЭлемент = Справочник.НайтиПоНаименованию(Элемент.Номенклатура); ТекущийОбъект = НайденныйЭлемент.ПолучитьОбъект(); ТекущийОбъект.Класс = Элемент.Класс; ТекущийОбъект.Записать(); КонецЦикла; |
|||
38
Малыш Джон
26.11.20
✎
12:36
|
(37) Справочник.НайтиПоНаименованию(Элемент.Номенклатура);
А какой справочник-то? |
|||
39
Margo95
26.11.20
✎
12:39
|
(38) Справочник, Это переменная, Справочник = Справочники.НаименованиеСправочника
|
|||
40
Margo95
26.11.20
✎
12:59
|
Так что, сможет кто-то подсказать, с чем возможно проблема возникает? по какой причине код отрабатывает, но ничего не записывает
|
|||
41
Малыш Джон
26.11.20
✎
13:00
|
(40) Отладчик же) он всё знает
|
|||
42
Margo95
26.11.20
✎
13:01
|
(41) Так, я посмотрела через отладчик и он находит нужные Товары, он находит нужные значения, но по какой-то причине он не записывает их в карточку товара
|
|||
43
Margo95
26.11.20
✎
13:10
|
Я не пойму почему, но если данные будут в реквизитах, он после нажатия, просто очищает данные все, с нужных реквизитов
|
|||
44
Archer08
26.11.20
✎
17:43
|
Смотри в отладчике Типзначения переменных.
Для каждого Элемент из ТЗ Цикл Если Элемент.Номенклатура.Класс<>Элемент.Класс Тогда ТекущийОбъект = Элемент.Номенклатура.ПолучитьОбъект(); ТекущийОбъект.Класс = Элемент.Класс; ТекущийОбъект.Записать(); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |