Вход | Регистрация
 

Классификация номенклатуры, для наглядности

Классификация номенклатуры, для наглядности
Я
   Margo95
 
26.11.20 - 07:48
Добрый день, такой вопрос, сделан был запрос, для того, чтобы определять класс номенклатуры по важности, исходя из его % продаж, так вот у меня весь товар по какой-то причине приобретает 1 класс (С), подскажите пожалуйста, с чем это связано?


ВЫБРАТЬ
    ПродажаТовараОбороты.СуммаПродажиОборот КАК СуммаПродажиОборот
ПОМЕСТИТЬ ОбщаяСумма
ИЗ
    РегистрНакопления.ПродажаТовара.Обороты КАК ПродажаТовараОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПродажаТовара.СуммаПродажи / ОбщаяСумма.СуммаПродажиОборот * 100 КАК Сумма,
    ПродажаТовара.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ втИтоги
ИЗ
    РегистрНакопления.ПродажаТовара КАК ПродажаТовара,
    ОбщаяСумма КАК ОбщаяСумма
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втИтоги.Номенклатура КАК Номенклатура,
    ВЫБОР
        КОГДА втИтоги.Сумма >= 80
            ТОГДА "А"
        КОГДА втИтоги.Сумма >= 20
            ТОГДА "Б"
        КОГДА втИтоги.Сумма < 20
            ТОГДА "С"
    КОНЕЦ КАК КлассНоменклатуры,
    втИтоги.Сумма КАК Сумма
ИЗ
    втИтоги КАК втИтоги
   ДенисЧ
 
1 - 26.11.20 - 07:55
Посмотри в свою вт глазами. Видишь где-то сумму > 20?
   Margo95
 
2 - 26.11.20 - 07:57
(1) Для этого я и вывела сумму, чтобы посмотреть, но нигде не увидела, поэтому я подразумеваю, что где-то в запросе ошибка или я ошибаюсь?
   Margo95
 
3 - 26.11.20 - 07:58
(1) нигде не увидела сумму больше 20* не правильно написала выше
   Ненавижу 1С
 
4 - 26.11.20 - 08:00
Abc анализ не так считается. Там идёт упорядочивание товара по показателю продаж, накопительная сумма и процент от него
   Margo95
 
5 - 26.11.20 - 08:08
(4) не совсем понимаю, как это будет в запросе смотреться? мне нужно просто накопительный итог сделать, а после уже в втИтог засунуть и последним запросом так же всё сравнивать?
   МимохожийОднако
 
6 - 26.11.20 - 08:26
Неправильно считаешь процент
   Margo95
 
7 - 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) "Запрос может всё" (с)
   Margo95
 
11 - 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
   Margo95
 
13 - 26.11.20 - 08:38
Я же правильно понимаю, что в колонке Сумма, которую я дополнительно вывела, для просмотра результата, у меня по всей номенклатуре должно быть 100%, но у меня таких цифр что-то там не наблюдается и я не могу понять, с чем это связанно
   Margo95
 
14 - 26.11.20 - 08:39
(12) Не совсем поняла, что именно нужно сделать и к чему этот пример
   Margo95
 
15 - 26.11.20 - 08:41
(12) 50+90 = 140, 100+140 = 240, но что-то все равно не особо понимаю, накопительный итог? уже писала выше про это (5)
   Галахад
 
16 - 26.11.20 - 08:42
(14) Я вроде для (10) писал.
   Margo95
 
17 - 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) возможно в регистре кроме продаж есть ещё и обратные операции?
   Margo95
 
20 - 26.11.20 - 08:53
(19) Если вы именно про расход и приход по движению, то нет, регистр оборотный и изменения в нём происходят только при продаже товара
   Малыш Джон
 
21 - 26.11.20 - 08:54
(20) это я понимаю, что оборотный. Может отрицательные суммы есть?
   Галахад
 
22 - 26.11.20 - 08:56
(18) Прикольно.

(20) В колонке "Сумма" не не сумма, а процент.
   Margo95
 
23 - 26.11.20 - 09:03
(21) Проверяла, нет, по сумма все положительные
(22) Да, я знаю, что там выводятся проценты, а не сумма
   Малыш Джон
 
24 - 26.11.20 - 09:08
(23) А у тебя есть номенклатура, которая дает больше, чем 20%-ный вклад в общие продажи?
   Margo95
 
25 - 26.11.20 - 09:11
(24) да, 3 номенклатура, у которых самые большие продажи 45, 41 и 60%, у них класс проставляется Б, который и должен, но я не понимаю, почему в колонке "Сумма" у меня нет общего значения 100%
   Margo95
 
26 - 26.11.20 - 09:14
(24) Вспомнила про вчерашнюю ошибку, когда код не отрабатывал, перезапустила, убрала параметры из запроса, и сделала итоги общие, проценты стали совсем другие и теперь код отрабатывает как нужно с параметрами и без них, проблема решена, всем спасибо большое, кто откликнулся
   Margo95
 
27 - 26.11.20 - 10:47
Такой вопрос возник, есть обработка, мне нужно перед выполнением Выборки(Запроса), узнать какие у меня значения 3х реквизитов у Товара, но если я Ставлю условие Если Справочники.Товары.НайтиПоРеквизиту("...", ЗначениеРеквизита) Тогда, то у меня выскакивает ошибка, Преобразование значения к типу Булево не может быть выполнено, как мне можно произвести проверку Реквизита? то-есть если у меня значение реквизита установлено (какое-то) , то Возврат, Иначе Пока Выборка.Следующий() ....?
   Малыш Джон
 
28 - 26.11.20 - 10:51
(27) НайтиПоРеквизиту() - это используется не для того, чтобы узнать, какие значения у реквизитов
   Margo95
 
29 - 26.11.20 - 10:53
(28) А можно подсказку, как я могу узнать изначальное значение реквизита товара?
   arsik
 
30 - 26.11.20 - 10:54
(29) Товар.ИмяРеквизита
 
 Рекламное место пустует
   Margo95
 
31 - 26.11.20 - 10:57
(30) В обработке всё происходит, не в форме самого справочника
   arsik
 
32 - 26.11.20 - 11:00
(31) И чего?
   arsik
 
33 - 26.11.20 - 11:01
+ (32) Открой отладчик и посмотри свойства своего товара в момент исполнения кода (27). Все станет ясно.
   Margo95
 
34 - 26.11.20 - 11:08
(33) Проблема в том, что у меня запрос построен не на всей номенклатуре, а только на той, которая продаётся и не совсем понимаю, как после цикла Выборка.Следующий(), ставить условие Допустим, Если Выборка.Товар ... , чтобы узнать значение Реквизита
   arsik
 
35 - 26.11.20 - 11:10
(34) Выборка.Товар.ИмяРеквизита
   Margo95
 
36 - 26.11.20 - 11:12
(35) Посмотрите (11) пожалуйста, у меня такой запрос, вот из-за того, что я не вижу прямого доступа к Номенклатуре в Запросе, а только к её наименованию, поэтому и возникли проблемы с правильностью написания условия для проверки
   Margo95
 
37 - 26.11.20 - 12:34
Пытаюсь записать данные по нажатию на кнопку в реквизит справочника, ошибок нет, в отладчике посмотрела, все данные находит, а класс почему-то не меняет по итогу в справочнике

Для каждого Элемент из ТЗ Цикл
        НайденныйЭлемент = Справочник.НайтиПоНаименованию(Элемент.Номенклатура);
        ТекущийОбъект = НайденныйЭлемент.ПолучитьОбъект();
        ТекущийОбъект.Класс = Элемент.Класс;
        ТекущийОбъект.Записать();
    КонецЦикла;
   Малыш Джон
 
38 - 26.11.20 - 12:36
(37) Справочник.НайтиПоНаименованию(Элемент.Номенклатура);

А какой справочник-то?
   Margo95
 
39 - 26.11.20 - 12:39
(38) Справочник, Это переменная, Справочник = Справочники.НаименованиеСправочника
   Margo95
 
40 - 26.11.20 - 12:59
Так что, сможет кто-то подсказать, с чем возможно проблема возникает? по какой причине код отрабатывает, но ничего не записывает
   Малыш Джон
 
41 - 26.11.20 - 13:00
(40) Отладчик же) он всё знает
   Margo95
 
42 - 26.11.20 - 13:01
(41) Так, я посмотрела через отладчик и он находит нужные Товары, он находит нужные значения, но по какой-то причине он не записывает их в карточку товара
   Margo95
 
43 - 26.11.20 - 13:10
Я не пойму почему, но если данные будут в реквизитах, он после нажатия, просто очищает данные все, с нужных реквизитов
   Archer08
 
44 - 26.11.20 - 17:43
Смотри в отладчике Типзначения переменных.
Для каждого Элемент из ТЗ Цикл
 Если Элемент.Номенклатура.Класс<>Элемент.Класс Тогда
        ТекущийОбъект = Элемент.Номенклатура.ПолучитьОбъект();
        ТекущийОбъект.Класс = Элемент.Класс;
        ТекущийОбъект.Записать();
КонецЕсли;
    КонецЦикла;


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.