Имя: Пароль:
1C
1С v8
Сортировка записей при проведении документа
, , ,
0 somn74
 
21.11.19
20:50
Запрос.Текст =  "ВЫБРАТЬ
        |   ПрочиеРасходыРасходы.НомерСтроки КАК НомерСтроки,
        |   ПрочиеРасходыРасходы.Период КАК Период
        |   ПрочиеРасходыРасходы.Контрагент КАК Контрагент,
        |   ПрочиеРасходыРасходы.СтатьяРасходов КАК СтатьяРасходов,
        |   ПрочиеРасходыРасходы.Сумма КАК Сумма
        |ИЗ
        |   Документ.ПрочиеРасходы.Расходы КАК ПрочиеРасходыРасходы
        |ГДЕ
        |   Документ.ПрочиеРасходы.Ссылка КАК &Ссылка
        |
        |УПОРЯДОЧИТЬ ПО
        |   НомерСтроки";
Таблица = Запрос.Выполнить.Выгрузить();

Движения = Движения.ПрочиеРасходы;
Движения.Загрузить(Таблица);
Движения.Записать();

Выборка данных для записи движений отсортирована по НомеруСтроки. Если обойти таблицу в отладчике, всё Ок. Сами движения записываются в непонятном порядке. Частично вроде бы сортируются по номеру строки, частично - по периоду. Почему так происходит?
1 Bober
 
21.11.19
20:57
платформа оптимизирует запись в регистры
2 somn74
 
21.11.19
21:00
(1) это как-то можно обойти?
3 H A D G E H O G s
 
21.11.19
21:02
(0) Возможно, у вас проблемы
- со статистикой
- с кластерным индексом
- Postgree
4 somn74
 
21.11.19
21:08
(3) короче это только какой-то серверный платформенный глюк?
5 Fram
 
21.11.19
21:22
что то я в принципе не пойму в чем проблема? в каком именно месте этот непонятный порядок вас не устраивает?
6 somn74
 
21.11.19
21:26
(5)  Порядок записей. Возьмем данные движений регистра. Первая, вторя, пятая, десятая запись. Запись с номером строки 1 должна быть первой, с номером строки 2 второй и т.д. У меня же, например, 1 - 1 запись, 2 - 2 запись, 4 - 3 запись, 5 - 4 запись, 3 - 5 запись.
7 ДенисЧ
 
21.11.19
21:31
(6) Логика программы не должна зависеть от физического порядка строк в одной записи. Ищи более другие способы упорядочивания.
8 somn74
 
21.11.19
21:42
(7) Какой, например, в данном случае может быть другой способ упорядочить записи?
9 Злопчинский
 
21.11.19
21:59
(8) зачем вам в регистре (охеренная неупорядоченная совокупность однородных записей) строгий порядок по номеру строки в документе?
10 H A D G E H O G s
 
21.11.19
22:04
(9) Регистр - охеренно упорядоченная совокупность записей.
11 Злопчинский
 
21.11.19
22:06
(10) упорядоченных по чему?
12 RomanYS
 
21.11.19
22:08
(11) по номеру строки, это обязательное поле
13 RomanYS
 
21.11.19
22:09
(6) покажи на скрине чтобы номер строки был виден в регистре
14 H A D G E H O G s
 
21.11.19
22:11
(11) По периоду, регистратору и номеру строки, это поля кластерного индекса и именно в такой последовательности и выбираются строки в нормальной ситуации.
Если это не так - то проблема со статистикой (вместо чтения кластерного индекса читается какой-нибудь некластерный), либо с самим индексом, либо это какая-то НЕХ типа Постгрея.
https://its.1c.ru/db/metod8dev#content:1590:hdoc
15 Злопчинский
 
21.11.19
22:38
(14) понял, спсб.
а зачем вот привязка к номеру строки в таком индексе?
для отбора движений по строке документа?
16 H A D G E H O G s
 
21.11.19
22:43
(15) Ну печатные формы, к примеру ТОРГ12, печатается в том же порядке, что и в документе. Сортировать не надо, вернее, на всякий случай надо, как в случае автора, но если все норм, SQL не будет сортировать.
17 H A D G E H O G s
 
21.11.19
22:44
Ну и переоткрытие форм, связь по номеру строки с другими таблицами, и.т.д.
18 Злопчинский
 
21.11.19
22:46
(17) а что, на номер строки что-то/ктото ссылается? для связи? пересортировали док - и все...
?
19 H A D G E H O G s
 
21.11.19
22:50
(18) Ну иногда бывает. Так то обычно конечно фиксированный идентификатор
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс