Имя: Пароль:
1C
1C 7.7
v7: Как проверить делится ли число на тыщу без остатка?
0 t80
 
21.11.07
09:06
Есть цикл, перебор 600000 записей во внешней базе, в mdb.
есть переменная, куда помещается номер записи циклом.
надо находить 1000, 2000 и т.д. чтоб писать в Сообщение()
2000 из 600000.

Как проверить, делится ли число на тыщу без остатка?
1 SeArT
 
21.11.07
09:08
ПровЧисло % 1000 = 0
2 Рэйв
 
21.11.07
09:08
Если А%Б=0 Тогда // делится без остатка
3 у лю 427
 
21.11.07
09:11
если А "Доступно и всерьез" (цы) Б тогда мудак....
4 Nordok
 
21.11.07
09:12
Походу выгодней запросом, а не циклом...
5 selenat
 
21.11.07
09:27
просто пипец. Автор, иди подметать улицы...
6 SnarkHunter
 
21.11.07
09:30
Надо использовать НайтиЗначение...
7 IUnknown
 
21.11.07
09:32
(6)найтизначение нельзя... ибо запись может быть 10001...

лучшее так


если число(прав(х, 3)) = 0 тогда
 // делиться без отстатка
8 Песец
 
21.11.07
09:39
Если Цел(х / 1000) * 1000 = х Тогда
Состояние("" + х + " из 600000");
КонецЕсли;
9 Ленивый 1сник
 
21.11.07
09:59
А можно добавить еще одну переменную, примерно так:

Счетчик = 0;

Пока ... Цикл // Перебор записей
 
 ... // Что-нибудь делаем с записью...
 
 Счетчик = Счетчик+1;
 Если Счетчик=1000 Тогда
   Сообщить(...); // Ну или еще чего...
   Счетчик = 0;
 КонецЕсли;
КонецЦикла

Хотя для 1С разницы в скорости по сравнению с % скорее всего не будет.
10 Песец
 
21.11.07
10:11
(9) идея хорошая, реализация не очень :)
выводить = 1000;
Если х = выводить Тогда // в каждой итерации только 1 действие сравнения
Состояние("" + х + " из 600000");
выводить = выводить + 1000;
КонецЕсли;
11 SnarkHunter
 
21.11.07
10:22
(7)Ты молодец, конечно, но фишка тут в другом...
12 Ленивый 1сник
 
21.11.07
10:22
(10) Интересный вариант, но x - то все равно увеличивать надо:)
13 Песец
 
21.11.07
10:39
(12) Сабж: "есть переменная, куда помещается номер записи ".
выводить = 1000;
Для х = 1 по 600000 цикл
Если х = выводить Тогда // в каждой итерации только 1 действие сравнения
 Состояние("" + х + " из 600000");
 выводить = выводить + 1000;
КонецЕсли;
КонецЦикла;
(7) если прав(х, 3) = "000" //?
(11) А в чем? В сабже не упомянуты ни тз, ни сз, ни периодика.
14 IUnknown
 
21.11.07
10:42
(11)если не секрет, огласите в чем фишка
15 Ленивый 1сник
 
21.11.07
10:45
(13) Ладно, сдаюсь:)

Хотя, на практике скорее всего сделал бы через %, так проще получается, а на скорости вряд ли заметно скажется если там в цикле еще и работа с базой идет, и Сообщить...
16 Песец
 
21.11.07
11:00
(15) % почему-то не документирован, хотя в типовых применяется.
17 IUnknown
 
21.11.07
11:01
(15)в три раза вариант % медленее варианта в (13)...
18 t80
 
21.11.07
11:02
(5) сынокъ, с чего ты взял что я специалист в 1с? я обратился к спечиалистам и благодарен всем за ответы, а тебя посылаю нах с твоим снобизмом
19 Ленивый 1сник
 
21.11.07
11:05
(17) Это при пустом цикле, а если там реальная работа выполняется?
20 IUnknown
 
21.11.07
11:09
(19)какая разница... из таких вот маленьких кирпичеков и выкладывается здание
21 selenat
 
21.11.07
11:18
(18) такие вопросы стыдно задавать даже начинающему программисту ИМХО. А если ты вообще не программист и не собираешься им становиться, то нафиг задаешь вопросы? позови спеца, он тебе все сделает.
22 Ленивый 1сник
 
21.11.07
11:18
(20) Разница в том, что увлекшись оптимизацией одного кирпичика можно потратить пол дня на ускорение в три раза, а потом окажется что на % тратится всего 1% времени прогона цикла (а то и меньше)... В итоге общая оптимизация составит 1/3% - погрешность измерений больше будет:)
23 IUnknown
 
21.11.07
11:24
(22)видать не доводилось тебе програмировать в 16 килобайтах озу... с частатой 3 мегаГц
24 dk
 
21.11.07
11:35
(17) А если надо на каждый 289-й чтобы срабатывал? :)
25 t80
 
21.11.07
11:37
(21) ты поучи отца детей делать.
я тут постоянно мелкие задачки кидаю.
люди мне помогают, спасибо им.
и тутошние спецы мне должны быть благодарны, я своими тупыми вопросами повышаю их самооценку, все довольны
26 t80
 
21.11.07
11:39
+ 25 заметь, тема интересна многим
27 Программист 484
 
21.11.07
11:39
Внесу 5 копеек
Если Прав(х,3)="000" тогда делится
28 IUnknown
 
21.11.07
11:40
(24)и в чем проблема...
29 Ленивый 1сник
 
21.11.07
11:40
(23) Точно, не приходилось. Приходилось только в 32кб и 3.5МГц:)

Там в угоду скорости иногда даже отдельные циклы разворачивались в повтор кода чтобы на команде перехода в начало сэкономить - но это было оправдано только если сам цикл состоял из одной-трех команд. Для бОльших циклов это уже была пустая трата памяти при практически нулевой оптимизации...

Сейчас слава богу памяти побольше и процессоры побыстрее - можно уже на такой мелочи не экономить, а потратить время на оптимизацию самой обработки записей. Ну например предварительно в память считывать куски базы, или еще чего...

PS Как-раз сейчас пишу драйвер ККМ для микроконтроллера... Не смотря на то, что он микро - его производительности вполне хватает чтобы писать на Си++ и не заморачиваться с ассемблерными вставками.
30 selenat
 
21.11.07
11:40
(25) спасибо, поржал...
31 IUnknown
 
21.11.07
11:41
(27)молодец... я тоже так сперва хотел...
32 t80
 
21.11.07
11:41
(27) ЧУВАК, ТЫ КРУТ! так и сделаю. спасибо
33 dk
 
21.11.07
11:42
(28) перепиши (7) для условий в (24)
34 Программист 484
 
21.11.07
11:43
Мдаа (25) Культура на нуле. И еще - когда будешь задаввать свои ТУПЫЕ вопросы - скажи что ты их задаешь - не для себя а для "тутошние спецы мне должны быть благодарны, я своими тупыми вопросами повышаю их самооценку"
Тебя будут дружно посылать туда куда ты послылаешь.
35 Программист 484
 
21.11.07
11:44
У меня создается впечатление - что подобные УРОДЦЫ постоянно сюда заходят с целью дое****ться до всех. Может быть нужно их как-то омечать и банить нафиг?
36 t80
 
21.11.07
11:46
Алёша, оч. смешно, спасибо.
37 SnarkHunter
 
21.11.07
11:47
38 Программист 484
 
21.11.07
11:48
Кстати и язык у них обычно "чурский"
-тыща. (Для справки - тысяча)
"ты поучи отца детей делать" - Мдаа а дети такие же? Тогда желаю вам счастья. Интересно они также будут доставать "якобы отца"?
39 Программист 484
 
21.11.07
11:49
(37) Спасибо - про лилипутов - СУПЕР!
40 t80
 
21.11.07
11:50
41 selenat
 
21.11.07
11:50
(38) расслабься. Препираться с такими бесполезно. Меня у него задеть не получится...
42 selenat
 
21.11.07
11:51
(40.2) ааа. Ну тогда все ясно... :)))
43 1Cко
 
21.11.07
11:52
думаю тут не стоит использовать НайтиЗначение()... Хотя если очень постараться, то можно и сюда прикрутить)))
44 t80
 
21.11.07
11:52
45 Программист 484
 
21.11.07
11:52
(40) Так это вы? Приятно познакомится пропорщик задов. В карточку внесете?
Мдаа хреновенькие у нас филологи появляются
46 t80
 
21.11.07
11:52
дети вы еще. сынки
47 1Cко
 
21.11.07
11:53
(42) он 1С-охранник))
48 IUnknown
 
21.11.07
11:53
(33)ну вообще-то в семь частный случай... думалось, что Снарк напарил с найтизначение... а так обсуждаем % и (13)

(29)когда-то 32 кб казалось огромной паматью... если быть честным то на том, что я писал было тоже 32 кб... но в 16 из них сидел васик... и под программы отводилось оставшиеся 16... а вот за частоту точно не помню... давно все таки было...
может об одном и том же говорим... я о бк-0010
49 selenat
 
21.11.07
11:54
(47) :)))
50 Программист 484
 
21.11.07
11:54
(46) Мдаа у нас появился АТЭЦ - только филог хрЭновыЙ. Делать дЭтей не умеет. Польза как от козла молока.
51 Ленивый 1сник
 
21.11.07
11:57
(43) А что, делаем ТЗ из двух колонок, "Номер" и "Выводить", заполняем ее данными: 1-0, 2-0, ..., 1000-1, 1001-0, ..., 600000-1. Ну и потом используем НайтиЗначение:) Только таблицу проиндексировать надо:)
52 t80
 
21.11.07
11:58
*зевает*
53 Программист 484
 
21.11.07
11:59
selenat (41) - а я не для этого пишу ему. Просто подобные падонки приходят - и любят всех пооскорблять. А мне нравится выводить их из себя. (Орут матом ка дети :))))
Желаю удачи - охраннику 1с. Ушел работать.

(52) Девочке пока.
54 t80
 
21.11.07
12:02
(53) иди работай, раб, солнце еще высоко
55 selenat
 
21.11.07
12:05
Мне в принципе все равно, но насчет забанить - хорошая мысль. Где модераторы?
56 1Cко
 
21.11.07
12:06
(55) спакойно... уси-пуси ведь нету - хоть тут посмеяцо:))
57 selenat
 
21.11.07
12:08
(56) неее. С уси-пуси никто не сравнится. С обычного хамства как-то не смешно...
58 selenat
 
21.11.07
12:09
(56) интересно, она перешла в начальнеги?
59 t80
 
21.11.07
12:10
селезнев (имена опущенцев традиционно пишем с маленькой буквы), ты иди постовому милиционеру на меея пожалуйся.
60 t80
 
21.11.07
12:10
так, девочки, не расходитесь, сейчас еще вопросы по 1с будут
61 1Cко
 
21.11.07
12:13
(58) бери выше... директор))))
62 1Cко
 
21.11.07
12:13
(59) а кто такой "меей"?
63 t80
 
21.11.07
12:22
(62) не петушись
64 Песец
 
21.11.07
12:43
(63) Что означает "петушиться" в среде филологов, традиционно пишущих имена опущенцев с маленькой буквы?
65 t80
 
21.11.07
12:45
(64) не кукарекай
66 1Cко
 
21.11.07
13:01
и давно петухи дают людям статусы и рот прикрывают????
67 t80
 
21.11.07
13:10
сынокъ, осторожнее
68 1Cко
 
21.11.07
13:13
я осторожен всегда
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн