Вход | Регистрация
    1  2  3  4  5  6  7   
1С:Предприятие :: 1С:Предприятие 8 общая

Срез последних - не совсем срез?

↓ [mikecool, 16.08.21 - 15:57]
Срез последних - не совсем срез?
Я
   brainguard
 
28.07.21 - 23:39
Только сейчас обнаружил, что если в запросе будут не все измерения, то срез последних "превращается в тыкву". Например, измерения "поставщик", "номенклатура". Делаем запрос по одному измерению "номенклатура" и не получаем срез последних по этому измерению. Это действительно так? Или я что-то "неправильно готовлю" (версия платформы 8.3.18.1208)?
   youalex
 
1 - 28.07.21 - 23:44
Срез РС всегда возвращается по всем сочетаниям измерений, в отличие от вирт. таблиц РН, например.
   brainguard
 
2 - 28.07.21 - 23:51
(1) Поленились, значит. Буду знать
   PR
 
3 - 29.07.21 - 01:15
(2) Кто поленился? Ты прочитать документацию?
   Merkalov
 
4 - 29.07.21 - 01:42
(1) По РН вообще агрегируются ресурсы по не выбранным измерениям.
   Жан Пердежон
 
5 - 29.07.21 - 01:45
(2) > я что-то "неправильно готовлю"?
да
   brainguard
 
6 - 29.07.21 - 02:39
(3) Разработчики платформы, кто!
   brainguard
 
7 - 29.07.21 - 02:41
(5) Что именно? Вроде только что выяснили в (1), что срез именно таким образом недоделан. У вас есть какая-то другая информация? Какая?
   Ненавижу 1С
 
8 - 29.07.21 - 03:18
При неполном наборе измерений день пропадает уникальность, а значит срез последних построить нельзя
   Гобсек
 
9 - 29.07.21 - 05:00
(8) идеологи от фирмы 1С так решили
   МимохожийОднако
 
10 - 29.07.21 - 06:25
(0) Если не выполнять правила, заложенные в систему, то не стоит удивляться, что результат неверный. Если сказано, что нужны ВСЕ измерения, то будь добр выполнять и не удивляйся, если забыл снять штанишку до  того как писаешь.
   Ненавижу 1С
 
11 - 29.07.21 - 07:20
(9) ну построили такую модель, попробуйте предложить свою с мадемуазелями и преферансом
   brainguard
 
12 - 29.07.21 - 08:47
(8) Вы неправы. Срез последних никоим образом не зависит от уникальности. Исходные данные для получения среза всегда не уникальны
   brainguard
 
13 - 29.07.21 - 08:48
(9) Если бы решили. Просто поленились
   brainguard
 
14 - 29.07.21 - 08:50
(10) Разработчики решили, что вход с улицы должен всегда вести прямо на последний этаж. Почему бы в этом месте не поудивляться?
   Дух пролетариата
 
15 - 29.07.21 - 08:51
Хыхы, ну да, конечно, один из важных элементов платформы именно разработчики захотели сделать именно таким.

Мне это напоминает ситуацию, когда из института приходит мальчик-кодер, видит корпоративную систему издалека и тут же заявляет, что делали её идиоты и надо всё переделывать.
   Гобсек
 
16 - 29.07.21 - 08:56
(11) когда-то в молодости я писал свои модели, но все кончилось тем, что занимаюсь 1С-ом

Правила устанавливают те, у кого решение взлетело и выдержало испытание временем
   Ненавижу 1С
 
17 - 29.07.21 - 08:57
(12) слышали про такое, что набор Период+Измерения являются уникальным ключом на уровне платформы?
   brainguard
 
18 - 29.07.21 - 09:04
(17) Вы упорствуете в заблуждении. Уникальность и срез - это две НЕЗАВИСИМЫХ друг от друга фичи.

Исходные данные
01.01.2021 ООО Ромашка Свистелка 100 руб.
01.02.2021 ООО Одуванчик Свистелка 105 руб.
01.03.2021 ООО Ромашка Свистелка 106 руб.

Срез по двум измерениям
01.02.2021 ООО Одуванчик Свистелка 105 руб.
01.03.2021 ООО Ромашка Свистелка 106 руб.

Срез по одному измерению
01.03.2021 Свистелка 106 руб.

В этом месте, если вы сделаете запрос к срезуПОСЛЕДНИХ с одним измерением 1С выдаст
01.02.2021 Свистелка 105 руб.
01.03.2021 Свистелка 106 руб.
   Kassern
 
19 - 29.07.21 - 09:18
(18) И это нормальная логика. К примеру: Есть некий Вася, который работает на 2 рабочих местах.
01.03.2020 Кабинет1 Вася
01.04.2020 Кабинет2 Вася

Если вы сделаете срез последних по этому регистру с отбором по Васе, то у вас выйдет 2 строчки, проще говоря 1ска сделает срез по каждому измерению (последний раз когда вася в кабинет1 и кабинет2 работал). Даже если вы не выберите поле кабинета, то все равно в результате будет 2 строчки.
Еще раз отмечу, что СрезПоследних в 1с представляет из себя последние данные на указанную дату для УНИКАЛЬНОЙ комбинации измерений.
   PuhUfa
 
20 - 29.07.21 - 09:18
(18) А потом у тебя будут исходные данные:
01.03.2021 ООО Ромашка Свистелка 106 руб.
01.03.2021 ООО Одуванчик Свистелка 105 руб.

И срез последних по твоей свистелке что должен будет вернуть? цены через запятую?
   Kassern
 
21 - 29.07.21 - 09:20
(20) по его "логике" последняя запись в таблице походу)
   Галахад
 
22 - 29.07.21 - 09:22
(0) Поддержу. Да что этот 1С себе позволяет! Придумывают не удобную для меня фигню.
   trad
 
23 - 29.07.21 - 09:23
(20) присоединюсь. Ровно это же хотел спросить
   brainguard
 
24 - 29.07.21 - 09:25
(19) Еще раз. Уникальность и срез - две независимых по самой своей природе фичи. Регистр сведений поддерживает уникальность - это одна его фича. Далее, регистр сведений, если поставить галку, может генерить срез последних. Это другая фича. Нет никакого смысла увязывать эти две фичи друг с другом. Нет такого правила, срез последних должен строиться по всем измерениям. Банальная лень разработчиков и просто дырка в платформе
   МимохожийОднако
 
25 - 29.07.21 - 09:26
(14) Продолжу еще раз. Сначала надо выполнить то, что в инструкции, а потом удивляться. Если ты отклоняешься от инструкции по разным причинам (незнание, несогласие и т.п.), то удивляться не нужно.
   МимохожийОднако
 
26 - 29.07.21 - 09:27
(24) Не надо трактовать понятия на свой лад. Тогда и не будет "дырок".
   Kassern
 
27 - 29.07.21 - 09:27
(24) Есть понятие Срезпоследних, у него есть свое определение данное 1с. В нем четко сказано, как срез отрабатывает. Но вы придумали свое определение срезу и удивляетесь, почему так не работает...
   brainguard
 
28 - 29.07.21 - 09:27
(20) Любую
   МимохожийОднако
 
29 - 29.07.21 - 09:28
(28) Поясни )
   Вафель
 
30 - 29.07.21 - 09:29
(28) нету такой функции в запросах 1с
 
 
   Kassern
 
31 - 29.07.21 - 09:30
(28) ну круто что, возьмем регистр цен номенклатуры и не отберем по виду цен, а потом возьмем любую на дату, круто же)
   PuhUfa
 
32 - 29.07.21 - 09:30
(28) А чего ты тогда паришься? Бери любую запись из того что тебе сейчас возвращает срезпоследних -))
   Kassern
 
33 - 29.07.21 - 09:30
(31) а если еще и в валюте есть цены, то еще круче))
   brainguard
 
34 - 29.07.21 - 09:32
(20) Спасибо! Навели на мысль, где я "не умею готовить"
   ДенисЧ
 
35 - 29.07.21 - 09:32
(24) "Нет такого правила, срез последних должен строиться по всем измерениям"
Есть. И ничего ты с этим не поделаешь.
   VladZ
 
36 - 29.07.21 - 09:32
Вообще не понимаю, что тут можно обсуждать:
Разработчик предоставил нам механизм, который работает определенным образом. На этом всё.
   brainguard
 
37 - 29.07.21 - 09:33
(35) Это - не баг, это - фича ))))
   PuhUfa
 
38 - 29.07.21 - 09:34
(36) А поговорить? И вообще... 1С еще сырая (с)
   brainguard
 
39 - 29.07.21 - 09:35
(38) Воистину сырая
   mikecool
 
40 - 29.07.21 - 09:35
(37) напиши свой срез, за то время, как закидывать на вентилятор уже бы справился
   ДенисЧ
 
41 - 29.07.21 - 09:35
(37) Это описанное в документации поведение. И если оно тебе не нравится - у тебя есть два пути.
   Вафель
 
42 - 29.07.21 - 09:36
Эхх придется самому срез писать.
Кстати не самая тривиальная задача
   mikecool
 
43 - 29.07.21 - 09:36
+40 раньше сталкивался, что на постгри запрос возвращал не последнюю запись, а тот же запрос на мсскл - последнюю
надо и тут похоливарить
   Вафель
 
44 - 29.07.21 - 09:37
Но конечно сеньор 1сник должен это с закрытыми глазами делать
   Вафель
 
45 - 29.07.21 - 09:37
(43) так ордер бай нужно таки указывать
   ДенисЧ
 
46 - 29.07.21 - 09:39
(43) Это документировано тоже...
   kumena
 
47 - 29.07.21 - 09:44
Напишите в 1с, что у них не хватает еще одной функции - срез совсем последних! )))
   ptiz
 
48 - 29.07.21 - 10:48
(28) Гениальное решение. Бери тогда МАКСИМУМ() или МИНИМУМ() и не парься.
   brainguard
 
49 - 29.07.21 - 10:57
(48) Эээ...

01.02.2021 Свистелка 105 руб.
01.03.2021 Свистелка 106 руб.

Все-таки не срез последних. А в случае (20) можно брать все записи, тогда будет 

01.03.2021 Свистелка 105 руб.
01.03.2021 Свистелка 106 руб.
Или действительно МНИМУМ(МАКСИМУМ), тогда
01.03.2021 Свистелка 105 руб.
или
01.03.2021 Свистелка 106 руб.

И первое и второе и третье будут самыми настоящими срезами последних. Все таки - это дырка в платформе
   brainguard
 
50 - 29.07.21 - 11:04
(36) Язык 1С - это жест благотворительности со стороны разработчиков. Он существует, пока мы им пользуемся
   brainguard
 
51 - 29.07.21 - 11:04
(50) не жест
   trad
 
52 - 29.07.21 - 11:06
(49) не выдумывай, нет никакой дырки в платформе.
Срез работает логично и правильно.

Если тебе нужно свернуть срез последний, сворачивай как тебе надо и агрегируй ресурсы как тебе надо. В общем случае это (сворачивание) не решается, поэтому и нет его.
   brainguard
 
53 - 29.07.21 - 11:28
(52)
Исходные данные
01.01.2021 ООО Ромашка Свистелка 100 руб.
01.02.2021 ООО Одуванчик Свистелка 105 руб.
01.03.2021 ООО Ромашка Свистелка 106 руб.
01.03.2021 ООО Василек 107 руб.

Что больше похоже на срез последних?

01.02.2021 Свистелка 105 руб.
01.03.2021 Свистелка 106 руб.
01.03.2021 Василек 107 руб.

или

01.03.2021 Свистелка 106 руб.
01.03.2021 Василек 107 руб.
   brainguard
 
54 - 29.07.21 - 11:28
Исходные данные
01.01.2021 ООО Ромашка Свистелка 100 руб.
01.02.2021 ООО Одуванчик Свистелка 105 руб.
01.03.2021 ООО Ромашка Свистелка 106 руб.
01.03.2021 ООО Василек Свистелка 107 руб.

Что больше похоже на срез последних?

01.02.2021 Свистелка 105 руб.
01.03.2021 Свистелка 106 руб.
01.03.2021 Свистелка 107 руб.

или

01.03.2021 Свистелка 106 руб.
01.03.2021 Свистелка 107 руб.
   ДенисЧ
 
55 - 29.07.21 - 11:29
(54) Ни одно из. Это больше похоже на твои фантазии
   Ненавижу 1С
 
56 - 29.07.21 - 11:31
(28) системный поход, че
   kumena
 
57 - 29.07.21 - 11:33
(54) ты же сам можешь свой срез написать, все же виртуальные таблицы это вьюхи от 1с, они ничего волшебного не делают, точно так же выбирают данные из физических таблиц.
   trad
 
58 - 29.07.21 - 11:34
(53) поясни про последнюю строку исходных данных. Там что, второе измерение - пустое?
   Ненавижу 1С
 
59 - 29.07.21 - 11:35
(49) дырка в голове
   trad
 
60 - 29.07.21 - 11:37
(54) больше похоже на срез последних:
01.02.2021 ООО Одуванчик Свистелка 105 руб.
01.03.2021 ООО Ромашка Свистелка 106 руб.
01.03.2021 ООО Василек Свистелка 107 руб.
- чем оно и является
 
 
   brainguard
 
61 - 29.07.21 - 11:40
(60) Но 1С выдает

01.02.2021 Свистелка 105 руб.
01.03.2021 Свистелка 106 руб.
01.03.2021 Свистелка 107 руб.

И это ни на что не похоже, согласитесь
   brainguard
 
62 - 29.07.21 - 11:40
(58) Исправил в (54)
   trad
 
63 - 29.07.21 - 11:58
(61) нет. Тут ты показываешь то что выдает твой запрос, а не срез последних.
Срез последних выдает (60), а уже ты выводишь только одно измерение из двух.
   Kassern
 
64 - 29.07.21 - 12:00
(63) именно так, но ТС не хочет это понять походу...
   brainguard
 
65 - 29.07.21 - 12:04
(63) Получается, что срез последних выдает не срез последних
   Kassern
 
66 - 29.07.21 - 12:04
(65) откуда вы взяли определение среза последних? Из своей "логики"?
   brainguard
 
67 - 29.07.21 - 12:05
(66) Из значения слова "последний"
   trad
 
68 - 29.07.21 - 12:05
(65) ты или тролишь или действительно не понимаешь
   Kassern
 
69 - 29.07.21 - 12:06
(67) последний для уникального сочетания измерений, что не так?
   Kassern
 
70 - 29.07.21 - 12:07
(68) видимо, когда занимаешься преподавательской деятельностью и имеешь множество сертификатов 1с, то по другому начинаешь смотреть на методы 1с))
   brainguard
 
71 - 29.07.21 - 12:08
(68) Ни то, ни другое. Срез последних - это когда выдаются последние значения. Что делать, когда таких значений несколько - это тема для обсуждения. Но оставлять так, как сейчас реализовано - это неправильно
   brainguard
 
72 - 29.07.21 - 12:09
(69) А должен быть последний для заданного тобой набора измерений
   Kassern
 
73 - 29.07.21 - 12:14
(72) кому должен быть? Где вы такое определение взяли? Вы с тем же успехом можете сказать, что кнопка пуск в винде должна быть по середине экрана, вас спросят почему, а вы мол так же "логичней", пуск же должен быть на самом видном месте!
   Kassern
 
74 - 29.07.21 - 12:15
в общем, есть метод, описанный и названный 1с. Этот метод отрабатывает, как и был задуман. Все что вы пишите, это ваши хотелки, которые при желании можете реализовать запросом.
   brainguard
 
75 - 29.07.21 - 12:16
(73) Должен тем, кто пользуется языком
   ДенисЧ
 
76 - 29.07.21 - 12:16
(74) "Чтобы выключить компьютер, нажмите кнопку Пуск" (с)
   ДенисЧ
 
77 - 29.07.21 - 12:16
(75) Надо не только языком болтать, в смысле пользоваться. Но и мозги включать. Правда, похоже, для тебя эта задача невыполнима.
   Hornit
 
78 - 29.07.21 - 12:19
(73) А ещё по нажатию на неё должен запускаться видимо пуск ракет, а то какого .. она называется "Пуск" а не "Выключение")))
(75) Докопаться до значения слова и это в русскоязычном языке. Чтоже с вами будет если программировать на англ.
   trad
 
79 - 29.07.21 - 12:20
(75) я пользуюсь. Реализация среза - правильная. То что ты хочешь - хрень.
   brainguard
 
80 - 29.07.21 - 12:22
(79) Но и я тоже пользуюсь
   Kassern
 
81 - 29.07.21 - 12:23
(80) всем не угодишь
   trad
 
82 - 29.07.21 - 12:23
(80) но ты проиграл ))
   brainguard
 
83 - 29.07.21 - 12:24
(81) А не надо всем
   brainguard
 
84 - 29.07.21 - 12:24
(82) А ты и вовсе не играл
   Kassern
 
85 - 29.07.21 - 12:24
(82) погоди, вот скоро будет новый убивца 1с с блекджеком и "правильным" срезом последних)
   Said_We
 
86 - 29.07.21 - 12:25
(0) Я так понимаю тебе нужны две таблицы:
То что сейчас называется срез - назвать НикальностьПоследних(), А то что ты хочешь назвать СрезПоследних()
   VladZ
 
87 - 29.07.21 - 12:26
(71) Срез последних формируется по всем реквизитам, заданным в структуре регистра. Только такой функционал заложен в платформу.
Это не дыра, и не ошибка. Это штатное поведение программы.

Если тебе нужно получать срез последних не по всем реквизитам - получай запросом.
   Said_We
 
88 - 29.07.21 - 12:26
К (86) Описался
"То что сейчас называется срез - назвать УникальностьПоследних(), А то что ты хочешь получить на выходе назвать СрезПоследних()".
   Said_We
 
89 - 29.07.21 - 12:30
(0) Представь что у тебя чистый SQL, и нет там никаких ни срезов последних, ни уникальностей последних. Красота! :-)
Из минусов, только то что в 1С нет чистого SQL, а есть сильно обрезанный. :-)

1С реализовала Срез последних так как задумали и назвали они это так как назвали.
   brainguard
 
90 - 29.07.21 - 12:31
(87) Это - штатная ошибка. Назовем это так )))
   Said_We
 
91 - 29.07.21 - 12:32
(90) Нет. Это максимум - не совсем корректно назвали Срез срезом.
   brainguard
 
92 - 29.07.21 - 12:32
(88) Зачем плодить лишние сущности? Достаточно того, чтобы срез последних выдавал действительно последние записи и все
   Said_We
 
93 - 29.07.21 - 12:33
(92) А если нужны уникальности последних?
   brainguard
 
94 - 29.07.21 - 12:35
(93) Задай в запросе полный комплект измерений
   Said_We
 
95 - 29.07.21 - 12:36
(94) А если мне на выходе нужен не весь комплект измерений, а уникальность нужна вся?
   brainguard
 
96 - 29.07.21 - 12:37
(95) Дай кейс на этот случай. Я пока не вижу - где это могло бы быть полезно
   Said_We
 
97 - 29.07.21 - 12:38
(0) 1С реализовала то, что реализовала. Другого пока ничего нет.
Пишите им (1С) на телеграмм канал, что бы вы хотели видеть в будущем. Такой канал от самой фирмы 1С есть.
   Said_We
 
98 - 29.07.21 - 12:40
(96) Например, анализ того как часто по тем или иным измерениям происходят изменения в разрезе остальных измерений.
   brainguard
 
99 - 29.07.21 - 12:40
(97) Я лучше в Спортлото напишу )))
   brainguard
 
100 - 29.07.21 - 12:41
(98) Мне кажется, что этот кейс слабее моего
  1  2  3  4  5  6  7   

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