|
Странное поведение СКД | ☑ | ||
---|---|---|---|---|
0
ValeriTim
22.09.21
✎
10:46
|
Впервые сталкиваюсь с таким поведением СКД: есть запрос (не очень сложный), в запросе определяется продажа товаров за период и остатки товара на конец этого периода, особенность базы такова, что в не зависимости от того каково наименование товара - каждая позиция номенклатуры имеет свой элемент справочника номенклатуры и естественно уникальный код (иными словами у меня в справочнике бывают по 2-3 элемента с одинаковымнаименованием), в запросе помимо прочего я получаю и бренд номенклатуры - это реквизит элемента справочника и строю СКД по двум группировкам Бренд и Номенклатура. С двумя группировками запрос и таблица отрабатывают нормально, но вот когда я выключаю (галкой) вторую группировку (Номенклатура) запрос начинает работать странно - по какой то причине два элемента с одинаковым наименованием номенклатуры воспринимаются как один и в группировке "Бренд" учитываются как одно издение, соответственно итоги по Бренду оказываются меньше, чем есть на самом деле.
С чем это может быть связано и как это исправить ? |
|||
1
Asmody
22.09.21
✎
10:48
|
(0) в группировке Наименование или Ссылка?
|
|||
2
ValeriTim
22.09.21
✎
10:50
|
В группировках и номенклатура и бренд выбираются как ссылки. Причем я сначала группироку Бренд строил как Номенклатура.Бренд и когда увидел странное поведение стал бренд выбирать уже в запросе, но и это не помогло.
|
|||
3
Asmody
22.09.21
✎
10:51
|
укажи, что Номенклатура и Бренд - это измерения и поставь зависимость второго от первого
|
|||
4
ValeriTim
22.09.21
✎
10:53
|
(3) точно - щас попробую
|
|||
5
shuhard
22.09.21
✎
10:53
|
(0) у Хрусталевой детально расписаны ограничения работы СКД с остатками на конец периода и выборкой данных
|
|||
6
ValeriTim
22.09.21
✎
11:00
|
(5) тут не в этом дело
Итак помогло - у поля Бренд я поставил тип "Измерение" (Номенклатура и так была как измерение) и у обоих измерений я поставил галку "обязательное" - стало работать нормально. Спасибо |
|||
7
Asmody
22.09.21
✎
11:03
|
(6) логично. оно же выкидывает из итогового запроса неиспользуемые поля
|
|||
8
ValeriTim
22.09.21
✎
11:03
|
И еще поставить галку "обязательное" достаточно только у измерения "Номенклатура"
|
|||
9
ValeriTim
22.09.21
✎
11:05
|
(7) Ну вот что значит выкидывает? Итоги то как то по ним считает, но вот считает весьма странно - такое ощущение, что СКД начинает воспринимать номенклатуру не как элемент справочника, а как наименование элемента и встречая два одинаковых - считает, что это одно... Вот как так?
|
|||
10
fisher
22.09.21
✎
11:21
|
(9) А формулы ресурсов какие использовались?
|
|||
11
ValeriTim
22.09.21
✎
11:22
|
(10) не понял вопроса ... ну предположу ... я получал КоличествоПродаж, СебестоимостьПродаж, СтоимостьПродаж, КоличествоОстаток, СебестоимостьОстаток. Все это считается в запросе
|
|||
12
toypaul
гуру
22.09.21
✎
11:23
|
(9) сделать запрос без учета группировки по номенклатуре и все встанет на свои места. также на инфостарте сделать поиск по "Отладка СКД", чтобы впредь таких вопросов не задавать или задавать меньше
|
|||
13
ValeriTim
22.09.21
✎
11:24
|
(12) вот ты интересный - а как его сделать без учета группировки Номенклатура, когда из нее то и считаются итоговые значения полей
|
|||
14
fisher
22.09.21
✎
11:25
|
(11) Что-то тут не так. Если ресурсы классические и структура регистра классическая, то выкидывание неиспользуемого измерения не должно было привести к искажению итогов по бренду. Стопудово у тебя там еще какая-то заковыка есть.
|
|||
15
fisher
22.09.21
✎
11:29
|
Покажи запрос, если он не сильно развесистый.
|
|||
16
toypaul
гуру
22.09.21
✎
11:29
|
(13) мде. тяжелый случай
|
|||
17
ValeriTim
22.09.21
✎
11:30
|
(14) Ну... запрос не совсем простой - в виду особенностей учета получить требуемые данные из просто регистров не получается, имеются несколько организаций, получающих товар от поставщиков и передают этот товар на реализацию друг другу (не весь, конечно, а по определенным условиям). Так вот в запросе я должен получать себестоимость товара как ту себестоимость, которая сформировалась при закупке у поставщика, а не ту, которая получилась при передачи на реализацию.
|
|||
18
fisher
22.09.21
✎
11:31
|
Выкидывание поля могло повлиять на ресурсы, которые при вычислении опираются на количество детальных записей. Ну там средние всякие и т.п.
|
|||
19
ValeriTim
22.09.21
✎
11:31
|
(16) в своем репертуаре ... очень многозначительно ... :)
|
|||
20
ValeriTim
22.09.21
✎
11:33
|
(18) если бы у меня считалось где то среднее или что то еще ... Нету там этого... Нет.
|
|||
21
fisher
22.09.21
✎
11:34
|
(17) Ну, не глядя на запрос сложно понять, что могло пойти не так. СКД может достаточно сильно перекраивать результирующий запрос, пытаясь его оптимизировать под пользовательские настройки. Например, может выбросить соединение с какой-то временной таблицей, если решит что это не должно повлиять на результат, так как напрямую поля оттуда не задействованы.
|
|||
22
ValeriTim
22.09.21
✎
11:34
|
Какие теги для вставки кода запроса ?
|
|||
23
Asmody
22.09.21
✎
11:36
|
(22) [ 1C ] [ /1C ] только без пробелов.
но оно само распознается (может быть) |
|||
24
ValeriTim
22.09.21
✎
11:38
|
Вот текст запроса:
|
|||
25
fisher
22.09.21
✎
11:42
|
Непонятно, нафига ты явно описывал используемые поля, если не отключал автонастройки. Поле бренда у тебя например явно не описано. Может коктейль какой-то получился...
Попробуй или отключить автонастройки или явно описать бренд. Но это пока так - что сразу в глаза бросилось. Смотрю дальше... |
|||
26
fisher
22.09.21
✎
11:44
|
Тьфу. "Или удалить явное описание выбираемых полей, или явно описать бренд и отключить автонастройки".
Хотя отключение автонастроек скорее всего само по себе поможет, так как убирает самодеятельность СКД. |
|||
27
fisher
22.09.21
✎
11:45
|
Правда, смутно припоминаю что отключение автонастроек не всю самодеятельность убирает. Сталкивался как-то...
|
|||
28
ValeriTim
22.09.21
✎
11:46
|
Я сюда обратился, когда уже перепробовал свои комбинации ... ну, что в голову пришло - все пробовал - это остаток от последних попыток...
|
|||
29
fisher
22.09.21
✎
11:48
|
Попробуй еще убрать поля остатков. Если ресурсы по оборотам считаются правильно, то забей. При нетривиальных запросах СКД часто нужно удовлетворять обязательными ключевыми полями, чтобы СКД смогло правильно остатки посчитать.
|
|||
30
toypaul
гуру
22.09.21
✎
11:55
|
(19) конечно в своем. можно объяснять что-то старое тому кто на форуме год, пол-года. но когда на форуме 17 лет и тяжело понять что написано в (12), то это случай непростой
|
|||
31
youalex
22.09.21
✎
12:02
|
Кмк изначальная причина "странного поведения" может быть в том что вирт. таблицы итогов группируются по указанным измерениям, но не по их реквизитам.
|
|||
32
fisher
22.09.21
✎
12:03
|
Хм... А ВтТоварыПоПоставщикам тебе зачем, если ты его не используешь? Если оно влияет на количество записей, тогда ее выбрасывание могло повлиять на результат.
|
|||
33
toypaul
гуру
22.09.21
✎
12:04
|
хоспаде. да всего лишь нужно выполнить отчет в консоли КД и посмотреть какой запрос выполняется. чо тут гадать на кофейной гуще
|
|||
34
fisher
22.09.21
✎
12:05
|
(33) Профессионалы не пользуются отладчиком! Правда, они и код пишут без ошибок...
|
|||
35
toypaul
гуру
22.09.21
✎
12:20
|
(35) профессионалы доверяют процесс отладки пользователям!
|
|||
36
fisher
22.09.21
✎
12:40
|
Делегирование, правило "третьего гвоздика" и административный ресурс - вот столпы "no code development"!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |