Имя: Пароль:
1C
1С v8
СКД. Два регистра в запросе.
,
0 palpetrovich
 
24.03.18
14:16
В регистре Резерв нет измерения Партия, надо вывести табличку
1я группировка: Товар - Остаток - Резерв
2я группировка: Товар - Партия - Остаток

запрос

ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ОстаткиТоваров.Склад КАК Склад,
    ОстаткиТоваров.Товар КАК Товар,
    ОстаткиТоваров.КоличествоОстаток КАК Остаток,
    ЕСТЬNULL(РезервТоваров.КоличествоОстаток, 0) КАК Резерв,
    ОстаткиТоваров.Партия КАК Партия
ИЗ
    РегистрНакопления.ОстаткиТоваров.Остатки(&Период, ) КАК ОстаткиТоваров
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервТоваров.Остатки(&Период, ) КАК РезервТоваров
        ПО (РезервТоваров.Склад = ОстаткиТоваров.Склад)
            И (РезервТоваров.Товар = ОстаткиТоваров.Товар)

Ресурсы в СКД -  Остаток и Резерв

вывод группировки Партия - по флагу  "Выводить партии" в Пользовательскх настройках (группировка)
Если установлен флаг - резерв суммируется, результат неверный.

С этим можно что-то сделать или все в утиль?
1 jsmith82
 
24.03.18
14:31
в утиль
2 jsmith82
 
24.03.18
14:31
регистры вообще не связаны друг с другом
3 palpetrovich
 
24.03.18
14:38
"вообще"  - неправда ваша!  Склад, Товар - чем не связь?

Сделал 2 набора данных
отдельно по Остаткам, отдельно по Резерву, связи - те-же (Склад, Товар), задвоение "ушло", но по в строках по партиям - выводится этот РЕзерв. Он хоть "правильный", но глаз режет
4 jsmith82
 
24.03.18
14:40
>>Склад, Товар - чем не связь?
Смешно
>>Он хоть "правильный", но глаз режет
Потому что у тебя таблица ненормализованная
Ибо регистры не связаны друг с другом
5 jsmith82
 
24.03.18
14:41
По сути ты щас занимаешься денормализацией таблиц
6 palpetrovich
 
24.03.18
14:48
(4) что смешного? Ты где-то видел регистр Резерв с измерением Партия?
результат на "сейчас"
Товар    СкладОптовый (Остаток - Резерв)
Трубка   28,000    - 1,00
Партия    СкладОптовый (Остаток - Резерв)
ГТД ХВ-0004936 4,000    1,00
ГТД ХВ-0005385 24,000    1,00
Итого    28,000    1,00    26,000
7 jsmith82
 
24.03.18
14:53
>>Ты где-то видел регистр Резерв с измерением Партия?
Барсетка зачёркнуто Управление нашей фирмой
8 h-sp
 
24.03.18
14:55
(6) ну там в скд на закладке Ресурсы проставляешь галочки, какой ресурс в какой группировке участвует.
9 jsmith82
 
24.03.18
14:56
Тебе резерв надо считать по группировке Товар
10 jsmith82
 
24.03.18
14:57
остаток и резерв
а остаток по партии по групировке партия
11 palpetrovich
 
24.03.18
14:58
(8) на закладке Ресурсы  можно установить "Расчитать по", сейчас  установлено, для остаток "Партия, Склад, Товар", для Резерв - "Склад, Товар"
12 palpetrovich
 
24.03.18
15:00
(8),(9) вот где эти "галочки, "какой ресурс в какой группировке участвует"?
13 palpetrovich
 
24.03.18
15:02
+(12) если это они и есть, то наверное я  их не умею готовить :)
14 jsmith82
 
24.03.18
15:03
Тут, наверно, посчитать резерв через язык выражений компоновки данных ВычислитьВыражение по группировке Товар
15 palpetrovich
 
24.03.18
15:33
(14) что-то не сильно помогло, все равно Резерв в сгруппировку п опартии попадает, пробовал:
ВычислитьВыражение("Сумма(Резерв)", "Товар", "ГруппировкаНеРесурса")            
ВычислитьВыражение("Сумма(Резерв)", "Товар", "Группировка")            
ВычислитьВыражение("Сумма(Резерв)", "Товар", "Иерархия")
16 h-sp
 
24.03.18
16:08
(13) ну ты в группировке Партия ставь МАКСИМУМ(Резерв), а в остальные СУММА(Резерв). Всему тебя учить надо.
17 Diman000
 
24.03.18
16:22
Вот так хочется помочь, но я не понял в чем проблема(
На верхнем уровне должен быть товар с остатком за минусом резерва, а на втором уровне партии товара и их остаток без учета резерва?
18 h-sp
 
24.03.18
16:27
(17) резерв задваивается
19 Diman000
 
24.03.18
16:28
(18) Где? На уровне с Товаром без Партий или там где Партии?
Там где Партии резерв невозможно вывести без предварительной подготовки. Разве что просто общий резерв по Товару в целом.
20 palpetrovich
 
24.03.18
16:49
(16) МАКСИМУМ пробовал конечно, получается такая вот картинка

Товар 28,000    1,00
Партия1 4,000    1,00
Партия3 24,000    1,00

По остатку 4+24=28
По резерву 1+1=1

(19) В идеале надо что-б в группировке Товар  Резерв был, а в Группировке Партия - нет
21 h-sp
 
24.03.18
16:52
(19) ну вообще же можно поставить МАКСИМУМ(Резерв) у группировки товар
22 palpetrovich
 
24.03.18
16:53
Решило-б задачку наверное в ВычПолях для Резерва вот такое выражение:
ВЫБОР КОГДА СистемныеПоля.Уровень=1 ТОГДА Резерв ИНАЧЕ 0 КОНЕЦ

если-б это "СистемныеПоля.Уровень" там доступно было
23 Diman000
 
24.03.18
16:54
(20)
Должно быть так?
Товар 28,000    1,00
Партия1 4,000    0,00
Партия3 24,000    0,00
24 palpetrovich
 
24.03.18
16:55
(21) сейчас насройка ресурса Резерв
"Резерв" "Максимум(Резерв)" "Склад, Товар"
результата - в (20)

(23) да
25 Diman000
 
24.03.18
16:57
(24) Хмммм... И что, галочки ресурсов по измерениям не помогают?
26 Diman000
 
24.03.18
17:02
Так, до меня начинает доходить в чем трабла.
Запрос возвращает резерв по каждой партии, использовать СУММА тут нельзя, конечно.
Тебе в (16) дали дельный совет, в (20) у тебя почти все получилось.
Осталось только совсем не выводить резерв у партий...
27 Diman000
 
24.03.18
17:06
Тема выглядит простой как дважды два.
А нельзя просто поставить ресурс Резерв = МАКСИМУМ(Резерв) и только по группировке Товар?
Что в этом случае выходит?
28 palpetrovich
 
24.03.18
17:09
(27) хочу уточнить, в фразе
"поставить ресурс Резерв = МАКСИМУМ(Резерв) и только по группировке Товар"

"по группировке Товар" - это значит установить Товар в колонке "Рассчитывать по..."
29 Diman000
 
24.03.18
17:10
(28) Ага
30 palpetrovich
 
24.03.18
17:11
(29)  вот это
Товар 28,000    1,00
Партия1 4,000    1,00
Партия3 24,000    1,00

если что, могу картинку закинуть кужа-нить
31 Diman000
 
24.03.18
17:13
(30) Хм хм хм....
А если ткнуть в Резерв два раза
Резерв = МАКСИМУМ(Резерв) Рассчитывать по Товар
Резерв = МАКСИМУМ(0) Рассчитывать по Партия
32 palpetrovich
 
24.03.18
17:17
(31) "повторяющееся поле Резерв"
33 Diman000
 
24.03.18
17:24
(32) Чего????))))
У тебя что-то не так в остальной СКДшке.
Два выбора ресурса легко должны проходить, я сто раз так делал и есть миллион моих отчетов на СКД, которые сейчас так работают на системах с 100500 охулиардов пользователей...
34 Diman000
 
24.03.18
17:32
В твоей ситуации пора применять метод деструктивного анализа.
Действуешь так. Создаешь новый отчет копированием текущего.
Удаляешь все настройки. Прямо совсем все, чтобы осталось только Отчет вверху.
Удаляешь все в макетах если там что-то есть.
Такая конструкция должна сформироваться с двойным выбором ресурса.
Отчет ничего не выведет, но не будет ругаться про "повторяющееся поле Резерв". А дальше начинаешь потихоньку добавлять свои настройки и макеты...
35 palpetrovich
 
24.03.18
17:37
(34)  я првильно понимаю, 2 поля Резерв на закладке Ресурсы?
... полное сообщение ""повторяющееся поле итога Резерв"
36 Diman000
 
24.03.18
17:41
(35) Да, правильно.
Сама по себе такая ситуация к ошибке приводить не должна.
К ошибке приводит дальнейшая настройка СКД.
37 palpetrovich
 
24.03.18
17:51
(36) новый отчет с 2-мя резервами ошибку не дает, но в строках с партиями все-равно в группировке Партия - не нули
38 palpetrovich
 
24.03.18
17:54
+(37)  а вот если поменять местами
Резерв = МАКСИМУМ(Резерв) Рассчитывать по Партия
Резерв = МАКСИМУМ(0) Рассчитывать по Товар

то в групе Товар - нули  :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший