Имя: Пароль:
1C
1C 7.7
v7: Сортировка Таблицы Значений
0 tmpnikl
 
04.02.13
08:24
При Сортировке Таблицы Значений создаётся индексный файл или переформировыватся вся таблица...
Т.е. когда ставить команду Сортировать перед ВыбратьСтроки

ТабЗнач.Сортировать("ДатаДок+");
ТабЗнач.ВыбратьСтроки();

или после

ТабЗнач.Сортировать("ДатаДок+");
ТабЗнач.ВыбратьСтроки();
1 kupec
 
04.02.13
08:26
а в чем разница?
2 ЧеловекДуши
 
04.02.13
08:27
(0) Два примера, полная лажа.... и одно и тоже если присмотришься :)

На самом деле команда "ВыбратьСтроки" бесполезная и долго играющая на больших массивах информации.

Делай так:

ТабЗнач.Сортировать("ДатаДок+");

шш1 = 1;
Пока шш1 <= ТабЗнач.КоличествоСтрок() Цикл
  ТабЗнач.ПолучитьСтрокуПоНомеру(шш1);

//Тут ты колдуешь с кодом и условиями отбора и т.д....

шш1 = шш1 + 1;
КонецЦикла;
3 tmpnikl
 
04.02.13
08:32
спасибо, спасибо
4 tmpnikl
 
04.02.13
08:51
не могу понять почему не сортируется.., может надо как-то указывать формат даты...
5 tmpnikl
 
04.02.13
08:55
18.01.13
05.08.10
12.01.11
21.08.12
11.03.11
Вот такая сортировка по дате, с -, с + наоборот... В чём причина?
6 Мимохожий Однако
 
04.02.13
08:57
Иногда бывает смешно и обидно. Например, опечатка в коде. Очень хорошо помогает отладчик и наморщенный мозг.
7 Мимохожий Однако
 
04.02.13
08:57
Сделай представление даты гг.мм.дд
8 VladZ
 
04.02.13
08:58
(5) Тип в ячейках одинаковый? У всех тип "дата"?
9 tmpnikl
 
04.02.13
09:00
ТабЗнач.НоваяКолонка("ДатаДок",,15,,"Дата",15);
А как сделать представление даты..
10 Мимохожий Однако
 
04.02.13
09:05
Если  у тебя в таблице значений есть объект документ, то проще сортировать по нему. А дату можно преобразовать в число, например.
11 tmpnikl
 
04.02.13
09:08
у меня на сотрудника выбираются все по нему проходящие документы в таблицу значений, потом эту таблицу надо отсортировать по дате...
12 KRV
 
04.02.13
09:08
(10) а если доки на одной дате сидят? ))) вермишель в колбасе получишь? ))
13 tmpnikl
 
04.02.13
09:11
есть ещё и время, но это частности, в данном случае нет  документов на одну и ту же дату... главное принцип..., если проводить аналогию, то есть индекчация таблиц с ключом по системной дате, а тут я не знаю..
14 Мимохожий Однако
 
04.02.13
09:13
(12)Не кипяшуй. Ты еще не знаешь, как формировалась эта таблица.)) Автор сам выберет вариант,если поймёт (найдет) причину.
15 KRV
 
04.02.13
09:14
(13) ну напиши.. будут кривоплясные поделки в Манином стиле.. ))
16 dk
 
04.02.13
09:16
задай типизацию в колонке ТЗ
ТабЗнач.НоваяКолонка("ДатаДок","Дата",,,"Дата",15);
----
нафига длина 15? в
ТабЗнач.НоваяКолонка("ДатаДок",, -> 15 <- ,,"Дата",15);
17 tmpnikl
 
04.02.13
09:18
Я не знаю, нафига 15, я прсто скопировал код...
18 KRV
 
04.02.13
09:19
(14) ай, батенька, перестаньте.. )) я уже давно не адинассник, я другими усилиями на копченую колбасу зарабатываю.. )))
19 Мимохожий Однако
 
04.02.13
09:22
(18)Теперь пример про колбасу с вермишелью понятнее.
(16) Попробуй другую длину для даты. Например 10. А в параметрах базы выставь отображение даты с 4 знаками для года.
20 dk
 
04.02.13
09:24
(19) да тут толпа уже упоротых )
нафига для типа "Дата" указывать длину вообще?
Никогда не указываю
21 tmpnikl
 
04.02.13
09:29
Написал
ТабЗнач.НоваяКолонка("ДатаДок",,,,"Дата",);
результат тот же..
22 Mikeware
 
04.02.13
09:29
(21) ты совсем тупой, или полностью?
23 Мимохожий Однако
 
04.02.13
09:30
Покажи как заполняешь это поле при формировании таблицы. В понедельник тяжело телепатировать.
24 Mikeware
 
04.02.13
09:32
(23) да _до_ заполнения - ему надо по читать СП на предмет аргументов метода НоваяКолонка()
25 tmpnikl
 
04.02.13
09:36
я предпологал, если в таблице поле тип Дата, то она выдаст ошибку при вводе символьного типа..., Однако же чудно всё в 1С

ТабЗнач.НоваяКолонка("ДатаДок",,,,"Дата",);
Стр5 = СокрЛП(Док.ДатаДок);
ТабЗнач.ДатаДок = Стр5;
26 dk
 
04.02.13
09:38
(25) совсем упоротый )))
тип задается 2-м параметром
читай СП уже
27 Mikeware
 
04.02.13
09:38
(25) у тебя колонка не типизирована.
зы. поменяй вторую букву в нике на "u"
28 tmpnikl
 
04.02.13
09:49
Всё с типом разобрались, спасибо всем кто помог..., конечно остались вопросы.., типа как проверить тип переменной (?type("перем")), как преобразовывать в другой тип... но что-то на сегодня комплементами от Mikeware сыт.. :-)
29 1Сергей
 
04.02.13
09:52
(28) ТипЗначения(), ТипЗначенияСтр(), Дата(), Число(), Строка()
30 Mikeware
 
04.02.13
09:56
(28) читай СП, и люди к тебе потянутся...©
там вполне достаточно информации для первоначального освоения.
31 VladZ
 
04.02.13
09:58
Я сегодня добрый...
ТабЗнач.НоваяКолонка("ДатаДок","Дата");
32 VladZ
 
04.02.13
10:00
"Однако же чудно всё в 1С" - 1С позволяет работать с разными типами. Твоя ошибка - обычная ошибка студента, обученного на базе Паскаля, где все жестко типизировано.
33 Mikeware
 
04.02.13
10:02
(32) да знаешь, паскаль ненавижу, однако типизировать пытаюсь...
его ошибка в другом - документацию упорно не читает... Ну, может, еще в кислоте немного...
34 tmpnikl
 
04.02.13
10:12
Mikeware -переводится, как человек без ошибок, или как солнце программирования в 1С всех времён и народов.. покажи свой код месяц после изучения 1С
35 Mikeware
 
04.02.13
10:20
(34) ну, через 2 недели после того, как обнаружил "конфигуратор" -  был написан экспорт из БЭСТа в ТиС...
может, и некрасиво - но работал. СП для начального освоения вполне хватило. И, заметь, форумов тогда почти и не было. И интернет был на диалапе с повремекой :-)))
дело не в "гениальности" - дело в том, что у тебя есть документация, а ты ее не читаешь.
36 tmpnikl
 
04.02.13
10:31
Дело в том, что есть обучение по документации. а есть проблемно -ориентированное обучение..., если ты приходишь в библиотеку, ты из множества книг написанных по одной и той же тематике, выбираешь автора, который тебе в этой теме более понятен, мне более понятно обучение в такой форме, тебе в другй ну нравится тебе всех кто не понимает тебя называть тупыми, да и флаг тебе в руки.. :-)
37 VladZ
 
04.02.13
10:59
(36) Ты это... Не бузи... Слушай, что старшие говорят...
38 1Сергей
 
04.02.13
11:02
Чо накинулись? нормально чел разговаривает. А вот некоторые лишены скромности и ЧСВ потешить не прочь :)
39 ЧеловекДуши
 
04.02.13
11:13
(36)Тут ты неправ. Программист по своей сути бытья бесконечно учится. В универе или техникуме, учат только основам.
А дальше ты на своих мозгах, интеллекте, выезжаешь на следующий уровень программирования :)
...
И давай заканчивай с лозунгом - "Любая кухарка может управлять Страной". В программировании это не работает :)
40 Chai Nic
 
04.02.13
11:15
(2) "На самом деле команда "ВыбратьСтроки" бесполезная и долго играющая на больших массивах информации."
Не согласен, по моим тестам, на таблицах в миллион строк  ВыбратьСтроки работает быстрее, чем цикл по номеру строки.
41 tmpnikl
 
04.02.13
11:23
ЧеловекДуши> Не согласен с тобой, и придерживаюсь мнения что каждая кухарка может управлять, главное её желание, а вот не каждый управленец может кухарить... моим начаьником был тракторист, окночил ВПШ, очень грамотные были кадры,  и тогда была ротация из глубин а не по наследству, а то что не каждая кухарка, так это ьлиже к Евгенике, давать мерить диаметр черепа, вес мозга..., ну и потом давать разрешение на изучение программирования...
42 oslokot
 
04.02.13
11:30
(40) а если перед циклом один раз определить переменную
ВсегоСтрок = ТабЗнач.КоличествоСтрок()
и использовать это выражение в конечном счетчике цикла? не быстрее?
43 Chai Nic
 
04.02.13
11:32
(42) Не влияет.. выражение "По" вычисляется похоже всего один раз перед началом цикла, и далее запоминается.
44 Mikeware
 
04.02.13
11:33
(43) нет, вычисляется каждый раз
45 Mikeware
 
04.02.13
11:34
"проблемно-ориентированное обучение"...
какой только куйни не напридумывают - лишь бы доки не читать... Если тебе "понятно обучение в такой форме" - чего ж ты задаещь вопросы-то?
(38) да никто не накинулся. ему говорят - нажми ф1, прочитай - будет быстрее, заодно еще что-нибудь прочитаешь - знания и отложатся...
46 Chai Nic
 
04.02.13
11:35
(44) Нет. Попробуй сам.

   МаксИтераций=10;
   Для Сч=1 по МаксИтераций Цикл
       Сообщить(Сч);
       МаксИтераций=4;
   КонецЦикла;