Имя: Пароль:
1C
1С v8
непростая задачка на генерирование чисел
0 Stim
 
07.09.12
15:55
имеется набор записей регистра: ДатаНачало+ДатаКонец+УникЗнач.  записи не сортированы по дате, уникЗнач уникальны по всему набору,количество записей не известно, даты между собой не пересекаются.

Необходимо: в обходе для каждой записи генерировать число от 0 до 50, причем, числа эти могут повторяться, главное, чтобы соседние(по дате) записи были с как можно большей разницей.
   
   Пример:
   
   01.01 - 30.01 "контрагент1" 1
   01.03 - 30.03 "контрагент3" 50
   01.02 - 27.02 "контрагент2" 30
       01.04 - 27.04 "контрагент2" 1
   
   как это сделать?
1 Alexor
 
07.09.12
15:58
(0) Тупо проверка, если сгенерированное совпадает с предыдущим, то повторить генерацию.
2 Stim
 
07.09.12
15:59
(1) предыдущее - может быть январь. а сейчас в выборке декабрь. или 3 квартал. и между ними еще могут быть различные значения..
3 acsent
 
07.09.12
16:00
(0) и где тут уникальность?
4 Alexor
 
07.09.12
16:01
(2) А просортировать нельзя?
5 LAAry
 
07.09.12
16:01
Если рандом не совсем рандом, то это не рандом. Зачем генерировать, если можно устанавливать?
6 acsent
 
07.09.12
16:01
а если могут повторяться, то 1, 50, 1, 50, 1, 50 ...
7 Stim
 
07.09.12
16:01
(3)сорь
01.01 - 30.01 "контрагент1" 1
01.03 - 30.03 "контрагент3" 50
01.02 - 27.02 "контрагент2" 30
01.04 - 27.04 "контрагент4" 1
8 Stim
 
07.09.12
16:02
(6) так - было бы лучше всего. но выборка не сортирована по дате, как добиться такого ряда?
9 acsent
 
07.09.12
16:02
отсортировать и установить
10 Мимо Проходил
 
07.09.12
16:05
А что будет при добавлении записей? Новая генерация?
11 Alexor
 
07.09.12
16:05
(8) Ну если сортировать по каким-то причинам нельзя.
То создать таблицу значений, куда записывать дату и значение, потом делать отбор по дате и проверять на уникальность.
12 Stim
 
07.09.12
16:05
(11) сортировка сейчас - по уникальному значению, по контрагенту в примере
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn