|
|
Нужен алгоритм счетчика с инкрементацией внутри произвольного диапазона
Климов Сергей, integer, Lama12, Злопчинский, Веселый Джузеппе, mortal, andy_minsk, San787, elka302, ads55, Web00001, nick86, maxar, Волшебник, RomanYS, Мультук, toypaul, d4rkmesa, zenik, АНДР, trad, Fedor-1971, kittystark, maxab72, Ненавижу 1С, Prog_man, Михаил Козлов, Гипервизор, U4Me2, vbus, DemonShinji2, formista2000, kauksi, Ботаник Гарден Меран, 2S, kupec, КонецЕсли
| ☑ |
|
0
Веселый Джузеппе
12.10.26
✎
07:35
|
Добрый день! Есть задача присваивать реквизиту строк в документе (целочисленный тип) значение, начиная с диапазона 125000 до 425000 с инкрементацией, отталкиваясь от максимума. По достижение в строке значения 425000 следующая строка должна быть со значением 125000 и все пойдет на круг. Никакой привязки к датам нет, только этот диапазон. Расчетная скорость "выработки" диапазона несколько месяцов точно, хотя это не влияет на реализацию.
Как бы вы реализовали этот алгоритм?
|
|
|
1
maxab72
12.10.26
✎
07:47
|
в документах по 300 000 строк и более?
|
|
|
2
Lama12
12.10.26
✎
07:52
|
Мало вводных. Как быстро нужны данные сразу или потом? Есть ли правки документов прошлым числом? Одна база или распределенная? Один пользователь работает с документов или нет? И т.д. и т.п.
|
|
|
3
Веселый Джузеппе
12.10.26
✎
07:59
|
(1) В документе в среднем 15-25 строк
(2) 1 база, многопользовательская, РИБа нет. Правки могут быть, но в этом случае для новых строк надо ставить так же по инкременту, т.е. может быть документ со значениями в строках 130001, 130002 и 142300.
"Как быстро нужны данные сразу или потом?" скорее потом, эти данные будут использоваться для общения со сторонней системой отдельным регламентом, у него расписание будет не слишком "бодрое"
|
|
|
4
АНДР
12.10.26
✎
08:01
|
(0) Напиши,
Чем не подходят 3 константы и общий модуль?
|
|
|
5
Веселый Джузеппе
12.10.26
✎
08:04
|
(4) Да то ли не проснулся, то ли старый стал, в голове красивого решения не сложилось поутру. В целом да, рабочий вариант
|
|
|
6
Веселый Джузеппе
12.10.26
✎
08:06
|
Как будто бы хотелось обойтись данными в самих документах, а не хранить в константе
|
|
|
7
Мультук
гуру
12.10.26
✎
08:16
|
(0)
1) А что не так с константами ?
Транзакция и все дела
|
|
|
8
Веселый Джузеппе
12.10.26
✎
08:22
|
(7) Вы правы, наверное, так и сделаю
Теоретически размышляю об альтернативных путях решения. Задача изначально простой показалось, хоть и не часто встречаются такие
|
|
|
9
Fedor-1971
12.10.26
✎
08:20
|
(6) Данные в самих документах - как будешь определять последнее значение и обеспечивать инкремент при одновременном добавлении строк в разные документы?
Как вариант: делаем РС с измерением Месяц и ресурсом ТекущийСчетчик. Решается проблема правки задним числом, но нужен алгоритм при переносе документа в другой период
|
|
|
10
Fedor-1971
12.10.26
✎
08:26
|
(7) При добавлении строки в другом периоде, чисто технически, возможно наличие одинакового счётчика на разных строках одного или разных документов.
Нужно рассматривать периодичность счётчика по некому периоду (месяц, квартал)
(0) если не важно наличие пресечения значений - достаточно константы
|
|
|
11
Веселый Джузеппе
12.10.26
✎
08:24
|
(9) Справедливо.
Кофе закончился, пойду реализовывать.
Всем спасибо и удачного дня!
|
|
|
12
Веселый Джузеппе
12.10.26
✎
08:25
|
(10) обязательно так и будет, но в данном случае это не проблема, т.к. актуальный период точно сильно меньше периода, за который "выработается" диапазон
|
|
|
13
Lama12
12.10.26
✎
09:16
|
(3) В таком случае, вообще проставлял номера перед общением со сторонней системой.
|
|