|
Запустил такой код... | ☑ | ||
---|---|---|---|---|
0
Прохожий
04.10.12
✎
09:34
|
Процедура КнопкаСформироватьНажатие(Кнопка)
Рег = РегистрыСведений.ОбъектыДоступаДокументов.СоздатьНаборЗаписей(); Рег.Прочитать(); К = 0; Т = 0; Для Каждого Стр Из Рег Цикл К = К + 1; Если Стр.ДокументСсылка.Дата > Дата(2011,12,31) Тогда Продолжить; КонецЕсли; Т = Т + 1; КонецЦикла; Сообщить("всего " + К + ", удаляем " + Т); КонецПроцедуры ... Крутит уже минут 20 и до конца не дошел. Вопроса два: это плохо? и сколько тогда будет идти обрезка? |
|||
1
Alex S D
04.10.12
✎
09:36
|
и где там обрезка?
|
|||
2
ZanderZ
04.10.12
✎
09:37
|
запросом быстрее будет, тормозит скорее всего из-за тр.ДокументСсылка.Дата
|
|||
3
mikecool
04.10.12
✎
09:37
|
классный копрокод
|
|||
4
aleks-id
04.10.12
✎
09:39
|
рукалицо.жпг
|
|||
5
Balabass
04.10.12
✎
09:39
|
работает? нетрож!
|
|||
6
Balabass
04.10.12
✎
09:40
|
Ваз 2107 тоже машина.
И на спидометре у него 160 есть. Колеса 4 и сиденья 4. Че не так? |
|||
7
Lama12
04.10.12
✎
09:41
|
(0) А сколько этот регистр занимает места в % отношении от размера базы?
|
|||
8
Прохожий
04.10.12
✎
09:45
|
(7) Я думаю как у всех. регистр-то типовой, растет пропорционально росту числа документов.
|
|||
9
Heckfy
04.10.12
✎
09:46
|
(0) По сабжу:
1: Плохо 2: (1)+1 (3) Не, для классности не хватает: НаборЗаписей выгрузить в тз. Посчтитать количество записей ТЗ. Вывести индикатор выполнения. :) |
|||
10
Прохожий
04.10.12
✎
09:46
|
(3) Это прототип.
|
|||
11
Прохожий
04.10.12
✎
09:47
|
(9) До вечера посчитает.
|
|||
12
dmpl
04.10.12
✎
09:48
|
(10) Клющечника видно издалека :)
|
|||
13
Мимохожий Однако
04.10.12
✎
09:48
|
Вместо лисапеда можно взять типовую обработку документов из конфигурации.
|
|||
14
katc
04.10.12
✎
09:48
|
умение растянуть пятиминутную работу на 8 часов - главное качество программиста 1С
|
|||
15
H A D G E H O G s
04.10.12
✎
09:49
|
(0) Я тебя занес в амбарную книгу
|
|||
16
katc
04.10.12
✎
09:50
|
надо еще поставить галочку напротив фамилии и потом обвести кружочком ( т.е. открыжить и округлить)
|
|||
17
Прохожий
04.10.12
✎
09:51
|
(13) Для этого надо иметь ИТС. Или получить в подарок по почте. ибо инфостаровское бесплатное скачивание я уже сегодня нажимал. И больше оно не доится...
|
|||
18
Ткачев
04.10.12
✎
09:52
|
(14)Оплата то по времени, это как такси со счетчиком, там оплата за километраж.
|
|||
19
1Страх
04.10.12
✎
09:52
|
(6) врешь, сидений там 5
|
|||
20
hhhh
04.10.12
✎
09:52
|
(17) и поэтому ты решил зафигачить 20000 запросов в цикле?
|
|||
21
dmpl
04.10.12
✎
09:52
|
(19) Там 2 сиденья и 1 диван :)
|
|||
22
Heckfy
04.10.12
✎
09:53
|
(17) А что мешает перед
Рег = РегистрыСведений.ОбъектыДоступаДокументов.СоздатьНаборЗаписей(); Рег.Прочитать(); Установить отбор на нужную дату Потом Рег.Очистить(); РезЗаписать(); ЗЫ: Звиняйте, если где ошибся, 1С-ки по рукой нету СП глянуть. |
|||
23
Ткачев
04.10.12
✎
09:53
|
(19)2 сиденья и диван.
|
|||
24
Прохожий
04.10.12
✎
09:53
|
Надо проверить способности сервера. Я думаю из больше 20000. В том и пичалька.
|
|||
25
Прохожий
04.10.12
✎
09:53
|
(24) для (20)
|
|||
26
dmpl
04.10.12
✎
09:55
|
(24) Хинт: а почему бы не выбрать количество 1 запросом?
|
|||
27
katc
04.10.12
✎
09:58
|
он не умеет, разве не ясно с первого поста?
|
|||
28
Прохожий
04.10.12
✎
09:59
|
(27) Вопрос не в этом. Ты не понял сабжа с первого поста.
|
|||
29
katc
04.10.12
✎
09:59
|
кому нить сейчас надоест этот вброс и он напишет запрос. И потом еще полдня будут оптимизировать запрос. Рабочий день прошел. все счастливы.
|
|||
30
Прохожий
04.10.12
✎
09:59
|
Всё ещё молотит. Запрос у меня есть.
|
|||
31
katc
04.10.12
✎
10:01
|
(30) не допускаю оскорблений на эотм форуме, но ты все же .у.а. !
|
|||
32
Прохожий
04.10.12
✎
10:03
|
Троллинг в тематической ветке
|
|||
33
Cashtane
04.10.12
✎
10:03
|
Да ладно вы. Забавно же.
(0) Через точку ходить конечно не гуд. Но подобный код у меня, даже с переходом через точку, с 13000 записей регистра, пролазит не более чем за минуту. Ставь в цикле: ОбработкаПрерыванияПользователя(); и Сообщить(к); Хоть веселее будет. |
|||
34
hhhh
04.10.12
✎
10:03
|
(30) вот это Стр.ДокументСсылка.Дата - это у тебя отдельный запрос к базе. Ты его выполняешь 20000 раз. Ну в общем если в 1 час уложишься, значит у тебя супер-компьютеры там.
|
|||
35
rutony
04.10.12
✎
10:05
|
Как минимум нельзя обращаться к реквизиту через 2 точки это очень сильно про сживает скорость обращения. Зачем в каждом витке получать дату? Получи ее заранее.
Опять же на кой 2 счетчика, по моему у набора же есть метод количество. А самое главное такое проще сделать запросом или отбором... Даже та же выборка может отработать быстрее... |
|||
36
Прохожий
04.10.12
✎
10:05
|
(34) Не 20000. там значительно больше.
|
|||
37
UIV
04.10.12
✎
10:05
|
А что плохого в этом коде? Он же разовый. Нафига его оптимизировать?
|
|||
38
Прохожий
04.10.12
✎
10:05
|
(37) правильно. Надо мыслить зачем а не как.
|
|||
39
hhhh
04.10.12
✎
10:05
|
(33) там еще ДокументСсылка составного типа у него. То есть ещё каждый раз по 256 таблиц дергаются.
|
|||
40
ZanderZ
04.10.12
✎
10:06
|
(37) "А что плохого в этом коде?" - "Крутит уже минут 20 и до конца не дошел"
|
|||
41
hhhh
04.10.12
✎
10:07
|
(38) ну тогда наливай кофе и сиди, пей. У тебя ведь почасовая оплата. Торопиться некуда.
|
|||
42
Прохожий
04.10.12
✎
10:07
|
(41) Мне некуда.
|
|||
43
Прохожий
04.10.12
✎
10:08
|
Программа работает, сисадмин загрузку процессора отслеживает, потом подтвердит.
|
|||
44
Прохожий
04.10.12
✎
10:13
|
Посчитал в другой копии всего 1 174 302. Та ещё молотит...
Вопроса два: это плохо? и сколько тогда будет идти обрезка? |
|||
45
Прохожий
04.10.12
✎
10:13
|
Резать надо не меньше двух третей.
|
|||
46
rs_trade
04.10.12
✎
10:17
|
(43) два дибила. запустили копрокод и уставились на загрузку процессора. facepalm.jpg
|
|||
47
forforumandspam
04.10.12
✎
10:21
|
А зачем считать документы с датой '20111231000001' и до '20111231235959'?
|
|||
48
Прохожий
04.10.12
✎
10:22
|
(47) Их записи и надо порезать.
|
|||
49
Simbad
04.10.12
✎
10:22
|
Стоит определить набор удаляемцх записей запросом, а ты перебираеш весь регистр
|
|||
50
forforumandspam
04.10.12
✎
10:25
|
(48) Намекаю: в V8 есть секунды, минуты и час в типе ДАТА. Ты условие поставил Дата > Дата(2011,12,31), а не Дата > Дата(2011,12,31,23,59,59)
|
|||
51
5 Элемент
04.10.12
✎
10:25
|
>> Стр.ДокументСсылка.Дата
мда |
|||
52
Прохожий
04.10.12
✎
10:28
|
(49) Скорее запросом определить набор документов.
|
|||
53
regniws
04.10.12
✎
10:28
|
вроде ж не пятница
|
|||
54
Прохожий
04.10.12
✎
10:29
|
(53) Так мы ещё и не режем...
|
|||
55
forforumandspam
04.10.12
✎
10:30
|
(54) А кого в пятницу зарежут?
|
|||
56
Прохожий
04.10.12
✎
10:31
|
(55) см (44)
|
|||
57
dmpl
04.10.12
✎
10:33
|
(37) Это клюшечный код. Восьмерочник никогда такой код не напишет, потому что запросом выбрать быстрее и удобнее.
|
|||
58
Прохожий
04.10.12
✎
10:34
|
(57) Ты ничего не понимаешь в зарабатывании денег.
|
|||
59
UIV
04.10.12
✎
10:36
|
(40) Ну и что? Его запустить раз в год нужно.
(57) Восьмерочник не работавший на семерке это не настояший 1сник. Он зашорен, кругозор его узок, к работе на серьезных задачах требующих нешаблонного подхода он не способен. Неоднократно уже с этим сталкивался. |
|||
60
dmpl
04.10.12
✎
10:37
|
(58) Тогда ты забыл про
вставить в цикл. |
|||
61
Прохожий
04.10.12
✎
10:37
|
(60) промахнулся. исправлю в окончательном варианте.
|
|||
62
dmpl
04.10.12
✎
10:37
|
(59) Это не восьмерочник, а снеговик ;) Восьмерочник знает и то, и то.
|
|||
63
Прохожий
04.10.12
✎
10:38
|
(62) А шестерка?
|
|||
64
rutony
04.10.12
✎
10:38
|
(57) Я бы не сказал, многие даже если будут писать с такой логикой, попытаются все же максимально правильнее написать, так как это очень влияет на скорость, например:
Процедура КнопкаСформироватьНажатие(Кнопка) Рег = РегистрыСведений.ОбъектыДоступаДокументов.СоздатьНаборЗаписей(); Рег.Прочитать(); Т = 0; ДатаПо = КонецДня(Дата(2011,12,31)); Для Каждого Стр Из Рег Цикл Если Стр.ДокументСсылка.Дата > ДатаПо Тогда Продолжить; КонецЕсли; Т = Т + 1; КонецЦикла; Сообщить("всего " + Рег.Количество() + ", удаляем " + Т); КонецПроцедуры |
|||
65
rutony
04.10.12
✎
10:39
|
(61) Лол?)
|
|||
66
Прохожий
04.10.12
✎
10:43
|
(65) Тебе не угодишь.
|
|||
67
dmpl
04.10.12
✎
10:48
|
(63) Это гуру уже.
|
|||
68
Прохожий
04.10.12
✎
10:49
|
Вот и обед...
|
|||
69
dmpl
04.10.12
✎
10:51
|
(68) Надо было еще предусмотреть возможность паузы. А то ты обедаешь, а программа работает бесплатно.
|
|||
70
forforumandspam
04.10.12
✎
10:51
|
(69) :)
|
|||
71
UIV
04.10.12
✎
10:53
|
(69) Спасибо за идею! Обязательно буду применять ее в своих новых нетленках.
|
|||
72
Heckfy
04.10.12
✎
10:53
|
(69) Ну это уже константу надо вводить, и в цикле
Если КонстантаЯОбедаю=Истина Тогда Продолжить; КОнецЕсли; |
|||
73
dmpl
04.10.12
✎
10:57
|
(71) Хочешь стать незаменимым - вставь паузу в обработчики ПриЗаписи(), ОбработкаПроведения() и т.п. Лучше всего - подпиской на события, чтобы не нашли сразу.
|
|||
74
forforumandspam
04.10.12
✎
10:57
|
(72) Всему учить надо... :)
Если Час(ТекущаяДата()) = 13 Тогда Продолжить; КонецЕсли; |
|||
75
Heckfy
04.10.12
✎
10:58
|
(74) Не, не пойдет. А если обед плавающий? :)
|
|||
76
UIV
04.10.12
✎
10:58
|
(72) Неоптимальный код! Константу надо непосредственно в теле цикла проверять.
Пока не КонстантаЯОбедаю цикл КонецЦикла; |
|||
77
YF
04.10.12
✎
10:58
|
кстати, уберешь сообщить - будет быстрее
|
|||
78
dmpl
04.10.12
✎
10:58
|
(72)(74) Надо не Если, а Пока использовать.
|
|||
79
dmpl
04.10.12
✎
11:00
|
И вообще, не Продолжить надо использовать, а
|
|||
80
forforumandspam
04.10.12
✎
11:02
|
(79) Тогда есть шанс, что после обеда программа не вернётся в рабочее состояние.
|
|||
81
forforumandspam
04.10.12
✎
11:03
|
(78) +1
|
|||
82
rutony
04.10.12
✎
11:03
|
(75) Так это же разовый код, чего заморачиваться
(74) Гениально |
|||
83
Heckfy
04.10.12
✎
11:04
|
(78) Ну да. А еще можно юзверя привлечь, что бы не сидел без дела, пока обработка работает. Типа
Если Сч%100=0 Тогда Если Вопрос"Обработано"+Сч Продолжить Да/нет Да Тогда продолжить КонецЕсли; ЗЫ: На синтаксис прошу не обращать внимания. :) |
|||
84
dmpl
04.10.12
✎
11:05
|
(80) Ну, еще и за сверхурочные заплатят :) И главное админ подтвердит - сервер работал как папа Карло :)
|
|||
85
forforumandspam
04.10.12
✎
11:08
|
(83) Можно капчу выдавать, а то будет тупо щёлкать.
|
|||
86
dmpl
04.10.12
✎
11:09
|
(85) Интересно, а можно ли на 1С сделать убегающую кнопку?..
|
|||
87
YF
04.10.12
✎
11:11
|
(86) Нет, там нет события "накрывания" мышью
|
|||
88
forforumandspam
04.10.12
✎
11:13
|
(86) Можно на форму выдать 10 кнопок и рандомно одну делать активной, а остальные пассивные.
|
|||
89
Прохожий
04.10.12
✎
11:25
|
В час будет где-то 120 000 обрабатывать. За 10 часов закончит. Ночь. по 1 000 рос. рублей в час. 10 000 рос. рублей за обрезку. Дорого?
|
|||
90
dmpl
04.10.12
✎
11:33
|
(88) И повесить обработчик ожидания на 1/10 секунды, чтобы эта активность постоянно менялась :)
|
|||
91
Heckfy
04.10.12
✎
11:34
|
(89) Долго. Очень долго. Откровенная ИБД!!! После такого и складывается стереотип о программистах 1С.
ЗЫ: А по деньгам - это личное дело каждого, как договоришься. |
|||
92
dmpl
04.10.12
✎
11:36
|
(87) А если на форму HTML документ вывести?
|
|||
93
Heckfy
04.10.12
✎
11:40
|
||||
94
forforumandspam
04.10.12
✎
11:45
|
(90) Это подразумевалось. ;)
|
|||
95
Прохожий
04.10.12
✎
15:16
|
Режем, режем... Скоро пятницо.
|
|||
96
UIV
04.10.12
✎
15:22
|
(95) Держи нас в курсе.
|
|||
97
Прохожий
04.10.12
✎
15:30
|
(96) Хорошо. Как наступит пятница я отпишусь.
|
|||
98
Ахиллес
04.10.12
✎
15:48
|
(86) Можно сделать чтоб по щелчку на кнопке "Да" она менялась местами с кнопкой "Нет". А на возмущения пользователей отвечать: Смотри куда мышкой тыкаешь, дятел!
|
|||
99
dmpl
04.10.12
✎
15:58
|
(98) А еще можно кнопки назвать:
"Да, остановить" и "Нет, не продолжать" |
|||
100
ptiz
04.10.12
✎
16:02
|
(89) Ты сам заплатить должен за то, что так надругался над СУБД.
|
|||
101
0xFFFFFF
04.10.12
✎
16:04
|
(0) Пля, че правда запросы отменили?
|
|||
102
Прохожий
05.10.12
✎
07:47
|
(102) Только я. Присоединяйся?
|
|||
103
Прохожий
05.10.12
✎
07:48
|
(100) А чего плохого - кто-то перестанет видеть документы прошлых лет...
|
|||
104
Прохожий
05.10.12
✎
08:57
|
Кто там спрашивал Когда? Встречайте OFF: Пятница
|
|||
105
Леха Дум
05.10.12
✎
08:58
|
На продолжение v8: Вызвать нельзя увидеть модуль объекта из ФормаВыбора - очередное издевательство? похоже, еще одна пятничная тема
|
|||
106
GANR
05.10.12
✎
09:28
|
(0) "Конфигуратор \ Отладка \ Замер производительности" в помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |