|
v7: Не работает функция | ☑ | ||
---|---|---|---|---|
0
abbas
23.06.22
✎
09:15
|
Доброе времени суток, подскажите пжста, в каких случаях перестает работать %
4%2 = 0 5%2 = 0 чтобы не писал, все равно 0 А вчера работало |
|||
1
abbas
23.06.22
✎
09:39
|
Ап
|
|||
2
asady
23.06.22
✎
09:47
|
(0) покажи свой код
|
|||
3
abbas
23.06.22
✎
09:56
|
флагРанд = 0;
Пока флагРанд=0 цикл Ранд =_GetPerformanceCounter()*ТекущаяДата()%(9999); Если Стрдлина(Ранд) = 4 Тогда флагРанд=1; КонецЕсли; КонецЦикла; |
|||
4
abbas
23.06.22
✎
09:57
|
_GetPerformanceCounter()*ТекущаяДата() = выдает число
а после %(Число) выдает 0 |
|||
5
Деспот_1С
23.06.22
✎
10:05
|
(0) 4%2 = 0 так и должно быть потому что у = х % а. Берется остаток от деления «х» на «а». Результатом всегда будет значение между 0 и а-1
|
|||
6
asady
23.06.22
✎
10:15
|
(3) да...
Число = Число * Дата % число; Строка = Число; столько неявных преобразований типов - может как-то причешешь код Глядишь и ошибки уйдут |
|||
7
Злопчинский
23.06.22
✎
18:30
|
Число, помноженное на дату - это сильно...
|
|||
8
Злопчинский
23.06.22
✎
18:32
|
(4) а что говорит
ТипЗначенияСтр(_GetPerformanceCounter()*ТекущаяДата()) |
|||
9
NorthWind
23.06.22
✎
21:41
|
(7) Нередко дата - это на самом деле унутре и есть целое, которое обозначает число дней, прошедших с какого-то определенного момента. Соответственно может быть положительным (после момента) и отрицательным (до момента).
|
|||
10
NorthWind
23.06.22
✎
21:44
|
не сильно удивлюсь, если в 7.7 дата тоже приводится к целому по тому же принципу, хотя ни разу не пробовал так делать
|
|||
11
NorthWind
23.06.22
✎
22:04
|
Да, в семерке тоже приводится к целому, нынешний день дает значение 2459754. Если сминусовать день из даты и опять привести, то 2459753, что логично. Но вот если сминусовать все это из текущей даты и напечатать как дату, то показывает белиберду с отрицательным годом, хотя по идее должно показать "начало времен" :) Релиз 7.7.027.
|
|||
12
Злопчинский
25.06.22
✎
02:19
|
(11) там сингулярность просто... ;-)
|
|||
13
NorthWind
25.06.22
✎
08:51
|
(12) :) но, однако, факт, что преобразования от даты к целому и наоборот действуют, и для каждой даты есть свое уникальное целое. Может пригодиться.
|
|||
14
Злопчинский
25.06.22
✎
12:17
|
(13) как-то не приходилось так извращаться ;-)
. ТекущаяДата()-738695 = 01.01.0000 |
|||
15
MWWRuza
гуру
25.06.22
✎
13:04
|
Да уж...
Век живи, век учись - и все равно дураком подохнешь... Я для того, что-бы обеспечить уникальность файлов выгрузки из бэка во фронты, функцию создавал... Функция ВернутьТекДатуВремяЧислом() СтрДата = Строка(НомерДняГода(ТекущаяДата())); СтрВремя = СтрЗаменить(Строка(ТекущееВремя()), ":", ""); СтрДатВрем = СтрДата + СтрВремя; Возврат Число(СтрДатВрем); КонецФункции А можно было проще сделать, в одну строчку :-) |
|||
16
ДедМорроз
25.06.22
✎
13:17
|
Можно просто перебрать файлы с 1 и занять свободный.
|
|||
17
MWWRuza
гуру
25.06.22
✎
13:24
|
(16) Да нечего перебирать. Файлы удаляет бэк, в случае удачной загрузки. И фиг с ними, они не нужны.
А вот в случае ошибок, нони пропускаются при загрузке, но копия файла помещается в подпапку "EROR" папки загрузки. И вот там, уже нужна уникальность, если несколько файлов с ошибками загружены. Бэком я не рулю, он не 1С, а совершенно сторонний, и копирует файлы в подпапку ошибок как есть, не переименовывая... Поэтому, мне проще сразу уникальные имена сделать, на всякий случай. |
|||
18
MWWRuza
гуру
25.06.22
✎
13:25
|
+(17) Бэком я не рулю
Пардон, фронтом... ОписАлся... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |