Имя: Пароль:
1C
1С v8
Срез последних - не совсем срез?
🠗 (mikecool 16.08.2021 15:57)
, , VID1234
0 brainguard
 
28.07.21
23:39
Только сейчас обнаружил, что если в запросе будут не все измерения, то срез последних "превращается в тыкву". Например, измерения "поставщик", "номенклатура". Делаем запрос по одному измерению "номенклатура" и не получаем срез последних по этому измерению. Это действительно так? Или я что-то "неправильно готовлю" (версия платформы 8.3.18.1208)?
585 brainguard
 
11.08.21
17:33
(584) Потому что это важная и очень показательная тема
586 brainguard
 
11.08.21
18:04
(581) Не согласен. Получить последние приходные цены - это не экзотика, а нормальная потребность у клиентов. С другой стороны, хватило же у разработчиков сил на никому не нужный срез первых. А вот на нужное почему-то не хватило
587 mistеr
 
11.08.21
19:06
(583) Дубли появляются всегда, когда сворачиваются измерения. И в твоем коде (566) потенциально тоже. Если от них не избавиться, результат не может называться "срезом последних" ни в каком смысле.
588 brainguard
 
11.08.21
19:23
(587) Почему же не может? Очень даже может. Записи-то последние, и это главное. А есть там дубли или нет - это уже другой вопрос
589 mistеr
 
12.08.21
08:17
(588) Но какая самая последняя, вот главный вопрос.

Ну и с прикладной точки зрения, ты что будешь с ними делать? Запросил последнюю цену, а получил три. Все равно сворачивать.
590 brainguard
 
12.08.21
10:29
(589) Достаточно того, что они все последние. На этом задача решена. Срез либо подставляется под светлые очи пользователя, либо обрабатывается дальше программно тем или иным способом. В чем проблема? Получить одно значение из множества? Вы не знаете - как это делается?
591 Чинухов
 
12.08.21
11:00
(590) Возьмём регистр Поставщик Товар Цена. Зачем может понадобиться срез последних по Поставщику без Номенклатуры? Ваши предположения?
592 brainguard
 
12.08.21
11:05
(591) Зато может потребоваться срез последних по номенклатуре без поставщиков. А, например, в документах может потребоваться срез последних документов по контрагенту, может потребоваться срез последних документов по складу или срез последних документов по номенклатуре
593 brainguard
 
12.08.21
11:06
Это все реальные потребности
594 ptiz
 
12.08.21
11:08
(593) А выглядит как попытка самоутвердиться на протяжении 500 постов.
595 Пиняев
 
12.08.21
11:14
(592) Если понадобился такой срез - ты его легко получишь запросом. Абсолютно никаких проблем. Используй срез последних только тогда, когда это имеет смысл.
596 Вафель
 
12.08.21
11:26
(595) эта ветка просто поныть.
В 1с такое часто. Сама 1с мало думает о разрабах
597 Пиняев
 
12.08.21
11:37
(596) Согласен в общем. Только вот ТС уж больно смешной, сам придумал, сам обиделся, сам ноет.
598 brainguard
 
12.08.21
12:05
(596) Для вас, может, и поныть. А для меня тут есть практический результат. Я уже сделал универсальный срез последних. Сейчас статью опубликую. Почитаете, повеселитесь. А наиболее продвинутые задумаются, я надеюсь
599 brainguard
 
12.08.21
12:06
(597) Вы полагаете, что вопрос каким быть ЯП 1С не важен? Или место неподходящее?
600 Вафель
 
12.08.21
12:11
(598) Читайте статью (с)
Где-то я уже это слышал.
Уж ли  не мой гений дарит вам?
601 brainguard
 
12.08.21
13:08
(600) Ну, статьи пишут, чтобы их читали. Неудивительно, что вы это уже слышали
602 Пиняев
 
12.08.21
13:11
(599) Я полагаю, что вы последний человек, которого будут слушать разработчики платформы.
603 Пиняев
 
12.08.21
13:12
(598) Ну, мы вас поздравляем. Теперь не будете кривой код при получении данных из регистров сведений писать.
604 brainguard
 
12.08.21
13:36
(602) И какие практические выводы вы делаете из этого своего полагания?
605 Пиняев
 
12.08.21
13:51
(604) Что надо читать документацию от авторов платформы. И не ждать от платформы решения частных задач Миши Каллимулина.
606 brainguard
 
12.08.21
16:00
(605) И все это потому, что разработчики слушают меня в последнюю очередь?
А если бы они слушали меня в первую очередь? Какой бы вы тогда сделали вывод?
607 Пиняев
 
12.08.21
16:06
(606) Что вы врёте, конечно. Если бы разработчики слушали всех, кого попало, не было бы никакой платформы.
608 Eiffil123
 
12.08.21
16:10
(588) т.е. тебя не смущает, что в выборке будут 2 записи по одной номенклатуре с разными ценами? тогда это тоже не срез, а черт знает что
609 Пиняев
 
12.08.21
16:11
(608) Зато "последних". Миша такой Миша :))
610 Yardman
 
12.08.21
16:12
(608) В предыдущих сериях было - он считает что нужно выбрать рандомную из них.
(607) Слушать то можно кого угодно, просто предъявы автора выглядит наркоманией в чистом виде.
611 Митяйский
 
12.08.21
16:21
Прекращайте его учить, давайте лучше будем им восторгаться!
612 Пиняев
 
12.08.21
16:22
(611) А я давно им восторгаюсь, уникальный человечище.
613 brainguard
 
12.08.21
16:22
(607) Это уже интересно. Разработчики не должны никого слушать, кроме тараканов в своих головах?
614 Пиняев
 
12.08.21
16:22
(610) Не, ну сейчас он уже пишет, что сам выберет ту, которую ему надо :)
615 Пиняев
 
12.08.21
16:25
(613) В первую очередь они должны слушать точно ни кого попало с улицы, а специалистов. А чудики, вроде тебя, должны написать свою платформу и стать легендами, известными всему миру.
616 Митяйский
 
12.08.21
16:30
(612) Блин, это просто кладезь воодушевления, оказывается.

Давайте просто признаем интеллектуальное превосходство Михаила над всеми нами, засчитаем ему победу в этом вопросе и перейдем к более насущным вопросам, например к этому:

https://brainguard.ru/page14575698.html

тл;др

Пользователи 1С нехорошие и криворукие, поэтому чтобы перебороть их в вечной битве разрабов с юзерами, мы теперь будем хэшировать каждую строчку РТиУ. А потом проверять внесение изменений пересчетом хэшей. Всех.
617 brainguard
 
12.08.21
16:34
(608) Нет, не смущает. Если эти записи последние, то наличие нескольких не является проблемой. Проблемой является появление в срезе последних старых записей, как это происходит сейчас.
Вообще проблема дублей последних имеет свое очевидное решение, но это тема другого разговора
618 brainguard
 
12.08.21
16:35
(615) Хороший же вопрос. Должны ли разработчики массового продукта слушать "улицу"?
619 Пиняев
 
12.08.21
16:38
(618) Не должны, конечно. Но могут и послушать. Но не в первую очередь, не всегда самые крикливые на улице являются самыми умными :)
620 Пиняев
 
12.08.21
16:41
(617) Ну тогда не надо их называть "срез последних". Потому как в терминологии 1С "срез последних" - это последние записи по всему набору измерений. Не называйте это срезом последних, назовите "набором последних", "прибором последних", "перебором последних". И тогда к вам не будет ровно никаких претензий.
621 brainguard
 
12.08.21
17:06
(620) А может быть не стоит называть срезом последних то, что не дает последних записей? Вы не находите это более логичным?
622 Eiffil123
 
12.08.21
18:40
(621) нет никакого общеутвержденного термина срез последних.
623 Чинухов
 
12.08.21
18:47
(621) 1С придумали этот термин, его нигде больше нет. И то, что ты вкладываешь в этот термин свой смысл, это исключительно твои проблемы.
624 Митяйский
 
12.08.21
19:00
(623) В экселе есть срез. Только там этим словом называются скорее быстрые пользовательские отборы по значению, которые гораздо ближе по своему смыслу к 1Совской СКДшной расшифровке или к тому, над чем упоролся ТС.
625 Пиняев
 
12.08.21
19:06
(624) Срез сам по себе может и есть. А вот именно "среза последних" нет. Да, можно предъявить претензию к 1С, что свои термины выдумывают, но а смысл?
626 brainguard
 
12.08.21
19:08
(622) Зато есть общепринятый смысл слова "последний"
627 brainguard
 
12.08.21
19:11
(623) Что значит мои проблемы? Я потерял время. Не так много, конечно. Но таких, как я десятки тысяч. И мы все так или иначе несем потери. В этом конкретном случае из-за того, что разработчикам было не лень делать никому не нужный срез первых, но лень сделать нормально срез последних. Но разве этот случай единственный?
628 Пиняев
 
12.08.21
19:17
(627) Это и есть твои проблемы -  "Я потерял время". Ты потерял его из-за незнания документации, и не почему другому.
629 brainguard
 
12.08.21
19:20
(628) Встречный вопрос. А разработчики документацию к русскому языку читали? Видимо, нет. Никто не будет лезть в документацию за расшифровкой очевидного
630 Пиняев
 
12.08.21
19:21
(626) Ещё раз, выдирать слова из контекста - глупо. Очень глупо. Термин звучит "срез последних", и никак иначе. Исчерпывающий его смысл приведён в документации. Если бы 1С обозвал, условно "синус" как "срез угла", претензии были бы обоснованы. А так - 1С придумал свой термин, дал его определение и использует его согласно этого определения.
631 Пиняев
 
12.08.21
19:22
(629) Мда, бесполезно. Ты упёртый, как баран.
632 brainguard
 
12.08.21
19:29
(630) А делать массовый продукт, в котором "+" и "-" будут поменены местами и говорить потом: ну вот же, ребята, мы в документации все написали, плюс это минус, а минус это плюс, не читали? сами виноваты! Вот так делать не глупо? Здесь ведь то же самое
633 Yardman
 
12.08.21
19:37
(628) > А разработчики документацию к русскому языку читали? Видимо, нет. Никто не будет лезть в документацию за расшифровкой очевидного

Как бы Вы, видимо прочитавший документацию к русскому языку, назвали то что сейчас в 8ке называется СрезПоследних?
634 brainguard
 
12.08.21
19:58
(631) И, кстати, в синтакс-помощнике сказано буквально следующее:

"Получает наиболее поздние записи регистра, соответствующие установленным в параметрах метода значениям ключевых полей. Записи подбираются для каждого сочетания из всех имеющихся значений измерений регистра."

И как из ЭТОГО можно однозначно понять работу среза? "... из всех имеющихся значений ...". Имеющихся где? В моем запросе? Вот я ровно так и понял. Все-таки есть польза в длинных обсуждениях. До этого момента я был уверен, что я просто не дочитал чего-то в документации или просто забыл. А выходит, что я ничего не забыл. И действовал как раз по документации. Спасибо вам, ребята!
635 brainguard
 
12.08.21
19:58
(633) Срез последних, с явной ошибкой в реализации
636 brainguard
 
12.08.21
20:01
С недокументированной явной ошибкой в реализации
637 brainguard
 
12.08.21
21:17
Там же, в синтакс-помощнике, в разделе "Работа с запросами" описание виртуальной таблицы среза последних:

Предназначена для получения наиболее поздних записей регистра сведений на указанную дату (включительно). Включает только активные записи. По каждой комбинации измерений будет найдена наиболее поздняя запись, но не более поздняя, чем указанная дата.

Ха-ха! На протяжении 600 постов в ветку приходят самые разные люди и строго отчитывают ТС за то, что он не читал документацию. ТС поддавшись стадному чувству в это верит. И только на 634 посте он решает проверить и выясняется, что документацию никто, кроме ТС не читал. "Документацию не читал, но осуждаю тех, кто не читал" Прикольно! Эта ветка станет легендарной
638 Чинухов
 
12.08.21
21:24
(634) (637) То есть, ты не в состоянии понять то, что написано, и обвиняешь в этом 1С? Фееричненько.
639 brainguard
 
12.08.21
21:39
(638) А ничего не написано. Прочтите сами
640 brainguard
 
12.08.21
21:46
(639) Вернее, написано прямо противоположное тому, что вы утверждаете. Прямо соответствующее моим ожиданиям. И не соответствующее тому, что реализовано

"... по каждой комбинации измерений..."

Как это можно понять еще, кроме как то что вы получите последние записи и по "Номенклатура+Поставщик" и по "Номенклатура"?
641 Вафель
 
12.08.21
22:22
Очевидно же сто по каждой комбинации ЗНАЧЕНИЙ измерений
642 mikecool
 
12.08.21
22:34
7я сотня сообщений из пустого в порожнее...
автор, ты в этой ветке потерял гораздо больше времени
643 brainguard
 
12.08.21
22:40
(642) Ошибаетесь. Не знаю как для кого, а для меня ветка на редкость продуктивная. Давно такой не было
644 brainguard
 
12.08.21
22:42
(641) Это теперь, в контексте обсуждения, очевидно. А так нет, конечно же
645 Чинухов
 
12.08.21
22:49
(644) Вот тебе это в контексте обсуждения стало очевидно. А другим это было очевидно сразу. И кто тут не прав?
646 Вафель
 
12.08.21
23:01
Ну понятно же что ни про какие сочетания изменений речи и быть не может.
Кто то просто слишком много тервера изучал
647 acanta
 
12.08.21
23:05
(646) что? И что теперь делать без терверах и разных сочетаний измерений в срезе последних?
648 brainguard
 
12.08.21
23:15
(645) Кому это было очевидно сразу? И как это можно проверить?
649 brainguard
 
12.08.21
23:16
(646) Тервер здесь ни при чем. Просто последние записи должны быть последними. Вот и все
650 brainguard
 
12.08.21
23:22
(647) Писать срез последних самостоятельно всякий раз, когда надо получить его по неполному набору измерений
651 Чинухов
 
12.08.21
23:23
(648) Тем, кто читал документацию, и понял её, конечно. А как можно проверить, что ты психически нормальный?
652 Чинухов
 
12.08.21
23:24
(650) Гениально! Никто до этого раньше не додумался...
653 brainguard
 
12.08.21
23:31
(651) Да никто ее не читал, кроме меня, как выяснилось
654 acanta
 
12.08.21
23:34
(653) а зачем это читал ты?
655 brainguard
 
12.08.21
23:43
(654) А меня застыдили )))
656 Ыцшесрук
 
13.08.21
05:08
(616) АХАХАХАХ %)
Божечки, это шедевр. Он же реально Геня 2.0.
657 Eireen_zh97
 
13.08.21
07:14
Выше вы спрашивали, надо будет 4 измерения, делать регистр с 4? Ответ - Да. Правильней всего в вашей задачей делать несколько регистров. Надо по одному измерению, делайте еще один регистр с одним измерением.  Надо с 2мя - делать с 2мя еще. И это нормальное решение. А не менять работу СрезПоследних. Меня устраивает, как работает срез, а вы как умный разработчик можете написать свой запрос для среза под конкретно ваш кейс :)
658 brainguard
 
13.08.21
10:40
(657) Вот у вас есть, например, оборотный регистр "Продажи" с измерениями "Номенклатура","Контрагент","Склад". Вы ведь не делаете из него шесть регистров. Вы получаете продажи по Номенклатура+Контрагент, Номенклатура+Склад, Склад+Контрагент и т.д. все из одного регистра
659 Kassern
 
13.08.21
10:46
(658) Не путайте теплое с мягким. РН<>РС
660 Йохохо
 
13.08.21
10:48
(658) "Вы получаете продажи по Номенклатура+Контрагент" и чем период лучше склада? почему по нему надо вдруг взять максимум? в общем случае ничем.
хранить итоги with rollaup забавно конечно было бы)
661 brainguard
 
13.08.21
10:52
(659) (660) И там и там выполняется агрегирование. Просто разными способами
662 fisher
 
13.08.21
10:56
(616)(656) ЕМНИП, я встречал на инфостарте ГОТОВУЮ РЕАЛИЗАЦИЮ логов на концепции блокчейна. Еще в те времена, когда слово "блокчейн" только-только на слуху появилось.
Но там это подавалось более вменяемо. Без мясорубки Бородина, как у ТС.
Просто с целью контроля вмешательства админов. Без пересчетов - просто с функцией контроля целостности и обнаружения факта вмешательства.
663 brainguard
 
13.08.21
11:01
(662) Интересно. Не найдете публикацию? Я в свое время искал все, что есть по теме, но то, о чем вы говорите не находил
664 fisher
 
13.08.21
11:03
(663) Навскидку не нахожу.
665 brainguard
 
13.08.21
11:05
(664) Ну ладно, тогда
666 brainguard
 
16.08.21
13:47
Обещанная статья здесь: https://habr.com/ru/post/572446/
и здесь: https://brainguard.ru/page21448209.html
667 Вафель
 
16.08.21
14:01
Уникальность даты - это что-то новое
668 brainguard
 
16.08.21
14:08
(667) Эйнштейн велит, ничего не поделаешь )))
А если серьезно. А почему нет? Ну раньше байты экономили. Сейчас какие проблемы?
669 Пиняев
 
16.08.21
14:37
(666) "Мой гений дарит вам" (с)
670 Arbuz
 
16.08.21
14:40
Это уже шизофрения, не?
Но Вы не волнуйтесь, голубчик, она не лечится, а с годами только прогрессирует. (с)
Для безопасности это неважно. (с)

Неофитов только жаль немного, которым в голову это льют такие "преподаватели". Хотя по собственному опыту такие были всегда, по крайней мере 40 лет назад у меня, по итогу трудоёмкого снятия лапши, они вызывали оторопь от той чуши, которою на полном серьёзе и с чувством собственного превосходства выливали на ничего не подозревающих нас, под видом сакральной истины доступной их снисходительному гению.
671 Вафель
 
16.08.21
14:44
(668) дата дискретна. и размер ограничен
672 brainguard
 
16.08.21
15:20
(671) В реальном мире дата континуальна. Конечно, любая модель будет дискретна. Но тут вопрос практический. 32 байта дают число сравнимое с количеством атомов в наблюдаемой вселенной. Если нам жаль 32 байтов, то давайте прикинем сколько у нас всего будет документов в информационной базе. Миллион? Миллиард? Триллион? Последнее влезает в 4 байта.
673 brainguard
 
16.08.21
15:20
(670) По существу есть что возразить?
674 Вафель
 
16.08.21
15:24
(672) вот поставил ты дату в конец дня и все далее уже ничего не записать
675 Вафель
 
16.08.21
15:26
(672) по твоей логике и секунды вполне хватает. что кто то цены устанавливает чаще чем раз  в секунду?
676 brainguard
 
16.08.21
15:28
(675) Да постоянно. У вас может быть куча документов на начало дня или на конец дня. Ни разу не сталкивались?
677 Вафель
 
16.08.21
15:29
(676) и как тогда уникальность даты обеспечивать?
678 brainguard
 
16.08.21
15:31
(674) Это как платформу спроектировать. Конец дня - это 23:59:59. Именно этим понятием оперирует разработчик. А дальше платформа сама впихивает в эту секунду документы один за другим. И, в принципе, может впихнуть хоть все
679 brainguard
 
16.08.21
15:32
(677) Ровно также, как обеспечивается уникальность всего прочего. Там нет никакой магии
680 Вафель
 
16.08.21
15:33
(678) а как порядком в этой секунде рулить тогда?
681 brainguard
 
16.08.21
15:35
(680) Что значит - рулить порядком?
682 Raxla
 
17.08.21
00:47
brainguard, вы несёте ахинею: вы не конфигурируете срез, тем что внутри скобочек прописываете значения измерений. Значения внутри скобочек это фильтр к уже готовому срезу, размерность которого равна размерности регистра и никак иначе. Таким образом, вы можете отфильтровать данные среза и только. Никаких срез эН измерений вам никто не обещал, просто довольствйтесь тем, что к срезу есть фильтр уменьшающий данные выборки.
683 Raxla
 
17.08.21
00:50
Вы серьёзно, хреначите 20 лет запросы, с пониманием ниже плинтуса предметной области и никто вам по рукам не дал?
684 brainguard
 
17.08.21
01:15
(682) Ничто не мешало разработчикам вместо того, чтобы делать никому не нужный срез первых, сделать нормальный срез последних. Всех делов-то правильную группировку задать, в соотвествии с выбранными измерениями
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn