Вход | Регистрация
    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)?
   Said_We
 
101 - 29.07.21 - 12:41
(96) На самом деле всегда проектируют Рс так что бы нужен был срез по всем измерениям. Если вам нужен не по всем, то надо смотреть сам РС.
   Kassern
 
102 - 29.07.21 - 12:41
(96) просто поймите, чтобы получить одну запись верную надо полностью отобрать измерения. Тогда вы получите верный последний ресурс. Если же вы не отобрали, тогда что у вас может быть не верная 1 запись, что 1с выплюнет несколько записей, из которых вам нужна 1 а остальные не нужные. В общем, в любом кейсе вам все равно нужно указывать все измерения для получения верной 1 записи.
   Said_We
 
103 - 29.07.21 - 12:42
(99) Если не напишите, то они и не узнают о такой необходимости. Пишите им в 1С обязательно.
   ДенисЧ
 
104 - 29.07.21 - 12:43
(103) Обязательно СС:Спортлото, Лига сексуальных реформ не забыть добавиьт...
   Said_We
 
105 - 29.07.21 - 12:48
(100) см. (101)
Если бы 1С поддерживал все конструкции стандартного SQL, то такими таблицами как СрезПоследних и СрезПервых вы бы не могли не пользоваться, а легко написать свой запрос, который бы вытащил необходимые вам данные. Сейчас тоже можно, но с левыми JOIN.
   K1RSAN
 
106 - 29.07.21 - 12:54
А я хочу, чтобы машина могла ехать влево и вправо без поворота. Но это почему-то никто не сделал
   Said_We
 
107 - 29.07.21 - 12:56
(100) Если брать ваше трактование среза, то в срезе Последних в платформе 1С сейчас есть возможность указать только Период и Условие (отбор), но нет возможности указать перечень измерений, в разрезе которых необходимо считать это срез. То что вы какие-то поля указываете в ВЫБРАТЬ, это не имеет ровным счетом никакого отношения в самому срезу, так как ВЫБРАТЬ выполняется уже позже на основе результата из Среза.
Надеюсь так понятно объяснил?
   Said_We
 
108 - 29.07.21 - 13:01
К (105) Описался
"вы бы МОГЛИ не пользоваться, "
   Yardman
 
109 - 29.07.21 - 13:02
(107) При том что автора (0) не поддерживаю, аргумент на самом деле слабый.
Например, в таблице остатков тоже не указываются измерения - но ресурсы тем не менее сворачиваются по задействованным измерениям.

Просто исходная постановка вопроса в (0) и дальнейшие уточнения про "последние" записи бредовая.
В СУБД ведь нет такого понятия как последняя вообще запись, есть только последняя при какой-то сортировке.
Ну а как уже много раз в этой ветке написали - при отсутствии уникальности в полях сортировки - сортировка будет не стабильной.
Т.е. такой срез будет (как минимум время от времени) выдавать рандомные записи.
   ptiz
 
110 - 29.07.21 - 13:04
(107) У ТС проблема с логикой. Он хочет "какую-нибудь" запись в случае совпадения периодов.
   Said_We
 
111 - 29.07.21 - 13:13
(109) Ещё раз прочитай внимательно (107).
1С реализовала срез последних так как она его реализовала. Если не в разрезе всех измерений необходимо вытаскивать срез, значит как-то странно спроектирован РС.

Что такое СрезПоследних с точки зрения чтения в языке запросов 1С - по большому счету это подзапрос. Реализован технически он иначе, но это НЕ с точки зрения его понимания при написании запроса.
Если упрощенно, то срез это вот такая некая запись:

ВЫБРАТЬ
     СРЕЗПОСЛЕДНИХ.Поле
    ,....
ИЗ
    (ВЫБРАТЬ
          т.Измерение1, т.Измерение2, ... ,т.ИзмерениеN
         ,т.Ресурс1, т.Ресурс2,...,т.РесурсN
         ,т.Реквизит1, т.Реквизит2,....,т.РеквизитN
     ИЗ
     ...
         <Условие на период>
         <Условие на прочие поля>
     ...
    ) КАК СРЕЗПОСЛЕДНИХ

(110) Да это понятно. Я пытаюсь уже с другой стороны объяснить.
   Said_We
 
112 - 29.07.21 - 13:30
(109) "Например, в таблице остатков тоже не указываются измерения" - в остатках есть агрегатная функция SUM() по ресурсам. Всё остальное хотя бы можно свернуть. И не надо таблицу остатков воспринимать как подзапрос по аналогии с РС - это не так.

В РС нет никаких агрегатных функций. Никак и ни чего свернуть нельзя.

Вот так в 1С реализованы дополнительные источники данных и так работает язык запросов. Так он задуман и так он всех устраивает.

Повторюсь уже в третий раз. Если необходимо тащить данные из РС не по всем измерениям, то смотрите на структуру регистра или он спроектирован не так как необходимо, либо для решаемой задачи необходим другой РС.
   brainguard
 
113 - 29.07.21 - 13:39
(112) В регистре два измерения "Поставщик" и "Номенклатура". Иногда нужны последние цены по двум измерениям, а иногда только по "Номенклатуре". Так бывает... почти всегда. В реальном мире сущности так соотносятся друг с другом. При вашем подходе получается, что я должен создать и поддерживать отдельный регистр с одним измерением. А теперь представьте что у меня четыре измерения. Сколько я должен буду создать дополнительных регистров?
   серый КТУЛХУ
 
114 - 29.07.21 - 13:54
типичный случай разрухи в голове. причем даже вопреки разжевыванию.
по таблице - срез последних значений таблицы по всем измерениям таблицы.
прочее - производное от среза последних. называть их "срезами последних" - глупость.
   серый КТУЛХУ
 
115 - 29.07.21 - 13:54
"по всем сочетаниям измерений"
   Said_We
 
116 - 29.07.21 - 14:02
(113) Вы не слушаете даже. И выше писали и в (110) коротко даже резюмировали. Вы это в упор не видите.
   brainguard
 
117 - 29.07.21 - 14:10
(116) Что там резюмировали? Что моя схема выдаст дубли? Так и 1С сейчас выдает дубли. Только 1С выдает еще и старые дубли
   Said_We
 
118 - 29.07.21 - 14:22
(117) Неа.... резюмировали, то что если выдавать НЕ дубли, как Вам необходимо, то что?
"какую-нибудь" запись.
"какую-нибудь" - это какую? Какая из записей с разным значением ресурса будет более правильная?

Я уже и с другой стороны объяснить пытался. Но всё тщетно.

Считайте что для Вас среза не существует, есть просто таблица с движениями. Пишите свой срез. Шутка. :-)
   brainguard
 
119 - 29.07.21 - 15:36
(118) Есть три варианта решения вопроса дубля:

1. Оставить дубли
2. Выдавать максимум
3. Выдавать минимум

Меня бы устроил любой вариант
   Said_We
 
120 - 29.07.21 - 15:42
(119) Так они все есть.
1. Как и есть.
2. Примени в выборке к полю ресурса Макс()
2. Примени в выборке к полю ресурса Мин()
   Said_We
 
121 - 29.07.21 - 15:44
Короткий текст запроса брось сюда если есть сложности. Подскажут как взязть максимум или минимум.
   Вафель
 
122 - 29.07.21 - 15:45
самое сложное в этой задаче, если есть несколько ресурсов и нужно вернуть все ресурсы по 1 записи, а не произвольным образом (мин-макс)
   brainguard
 
123 - 29.07.21 - 15:48
(121) У меня (в отличии от 1С) сложностей нет
   Kassern
 
124 - 29.07.21 - 15:48
(122) не используй срез, а просто обратись к регистру и получи нужные ресурсы за период, не понимаю, что тут сложного?
   brainguard
 
125 - 29.07.21 - 15:48
(121) Но все равно, спасибо!
   Вафель
 
126 - 29.07.21 - 15:49
(124) я уже и не про срез, а про решение задачи.
те запрос с условиями (122) будет сложнее чем без них
   Вафель
 
127 - 29.07.21 - 15:49
если (122) не нужно, то проще взять срез и его свернуть взяв МАКС по ресурсу
   brainguard
 
128 - 29.07.21 - 15:49
(124) Я решал (и решил, еще до того, как написал сюда) задачу именно среза, и именно по одному измерению
   brainguard
 
129 - 29.07.21 - 15:50
(127) Срез вернет лишние записи (не последние)
   Kassern
 
130 - 29.07.21 - 15:50
(128) просто вы по своему поняли определение среза и не удосужились прочитать официальную инфу по данному методу. Вот и суть всей этой ветки.
 
 
   Вафель
 
131 - 29.07.21 - 15:51
(129) он вернет, а потом ты сгруппируешь
   Kassern
 
132 - 29.07.21 - 15:52
(129) это для вас они лишние, а по логике 1с они не лишние, а кому то даже очень нужные. Это вам не регистр накопления, где можно пропустить какие то измерения и ресурс чудесным образом сложится. В РС все должно быть точно и не должно быть неопределенностей в результате
   Вафель
 
133 - 29.07.21 - 15:57
(131) хотя нет, не сработает, там период может же быть другой.
надо самому разворачивать срез
   Сергиус
 
134 - 29.07.21 - 16:13
(18)Это логично в плане начально заданной структуры. Если очень хочется, можно сделать группировку и взять Максимум по периоду.
   серый КТУЛХУ
 
135 - 29.07.21 - 16:20
так не понимать - это надо талант иметь. да что там талант - талантище!
   1CnikPetya
 
136 - 29.07.21 - 16:28
(119) А я хочу Среднее.
   mistеr
 
137 - 29.07.21 - 16:28
Я один так и не понял, какого поведения ожидал ТС? И что он понимает под "срез по одному измерению"?
   Kassern
 
138 - 29.07.21 - 16:32
(137) ну типа есть у вас:
10.05.2021 Закупочная морковь 45р
11.05.2021 Закупочная морковь 46р
10.05.2021 Продажная морковь 60р
11.05.2021 Продажная морковь 63р
По "логике" ТС, при отборе среза последних по морковке он хочет чтобы 1ска однозначна выдала лишь:
11.05.2021 Продажная морковь 63р
Почему он это требует от нее я хз. 1с здорового человека выдает
11.05.2021 Закупочная морковь 46р
11.05.2021 Продажная морковь 63р
Даже если не указан вид цены, то все равно будет результат из 2 строк. Для более точного результата 1с требует указать ВСЕ измерения. В данном случае вид цены и это нормально!
   mistеr
 
139 - 29.07.21 - 16:36
(138) А, он просто не знает про ПЕРВЫЕ 1? Ясно.
   H A D G E H O G s
 
140 - 29.07.21 - 16:36
(0) И этот человек ведет курсы в Бауманке.
Это жестяночка.
   Kassern
 
141 - 29.07.21 - 16:37
(140) курсы 1с?
   H A D G E H O G s
 
142 - 29.07.21 - 16:37
(141) Ну да.
   Kassern
 
143 - 29.07.21 - 16:38
(141) если по 1с, хотел бы я послушать кусочек связанный регистрами сведений и правильного архитектурного применения его.
   Вафель
 
144 - 29.07.21 - 16:38
пора ему на марс лететь, город там строить
   fisher
 
145 - 29.07.21 - 16:42
(137) У ТС появился кейс, когда ему нужно получить срез без учета всех измерений (как если бы у него был более простой РС - это иногда имеет смысл). И он интуитивно ожидал, что так оно и сработает. Такая опция была бы удобна, но для нее пришлось бы либо интеллектуальный парсинг запроса запиливать, либо параметров виртуальной таблице досыпать.
   Kassern
 
146 - 29.07.21 - 16:46
(145) а потом другие бы словили кучу косяков, забыв указать отбор по измерению( а дубли они не увидят по логике ТС), на тесте мог и верный результат сегодня показаться. А потом через месяц бы поняли, что отчетом можно только подтереться.
   H A D G E H O G s
 
147 - 29.07.21 - 16:46
   Kassern
 
148 - 29.07.21 - 16:51
(147) эх... не услышу я лекцию из уст ТС про архитектурные решения РС(
   mistеr
 
149 - 29.07.21 - 16:52
(145) Если не обращать внимания на часть измерений, то "последних" записей будет несколько в общем случае (как и в примере (138) ). То есть в случае ТС все равно нужно использовать ПЕРВЫЕ 1. То есть овчинка выделки не стоит.
   Aleksandr N
 
150 - 29.07.21 - 16:59
(140) А я то сначала подумал, что это новый ник ливингстара, хехе.
   fisher
 
151 - 29.07.21 - 17:05
(149) ПЕРВЫЕ не лечат. Разве что через коррелирующий подзапрос. В общем случае ведь не по единственному значению данные получать надо. Понятно, что выкрутиться можно. Я просто отвечал на твой вопрос.
   Said_We
 
152 - 29.07.21 - 17:15
(147) С чего взято, что это кто-то из этих курсов?
   fisher
 
153 - 29.07.21 - 17:20
(152) Это Калимулин вроде. Он использует такой ник. Тусовался раньше под своим именем и вроде как под этим тут тоже деанонимизировался. Но зуб не дам.
   Kassern
 
154 - 29.07.21 - 17:22
(153) весной была его ветка на тему "зачем нужны регистры..." там вроде и деанонимизация прошла)
   fisher
 
155 - 29.07.21 - 17:23
(154) Точно! Он там ссылку на свою статью на хабре давал.
   H A D G E H O G s
 
156 - 29.07.21 - 17:26
(155) Именно.
   H A D G E H O G s
 
157 - 29.07.21 - 17:26
   Said_We
 
158 - 29.07.21 - 17:40
Как в анекдоте получается.
Один доцент другому:
- Вот студенты тупые пошли! Я им раз объяснил. Второй раз объяснил. Уже сам понял, а они не могут понять.
   fisher
 
159 - 29.07.21 - 17:43
(158) Анекдоту до жизни далеко. Ты почитай его труды. Там все очень концептуально. Человек способен подняться над толпой и задать вопросы, которые серой массе даже в голову не приходят.
   Said_We
 
160 - 29.07.21 - 17:52
(159) Пытался уже... Вообще не понял о чём. По всей видимости я совсем серая масса и об этом до сих пор не думаю.
Тут нет стёба. Я реально не понимаю о чём там.
 
 
   fisher
 
161 - 29.07.21 - 17:54
(160) А то. Не только лишь все могут в завтрашний день смотреть.
   H A D G E H O G s
 
162 - 29.07.21 - 17:54
(159) (160) (161) Художники - странные люди.
   fisher
 
163 - 29.07.21 - 17:59
Художника обидеть каждый может.
   brainguard
 
164 - 29.07.21 - 21:33
(143) Написать вам статью?
   brainguard
 
165 - 29.07.21 - 21:35
(145) Ничего этого не надо. Просто формировать срез по набору измерений, который указан в запросе. В РН же это так работает
   brainguard
 
166 - 29.07.21 - 21:36
(137) См. (18)
   brainguard
 
167 - 29.07.21 - 21:40
(132) Да неопределенностей не должно быть. Но сейчас они есть. Сделайте запрос к регистру сведений по одному измерению (когда их больше, чем одно) и получите неопределенность. Именно так работает штатный механизм сейчас
   brainguard
 
168 - 29.07.21 - 21:52
(138) Вы неточно передаете, что я хочу. Я хочу чтобы в результате было:

Морковь 63р.
Морковь 46р.

или

Морковь 63р.

или

Морковь 46р.

Меня бы устроил любой из этих трех вариантов
   1CnikPetya
 
169 - 29.07.21 - 21:53
(165) Вам ведь уже много раз пытались донести мысль, что в РН есть агрегация ресурсов, а в РС ее нет. Отсюда и принципиальная разница в работе с измерениями.
(166) Вам на этот пример уже привели контрпример, с данными:

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

и неопределённым результатом, если пытаться применить вашу логику. Причем любой вариант не будет достаточно прозрачным.

(167) Сейчас неопределенности, как раз, нет. Текущее поведение логично и, что главное, задокументировано.

(168) А меня ни один из них не устраивает. Хочу среднее арифметическое.
   brainguard
 
170 - 29.07.21 - 21:54
(169) Сейчас есть задокументированная неопределенность
   1CnikPetya
 
171 - 29.07.21 - 22:03
(170) Ее нет. Неопределённость пытаетесь создать вы. Из приведённых вами примеров в (168) ни один вариант не имеет явной причины для существования. И, да, я хочу среднее арифметическое. Почему нет этого варианта?
   youalex
 
172 - 29.07.21 - 22:17
(165) Я перефразирую это иначе - будет не лишней возможность определять логику своих виртуальных таблиц. В терминах того же tsql - обычные табличные функции. Временные таблицы же внедрили (кто застал 1С до 8.1.15 может помнить всю красоту многоуровневых вложенных запросов). Но функций думаю не будет. Это не так критично и файловая версия, движок которой тоже придется дописывать. Сейчас
   youalex
 
173 - 29.07.21 - 22:26
(172) то же самое кстати, касается и cte. Одно дело = транслировать запрос с общими табличными выражениями для СУБД, которые это поддерживают. И совсем другое - реализовать этот функционал, с его основной фичей -рекурсивным запросом -  на файловом, чисто одинэсном  движке. То же касается и апдейтов во временных таблицах. Было бы иногда прикольно создать каркас временной таблицы, и дальше в пакете отдельным запросами заполнять ее поля. Но тоже нет.
   brainguard
 
174 - 29.07.21 - 22:59
(171) Потому что нет кейса
   mistеr
 
175 - 29.07.21 - 22:59
(167) "неопределенности не должно быть" + (168) "неопределенность меня устроит" — ты сам себе противоречишь.
   brainguard
 
176 - 29.07.21 - 23:04
(175) В этом посте (167) я обращаю внимание на то, что неопределенности и сейчас есть
   mistеr
 
177 - 29.07.21 - 23:14
(176) Давай начнем с того, что ты дашь новое название и четкое определение тому, что ты хочешь получить. Не надо называть это "срезом последних", срез последних четко определен не тобой, а 1С. Срез последних не бывает "по одному измерению", он делается сразу по всем измерениям, не зафиксированным в отборе. Тут и проявляется связь среза с уникальностью, которую ты упускаешь.
   mistеr
 
178 - 29.07.21 - 23:16
(173) Да ладно, это не бог весть какая задача, не надо преувеличивать. Если будет реальная потребность, реализуют.
   Said_We
 
179 - 29.07.21 - 23:17
(173) Файловую в топку и тогда можно будет в 1С нормальный SQL использовать. Нет нормльного SQL так как есть файловая и это надо там реализовывать. Хотя есть бесплатный SQL постгри.
Сделали бы спец лицензию с сервером 1С и на SQL постгри - в замен файловой и всего делов. Не надо файловой тормозить развитие функционала, который бы существенно упростил разработку и существенно ускорил бы работу запросов в 1С. Мы бы имели возможность писать короткие понятные запросы, а не миллион вложенных внутренних таблиц и подзапросов с тучей JOIN.

(176) Уже сказали как её обойти.
Выбрать
       т.Измерение1
      ,т.Измерение3
      ,ИмяАгрегатнойФункции(т.Ресурс1)
из
      РегистрСвдедений.ИмяРегистра.СрезПоследних(&ДатаСреза, ) как т
Сгруппировать по
       т.Измерение1
      ,т.Измерение3
   Ненавижу 1С
 
180 - 29.07.21 - 23:27
(179) это если периоды совпадут, то агрегатная функция, если различные - то будет неправильно
   Said_We
 
181 - 29.07.21 - 23:29
(180) Неправильно это как?
   Said_We
 
182 - 29.07.21 - 23:32
В (179) Не выбирается период. Поэтому разные периоды или не разные - фиолетово. Далее всё свернется по измерениям.
   Мигрень
 
183 - 29.07.21 - 23:41
я бы лучше сделал срез крайних, это решило бы все проблемы
   youalex
 
184 - 29.07.21 - 23:43
(178) Нет. Именно потому, что не такая большая проблема, и именно потому что есть файловая, совместимость с которой задекларирована.
Возможно, когда-нибудь 1с решатся и провозгласят. что есть две разных 1С - одна для ларьков, собственно,  - а вторая - для солидных господ. А пока есть файловая СУБД от 1с. и пока ими декларируется обоюдная совместимость(которой кстати изначально нет и не было - по длине индексов)- всех этих плюшек "взрослых" СУБД - ждать самонадеянно.
   youalex
 
185 - 29.07.21 - 23:54
(178) Повторюсь - это огромная разница между тем чтобы транслировать Запрос.Текст с тем же cte - в запрос СУБД, которая поддерживает этот механизм. То есть это просто преобразование текста по сути.
И совсем другое - допилить свой движок запросов, чтобы он понимал и умел обрабатывать эту инструкцию.
   Said_We
 
186 - 30.07.21 - 00:09
(183)
Ну один из способов, но не лучший наверно - не сильно думал. Но это не 1С язык запросов.
Только опять же где в реальных задачах это применять? Какое-то значение ресурса...

with data as
    (Select
     '2017-01-10' as d
    ,'sklad_1' as sklad
    ,'tovar_1' as tov
    ,10 as cena

    union all select '2017-02-23', 'sklad_1', 'tovar_1', 20
    union all select '2017-02-23', 'sklad_2', 'tovar_2', 30
    union all select '2017-02-25', 'sklad_2', 'tovar_1', 40
    union all select '2017-02-28', 'sklad_1', 'tovar_1', 50
    union all select '2017-03-15', 'sklad_1', 'tovar_1', 60
    union all select '2017-03-23', 'sklad_1', 'tovar_1', 70
    union all select '2017-03-23', 'sklad_2', 'tovar_1', 80
    union all select '2017-03-23', 'sklad_1', 'tovar_2', 90
    union all select '2017-03-23', 'sklad_2', 'tovar_2', 100
    union all select '2017-03-25', 'sklad_1', 'tovar_2', 110
    union all select '2017-03-26', 'sklad_2', 'tovar_1', 120
    union all select '2017-03-28', 'sklad_1', 'tovar_1', 130
    )
select
    *
from
    (select
         d
        ,tov
        ,cena
        ,row_number() over(partition by tov order by d) as npp
        ,count(*) over(partition by tov) as Max_tov
    from
        data
    where
        d <= '2017-03-23'
    ) as t
where
    t.npp = t.max_tov


Результат даст:
d            tov    cena    npp    Max_tov
2017-03-23    tovar_1    80    7    7
2017-03-23    tovar_2    100    3    3
   Said_We
 
187 - 30.07.21 - 00:16
,row_number() over(partition by tov order by d,cena desc) as npp

результат:
d        tov    cena    npp    Max_tov
2017-03-23    tovar_1    70    7    7
2017-03-23    tovar_2    90    3    3

,row_number() over(partition by tov order by d,cena) as npp
результат:
d        tov    cena    npp    Max_tov
2017-03-23    tovar_1    80    7    7
2017-03-23    tovar_2    100    3    3
   Said_We
 
188 - 30.07.21 - 00:21
Так же можно прикрутить агрегатные функции среднего логарифма синуса и косинуса - любой каприз. :-)
Можно получать несколько записей и далее брать МИН МАКС у даты и применять агрегатную функцию к ресурсу.

(0) Собственно Вы какой результат хотите?
   Said_We
 
189 - 30.07.21 - 00:45
Аналог типового среза наверное будет такой, только в итоговой выборке не все поля *, а перечисление всех измерений, ресурсов и реквизитов.
В оконной функции в конструкции "partition by sklad,tov,...." перечисление всех измерений.
Но опять же это не лучший и не единственный вариант получения среза.

select
    *
from
    (select
         *
        ,row_number() over(partition by sklad,tov order by d) as npp
        ,count(*) over(partition by sklad,tov) as Max_tov
    from
        data

    where
        d <= '2017-03-23'
        AND <Тут условия по виртуальной таблице>
    ) as t
where
    t.npp = t.max_tov
   brainguard
 
190 - 30.07.21 - 00:55
(188) Я хочу чтобы из исходных данных:

01.02.1999 ООО Лихие девяностые Свистелка 10 руб.
01.02.2021 ООО Одуванчик Свистелка 105 руб.
01.03.2021 ООО Ромашка Свистелка 106 руб.
01.03.2021 ООО Василек Свистелка 107 руб.

В срез последних не попадали данные из прошлого века
   Said_We
 
191 - 30.07.21 - 00:58
(190) В (186) и (187) есть все ответы и такой вариант тоже есть.
   brainguard
 
192 - 30.07.21 - 01:01
(177) Срез последних не обязательно привязывать к уникальности. У самой 1С они по факту отвязаны друг от друга. Срез последних - это ПОСЛЕДНИЕ записи. Например, для набора данных:

01.02.1999 ООО Лихие девяностые Свистелка 10 руб.
01.02.2021 ООО Одуванчик Свистелка 105 руб.
01.03.2021 ООО Ромашка Свистелка 106 руб.
01.03.2021 ООО Василек Свистелка 107 руб.

Срез последних по номенклатуре это:

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

а не:

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

как делает 1С сейчас
   Aleksandr N
 
193 - 30.07.21 - 01:07
Думаю, что нужно прекратить кормить тролля и закрыть ветку КЁМ. И даже если это не тролль, то закрыть её за непроходимую тупость топикстартера. Простите за мое скромное мнение, если что не так.
   Said_We
 
194 - 30.07.21 - 01:08
(192) Напишите в 1С, что СрезПоследних() не достаточно и есть острая необходимость в дополнительной конструкции СрезПослденихСовсемПоследних().
Как видите по (186) и (187) эти варианты проще в реализации, чем аналог типового среза в (189).

Дело за малым - определиться с кусочком "order by d,cena desc". DESC или не DESC использовать и там по мелочи.
   Aleksandr N
 
195 - 30.07.21 - 01:09
(194) хе хе, да :-)
   mistеr
 
196 - 30.07.21 - 01:10
(185) И я повторюсь, реализовать CTE в файловом движке не так уж сложно. Потому, что сам движок намного проще "взрослых" СУБД. В крайнем случае можно реализовать через временные таблицы.

В SQLite давно есть и CTE, и оконные функции, и много чего еще. А его пилит практически один человек.
   Said_We
 
197 - 30.07.21 - 01:12
(193) За 8 лет всего 1054 сообщения и всего три темы и тут не выдержал :-)
   Сергиус
 
198 - 30.07.21 - 01:12
(192)Ты т.е. ты хочешь, чтобы в 1с был ИИ, который был определял, какой именно срез нужен тебе в данном случае?) В рамках указанной структуры регистра, всё выводит как надо. Дальше уже можно своими силами его обработать как нужно(например взять максимум по периоду)
   Said_We
 
199 - 30.07.21 - 01:13
Скоро абсолютные читатели начнут писать :-)
   Aleksandr N
 
200 - 30.07.21 - 01:18
(197) Да, иногда могу себя не сдерживать.
  1  2  3  4  5  6  7   

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