|
Как искать в динамическом списке, если данные строк изменены программно? | ☑ | ||
---|---|---|---|---|
0
ssalikoff
21.05.24
✎
06:13
|
Здравствуйте!
Есть задача вывести в поле динамического списка конкатенированные значения строк из некой табличной части. Известно, что агрегатная функция СУММА языка запросов не умеет складывать строки. То есть в запросе динамического списка сделать такое не получится. Тогда я делаю это программно, в обработчике события «ПриПолученииДанныхНаСервере». Я получаю строки табличной части, складываю их как мне надо, и вывожу: Строки[Ключ].Данные.МоёПоле = КонкатенированнаяСтрока;
Всё работает как надо, за исключением поиска (его нет). Оно и понятно, поиск работает по данным из базы, а я данные меняю уже после их получения из базы. Но как тогда можно решить мою задачу? Посоветуйте что-нибудь, накидайте идей. |
|||
1
SleepyHead
21.05.24
✎
06:14
|
Ищи по колонкам, из которых сливаешь строку.
|
|||
2
ssalikoff
21.05.24
✎
07:26
|
(1) нет, так не пойдёт. Я хочу искать по уже объединённому значению.
|
|||
3
DJ Anthon
21.05.24
✎
07:39
|
(0) У агрегатной функции СУММА другие задачи. Вы пробовали просто сложить ваши строки в запросе динамического списка?
|
|||
4
ssalikoff
21.05.24
✎
07:44
|
(3) Что за вздор? Причём тут другие задачи? Просто 1С так не умеет. А вот MSSQL или MySQL c GROUP_CONCAT() умеет. Но вопрос не в этом. Я же написал, что в запросе динамического списка я не вижу способа соединить строки при группировке.
Я попросил предложить альтернативные варианты, если они вам известны. |
|||
5
Волшебник
21.05.24
✎
08:08
|
(4) Как Вам вообще могло прийти в голову складывать строки с помощью агрегатной функции СУММА??
|
|||
6
Ненавижу 1С
21.05.24
✎
08:09
|
(4) вы конкатенацию с суммированием не путайте. Конкатенация, например, не коммутативна и порой важен ее порядок
|
|||
7
DJ Anthon
21.05.24
✎
08:12
|
(4) моя 1С умеет
|
|||
8
ssalikoff
21.05.24
✎
08:19
|
(5)(6)(7) Да с чего вы все взяли, что я пытаюсь 1С-ной функцией СУММА конкатенировать строки? Я не пытаюсь это сделать и знаю, как эта функция работает. Я просто для примера её назвал, и выразил сожаление, что набор функций в 1С очень скудный: минимум, максимум да количество. Не то что в других СУБД, где разных функций десятки.
И вообще, вопрос не об этом стоит, а о том, как наиболее просто и красиво можно было бы решить поставленную задачу |
|||
9
DJ Anthon
21.05.24
✎
08:22
|
вот вам функция:
+ |
|||
10
Ненавижу 1С
21.05.24
✎
08:25
|
(8) "Да с чего вы все взяли, что я пытаюсь 1С-ной функцией СУММА конкатенировать строки?" - потому что с этого ты начал. И 1 С не СУБД, а прикладное решение, использующее разные СУБД
|
|||
11
Ненавижу 1С
21.05.24
✎
08:27
|
(0) варианты:
1. использовать свой поиск 2. использовать таблицу значений |
|||
12
ssalikoff
21.05.24
✎
08:30
|
(11) тема варианта 2 не раскрыта
|
|||
13
Web00001
21.05.24
✎
08:34
|
(4)> Что за вздор? Причём тут другие задачи?
А причем тут сумма? Че горит то так? Эмоционально как-то реагируешь. Я не считаю, что 1С это СУБД. Хотя и использует внутренний формат БД в файловом варианте. (8)Невозможно искать по тому, чего нет. Или при записи объекта строки которого ты складываешь куда то записывать полученное значение(например в этот самый объект или в регистр рядом). |
|||
14
Ненавижу 1С
21.05.24
✎
08:33
|
(12) запросом выгружаешь данные в таблицу значений, отображаемую на форме. Обновляешь данные по кнопке, при открытии и/или по времени
|
|||
15
Web00001
21.05.24
✎
08:34
|
(9)Дин поиск будет работать по этому полю?
|
|||
16
ssalikoff
21.05.24
✎
08:35
|
(14) Понял. То есть отказ от динамического списка. Не вариант.
|
|||
17
ssalikoff
21.05.24
✎
08:38
|
(13) Надеюсь я никого не оскорбил своей "эмоциональностью". Но ведь никому не нравится, когда отвечают не по существу вопроса, и даже не поняв сам вопрос.
А предложенный вами вариант мне приходил в голову, но он плох по двум причинам: во-первых, это избыточность информации, по сути её дублирование, и, во-вторых, необходимость обеспечивать её согласованность, то есть при изменении строк табличной части переписывать значение реквизита, в котором будет хранится вычисленное конкатенированное значение. |
|||
18
Волшебник
21.05.24
✎
08:39
|
(16) Опять Вы какую-то чушь несёте. Есть же отдельная функция для соединения строк в запросах, только она работает начиная с определённого релиза.
|
|||
21
ssalikoff
21.05.24
✎
08:45
|
(20) Нисколько
(18) Было бы здорово побольше узнать о «отдельная функция для соединения строк в запросах, только она работает начиная с определённого релиза» |
|||
22
Web00001
21.05.24
✎
08:51
|
(17)>Но ведь никому не нравится, когда отвечают не по существу вопроса
Специфика этого форума. Часто отвечают не на тот вопрос который задали, а на тот на который знают ответ |
|||
23
Ненавижу 1С
21.05.24
✎
08:51
|
ну и третий вариант - хранить желаемые данные в базе, заполняя их по событиям записи
|
|||
24
ssalikoff
21.05.24
✎
08:53
|
(23) Да, спасибо. Этот вариант уже рассматривался в (17)
|
|||
25
d4rkmesa
21.05.24
✎
08:59
|
(0) Если у вас есть необходимость в конкатенации, то значит вы что-то неправильно делаете. Посмотрите как сделано в типовых конфигурациях (ЗУП - сотрудники текстом, ДО - статусы текстом). Как правило, это отдельный регистр сведений, рассчитываемый фоновыми заданиями, запускаемыми по регламенту или событию.
Да, СтрСоединить в запросы пока не завезли, но я бы в любом случае не торопился использовать новые функции, т.к. там много нюансов. Пару лет назад, как начал их использовать, сразу же столкнулся с ошибкой парсинга такого запроса тогдашней платформой. Хотя да, уже огромный плюс само их наличие и возможность иногда их использовать. |
|||
26
d4rkmesa
21.05.24
✎
09:07
|
(22) Есть еще кое-что, видимо, отдельные пользователи думают, что форум - это как чат-бот для помощи джуниорам. Потом, когда действительно кому-то что-то нужно, эти пустые темы бесполезны. Ну т.е. хорошим тоном было бы и выложить решение, не важно, сам справился или нет. На infostart в этом плане чуть лучше, там ради "плюсиков" есть мотивация выложить решение (хотя, бывает и что это решение недостаточно оптимально, несмотря на 20 плюсиков).
Как бы то ни было, гуглинг Мисты мне до сих пор иногда помогает, как и ИС. |
|||
27
ssalikoff
21.05.24
✎
09:24
|
Что же, судя по ответам, как я и предполагал, нет никакого альтернативного красивого решения. Только вычисление значения заранее и хранение в каком-то реквизите.
Спасибо всем советчикам! |
|||
28
MaximSh
21.05.24
✎
09:25
|
(27) Работает поиск
|
|||
29
MaximSh
21.05.24
✎
09:25
|
(27) пожалуйста
|
|||
30
MaximSh
21.05.24
✎
09:27
|
ядовитый какой топикстартер
|
|||
31
Web00001
21.05.24
✎
09:28
|
(17)Не видно всей задачи в данный момент, но избыточность в этом случае имеет под собой основание она увеличивает производительность при выводе и поиске. В такого рода случаях избыточность составляет 0.1% или меньше от объекта.
>необходимость обеспечивать её согласованность Если есть объект, то он при записи все равно записывается в базу целиком. Тут нет место где можно сэкономить. |
|||
32
Zapal
21.05.24
✎
09:41
|
(28) твой ответ неправильный
надо такой чтобы автор оказался умным а не тупым |
|||
33
Ненавижу 1С
21.05.24
✎
09:45
|
(28) у вас конкатенация похоже через запрос сделана, у автора через ПриПолученииДанныхНаСервере
|
|||
34
MaximSh
21.05.24
✎
09:48
|
(33) так и надо же в динамическом списке.
В теории можно всё, только работать будет медленно. Запрос по ТЧ Товары
|
|||
35
ssalikoff
21.05.24
✎
09:49
|
(28) А потом пишите, что, мол автор ядовитый.
А по факту, вопрос не понят вообще, и показана ерунда. Конкатенация строк в группировке нужна, а не сложение двух строк плюсиком. |
|||
36
ssalikoff
21.05.24
✎
09:50
|
(34) И в никакой теории 1С так делать не умеет. Человек в (25) верно заметил, что СтрСоединить в запросы пока не завезли
|
|||
37
Zapal
21.05.24
✎
09:50
|
(33) он бы сделал через запрос, но GROUP_CONCAT() нет же в этой вашей глупой 1С, а ответы типа (9) до него не доходят
|
|||
38
Волшебник
21.05.24
✎
09:52
|
(36) Используйте СКД, там есть СОЕДИНИТЬСТРОКИ (JOINSTRINGS)
https://1s83.info/koding/konkatenatsiya-strok-v-itogah-skd-1s.html |
|||
39
lEvGl
21.05.24
✎
10:10
|
1с - субд? о как, завернуто
(27) приходите еще |
|||
41
ssalikoff
21.05.24
✎
10:14
|
(38) Я думал, что функции СКД можно только в отчётах использовать. А для динамических списков это не сработает. Ведь в настройках динамического списка в конфигураторе мы ничего подобного провернуть не сможем.
|
|||
42
Волшебник
21.05.24
✎
10:18
|
(41) Сделайте отчёт. Пользователь не заметит разницы. Делов-то...
|
|||
44
ssalikoff
21.05.24
✎
10:20
|
(42) Спасибо! Я бы так и сделал, если бы поставленная задача позволяла такое решение
|
|||
45
Волшебник
21.05.24
✎
10:21
|
(44) Вы нас тут не ограничивайте своими условиями задачи. Это мы Вам ставим задачи, а не Вы нам.
|
|||
46
lEvGl
21.05.24
✎
10:26
|
(44) вы джун и вам ставят технические задачи? тогда разберитесь с этой до конца, что хочет заказчик
|
|||
47
GANR
21.05.24
✎
10:35
|
(0) Внешний источник данных с прямым запросом к БД 1С-ки внутри пробовали?
|
|||
48
Волшебник
21.05.24
✎
10:36
|
(47) Это плохая практика
|
|||
49
GANR
21.05.24
✎
10:47
|
(48) Итого, какие варианты:
1. Предподготовленные данные. 2. Вычисляемые поля СКД. 3. Внешние источники данных. Думаю, 1 самый православный. 2 и 3, даже если взлетит, тяжеловато в прокручивающемся списке будет вычислять просто. |
|||
50
Волшебник
21.05.24
✎
10:50
|
(49) Ну так может полнотекстовый поиск прикрутить?
|
|||
51
GANR
21.05.24
✎
10:55
|
(50) Только не это🤦
|
|||
52
MaximSh
21.05.24
✎
11:22
|
(35) дин. список, конкатенация, агрегатные функции, поиск есть. Что не так то?
|
|||
53
Волшебник
21.05.24
✎
11:31
|
(52) У Вас неправильная 1С, в которой всё есть и всё работает
|
|||
54
BDA80
21.05.24
✎
11:43
|
(52) Ему групповая функция нужна в запросе, аналог СоединитьСтроки() в СКД. А у вас просто конкатенация строк
|
|||
55
ssalikoff
21.05.24
✎
11:43
|
(52) Вам же уже писали, что нет у вас никакой конкатенации строк в группировке. Ваша конкатенация — это сложение двух строк плюсиком, а речь идёт об агрегатной функции, такой, как "СоединитьСтроки" в СКД
|
|||
56
ssalikoff
21.05.24
✎
11:47
|
(47) Так я делать не буду, но спасибо за идею!
|
|||
57
MaximSh
21.05.24
✎
16:16
|
(55) для динамического списка считать запросом что-то сложнее чем цена*количество, означает положить сервер.
Запрос чужой, дописанныйВЫБРАТЬ РеализацияТоваровУслугТовары.НомерСтроки КАК НомерСтроки, РеализацияТоваровУслугТовары.Номенклатура.Наименование+";" КАК а, РеализацияТоваровУслугТовары.Сумма КАК Сумма, РеализацияТоваровУслугТовары.Ссылка КАК Ссылка ПОМЕСТИТЬ Дано ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 0 КАК ё ПОМЕСТИТЬ Р0 ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 2 * Р1.ё + Р0.ё КАК ё ПОМЕСТИТЬ Р10 ИЗ Р0 КАК Р1, Р0 КАК Р0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 4 * Р32.ё + Р10.ё КАК ё ПОМЕСТИТЬ Р3210 ИЗ Р10 КАК Р32, Р10 КАК Р10 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 16 * Р7654.ё + Р3210.ё КАК ё ПОМЕСТИТЬ Р76543210 ИЗ Р3210 КАК Р7654, Р3210 КАК Р3210 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 8 * Р76543210.ё + 2 * Р10.ё + Р0.ё + 1 КАК ё ПОМЕСТИТЬ РА9876543210 ИЗ Р76543210 КАК Р76543210, Р10 КАК Р10, Р0 КАК Р0 ГДЕ 8 * Р76543210.ё + 2 * Р10.ё + Р0.ё < &ШиринаКолонки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Дано.НомерСтроки КАК НомерСтроки, РА9876543210.ё КАК ё, ВЫБОР ПОДСТРОКА(Дано.а, РА9876543210.ё, 1) КОГДА " " ТОГДА "_" ИНАЧЕ ПОДСТРОКА(Дано.а, РА9876543210.ё, 1) КОНЕЦ КАК а, Дано.Ссылка КАК Ссылка ПОМЕСТИТЬ Буквы ИЗ Дано КАК Дано, РА9876543210 КАК РА9876543210 ГДЕ ПОДСТРОКА(Дано.а, РА9876543210.ё, 1) + "!" <> "!" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Буквы.НомерСтроки КАК НомерСтроки, МАКСИМУМ(Буквы.ё) КАК СтрДлина, Буквы.Ссылка КАК Ссылка ПОМЕСТИТЬ Длины ИЗ Буквы КАК Буквы СГРУППИРОВАТЬ ПО Буквы.НомерСтроки, Буквы.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Буквы.ё + СУММА(ЕСТЬNULL(Длины.СтрДлина, 0)) КАК ё, Буквы.а КАК а, Буквы.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб ИЗ Буквы КАК Буквы ЛЕВОЕ СОЕДИНЕНИЕ Длины КАК Длины ПО Буквы.НомерСтроки > Длины.НомерСтроки СГРУППИРОВАТЬ ПО Буквы.НомерСтроки, Буквы.ё, Буквы.а, Буквы.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг ИЗ Таб КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб2 ИЗ Шаг КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг2 ИЗ Таб2 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб3 ИЗ Шаг2 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг2 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг3 ИЗ Таб3 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб3 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб4 ИЗ Шаг3 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг3 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг4 ИЗ Таб4 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб4 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб5 ИЗ Шаг4 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг4 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг5 ИЗ Таб5 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб5 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб6 ИЗ Шаг5 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг5 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг6 ИЗ Таб6 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб6 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб7 ИЗ Шаг6 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг6 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг7 ИЗ Таб7 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб7 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб8 ИЗ Шаг7 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг7 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг8 ИЗ Таб8 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб8 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб9 ИЗ Шаг8 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг8 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг9 ИЗ Таб9 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб9 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб10 ИЗ Шаг9 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг9 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг10 ИЗ Таб10 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб10 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб11 ИЗ Шаг10 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг10 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.ё / 2 КАК ЧИСЛО(15, 0)) КАК е, Таб.ё КАК ё, Таб.а КАК а, Таб.Ссылка КАК Ссылка ПОМЕСТИТЬ Шаг11 ИЗ Таб11 КАК Таб ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Таб11 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Шаг.е КАК ё, МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА Шаг.а ИНАЧЕ "" КОНЕЦ) + МАКСИМУМ(ВЫБОР Шаг.е * 2 - Шаг.ё КОГДА 1 ТОГДА "" ИНАЧЕ Шаг.а КОНЕЦ) КАК а, Шаг.Ссылка КАК Ссылка ПОМЕСТИТЬ Таб12 ИЗ Шаг11 КАК Шаг СГРУППИРОВАТЬ ПО Шаг.е, Шаг.Ссылка ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ Шаг11 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(Таб.а КАК СТРОКА(600)) КАК а, Дано.Сумма КАК Сумма, Дано.Ссылка КАК Ссылка ПОМЕСТИТЬ ВременнаяТаблица ИЗ Дано КАК Дано ЛЕВОЕ СОЕДИНЕНИЕ Таб12 КАК Таб ПО Дано.Ссылка = Таб.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВременнаяТаблица.а КАК СуммаСтрок, СУММА(ВременнаяТаблица.Сумма) КАК Сумма, ВременнаяТаблица.Ссылка КАК Ссылка ИЗ ВременнаяТаблица КАК ВременнаяТаблица СГРУППИРОВАТЬ ПО ВременнаяТаблица.Ссылка, ВременнаяТаблица.а
|
|||
58
GANR
22.05.24
✎
11:29
|
(56) Как Вы в итоге решили выкрутиться?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |