|
Как заставить сортироваться типы в запросе по имени? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
10.01.16
✎
19:28
|
Есть 2 базы 1С с одинаковыми конфигурациями и данными. Есть запрос "ВЫБРАТЬ РАЗЛИЧНЫЕ Т.Регистратор ИЗ <Регистр> КАК Т УПОРЯДОЧИТЬ ПО Т.Регистратор". Он выдает документы в разном порядке, т.к. типы запросе сортируются по внутреннему номеру, который в разных базах независимо генерируется. Как заставить сортироваться типы в одинаковом порядке, не меняя конфигурацию БД?
|
|||
1
Ник второй
10.01.16
✎
19:30
|
Сортируй по дате
|
|||
2
Ник второй
10.01.16
✎
19:30
|
(1) + по номеру..
|
|||
3
TormozIT
гуру
10.01.16
✎
19:32
|
Обращение через точку к любым полям даст огромное количество неявных левых соединений. Этого хотелось бы избежать.
|
|||
4
RomanYS
10.01.16
✎
19:34
|
ВЫБРАТЬ
Хозрасчетный.Регистратор, ТИПЗНАЧЕНИЯ(Хозрасчетный.Регистратор) КАК Поле1 ИЗ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный УПОРЯДОЧИТЬ ПО Поле1? |
|||
5
Ник второй
10.01.16
✎
19:34
|
(3) Так тебе сортировать или через точки не делать соединения
|
|||
6
RomanYS
10.01.16
✎
19:35
|
(3)
"УПОРЯДОЧИТЬ ПО Регистратор АВТОУПОРЯДОЧИВАНИЕ" тоже соединения создает? |
|||
7
ДенисЧ
10.01.16
✎
19:35
|
УПОРЯДОЧИТЬ ПО ТипЗначения(Т.Регистратор) ?
|
|||
8
TormozIT
гуру
10.01.16
✎
19:38
|
Выражение ТипЗначения(Т.Регистратор) внутри платформы превращается в тот же номер типа и дает тот же порядок.
АВТОУПОРЯДОЧИВАНИЕ конечно тоже делает неявные соединения. |
|||
9
Ник второй
10.01.16
✎
19:39
|
(8) Ну сделай ты через Объединить запросы и сортируй как нравится
|
|||
10
Ник второй
10.01.16
✎
19:40
|
(9) + Либо грузи в ТЗ и ТЗ уже сортируй по представлению
|
|||
11
H A D G E H O G s
10.01.16
✎
19:43
|
автор как будто специально не видит годных ответов.
|
|||
12
RomanYS
10.01.16
✎
19:44
|
(11) Похоже ждёт чуда)
|
|||
13
TormozIT
гуру
10.01.16
✎
19:44
|
Самый годный ответ пока мой -
ЛЕВОЕ СОЕДИНЕНИЕ с собственной таблицей типов (ТИП, ИМЯ) |
|||
14
TormozIT
гуру
10.01.16
✎
19:45
|
(13) Но таблицу типов придется генерировать во встроенном языке. В моем случае это приемлемо.
|
|||
15
RomanYS
10.01.16
✎
19:46
|
(13) чтобы соединить по типу его придется получить, а "типЗначения" тебе не нравится.
|
|||
16
TormozIT
гуру
10.01.16
✎
19:47
|
(15) Где я писал, что его нельзя использовать? Я лишь писал что сортировка по нему дает тот же порядок.
|
|||
17
RomanYS
10.01.16
✎
19:55
|
(16) ну тогда делай (13), непонятно каких ответов ещё ты ожидаешь
|
|||
18
TormozIT
гуру
10.01.16
✎
20:00
|
(17) Спасибо. Буду делать (13)
|
|||
19
TormozIT
гуру
11.01.16
✎
00:16
|
Пришлось писать довольно много кода для универсальной процедуры для компоновки данных. Сначала выполняется генерация текста запроса создания временной таблицы с колонками Тип, ИмяТипа. Затем основная таблица соединяется с ней для каждого поля порядка, имеющего более одного ссылочного типа. В порядке перед каждым таким полем вставляется соответствующее поле ИмяТипа из соединенной таблицы.
|
|||
20
RomanYS
11.01.16
✎
00:32
|
(19) много?
Шаблон = "ВЫБРАТЬ | ТИП(Документ.Документ1) КАК Тип, | ""Документ1"" КАК Имя |ПОМЕСТИТЬ ВТ |ИЗ | Документ.Документ1 КАК Документ1"; ТекстЗапроса = ""; Для каждого МД Из Метаданные.Документы Цикл ТекстЗапроса = ТекстЗапроса + СтрЗаменить(Шаблон, "Документ1", МД.Имя); Шаблон = "Объединить ВСЕ "+СтрЗаменить(Шаблон, "ПОМЕСТИТЬ ВТ", ""); КонецЦикла; |
|||
21
RomanYS
11.01.16
✎
00:33
|
*(20) строку
Шаблон = "Объединить ВСЕ "+СтрЗаменить(Шаблон, "ПОМЕСТИТЬ ВТ", ""); надо выполнять только один раз), но кода не станет сильно больше |
|||
22
TormozIT
гуру
11.01.16
✎
01:45
|
(20) Спасибо. А остальную реализацию алгоритма сделаешь?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |