|
Группировка в запросе по строке без последних 4 символов |
☑ |
0
Буковка
13.06.23
✎
11:32
|
Добрый день!
Нужно получить дубли документов (дублями считаются документы, у которых совпадает шифр(строка, 35) без последних 4 символов).
Вот так не работает, ошибка - Недопустимое поле для группировки:
ВЫБРАТЬ
КОЛИЧЕСТВО(РеестрЗаданийОтделаПроектирования.Ссылка) КАК КоличествоДублей,
Лев(РеестрЗаданийОтделаПроектирования.ШифрДокумента,длинастроки(РеестрЗаданийОтделаПроектирования.ШифрДокумента)-4) как ШифрДокументаБезВерсии
ИЗ
Документ.РеестрЗаданийОтделаПроектирования КАК РеестрЗаданийОтделаПроектирования
ГДЕ
РеестрЗаданийОтделаПроектирования.Актуальность <> 1
И НЕ РеестрЗаданийОтделаПроектирования.ПометкаУдаления
СГРУППИРОВАТЬ ПО
Лев(РеестрЗаданийОтделаПроектирования.ШифрДокумента,длинастроки(РеестрЗаданийОтделаПроектирования.ШифрДокумента)-4)
ИМЕЮЩИЕ КОЛИЧЕСТВО(РеестрЗаданийОтделаПроектирования.Ссылка) > 1
|
|
1
ViSo76
13.06.23
✎
11:37
|
Лев нет в запросе. Если шифр документа всегда имеет одну длину, тогда делай сокращение длины через выразить(... Как строка(10) ) - 10 замени на нужную длину строки. Построить запрос с разными длинами строк не получится.
|
|
2
DJ Anthon
13.06.23
✎
11:38
|
а разве подстрока не работает?
|
|
3
РусКомп
13.06.23
✎
11:39
|
(1) есть подстрока - тот же самый лев если с первого символа.
|
|
4
Буковка
13.06.23
✎
11:42
|
(1) спасибо! Сделала через выразить, всё заработало
(2), (3) так тоже работает, спасибо!!!
|
|
5
ViSo76
13.06.23
✎
11:42
|
(3) Есть, но я про строку с переменной длиной в конце строки имею ввиду и тут явно у него берется вся строка от начала. По этому подстрока не нужна, так как приведение работает сильно быстрее
|
|
6
Гипервизор
13.06.23
✎
11:57
|
(1) В 8.3.20 уже есть и Лев() и многое другое.
|
|
7
ViSo76
13.06.23
✎
12:05
|
(6) Лучше бы что бы 1с вместо лев, которое нафиг не нужна в запросе сделали бы функцию АБС, а то приходится через Макс выкручиваться...
|
|
8
Гипервизор
13.06.23
✎
12:45
|
(7) В СКД есть КлассификацияABC().
|
|
9
ViSo76
13.06.23
✎
12:52
|
(8) Зачем скд, в коде иногда нужно. Приходится делать пОтброситьЗнак = Макс( пЧисло, -пЧисло );
|
|
10
ViSo76
13.06.23
✎
12:52
|
(9) Вместо того что бы бит знака погасить средствами 1С.
|
|
11
Гипервизор
13.06.23
✎
13:04
|
(10) А, вы про модуль числа, я неправильно понял. Неужели так часто используете? Тогда имеет смысл шаблон сделать. Или вы про эстетическую сторону и экономию символов?
Напишите пожелание в 1С, вон в Телеграме регулярно собирают всякие хотелки.
|
|
12
ViSo76
13.06.23
✎
13:08
|
(11) Да не часто, но если передирать BASIC, то уж полностью, чего стесняться.
|
|
13
ViSo76
13.06.23
✎
13:16
|
(11) Да и вообще пора делать 1С v9 с ООП как у BASIC с наследованием и переопределением, а то сама концепция расширений это такое извращение...
Я считаю что сложность конфигураций уже превысила плюсы линейного кода.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший