Имя: Пароль:
1C
 
Как победить оперативное проведение 1С, если документов больше, чем секунд?
,
0 ptiz
 
16.03.20
23:55
Как победить оперативное проведение 1С, если документов больше, чем секунд? Например, вечером в 23 часа начинается вал реализаций, которые проводятся оперативно. Проводится по 2 реализации в секунду. В результате через полчаса 3600 реализаций сдвигают оперативную отметку времени на 23:59:59. И приехали :(
Есть такие кто попадал в похожую ситуацию? И как боролись?
1 МихаилМ
 
17.03.20
00:31
очевидно, что это не оперативное проведение документов.
2 Злопчинский
 
17.03.20
00:31
Оперативно? явно нет - я сомневаюсь что сотрудники генерят с такой скоростью.

Реализации автоматом генерить не в 23 часа, а по факту готовности данных для генерации реализации - хоть в 18 часов, хоть в 17.
Или вести подсчет "готовности" к генерации реализаций, как только колов таких "готовнгостей" переваливает "длительность " в 1 час - сдвигать начало генерации...
Это первые мысли что не думая пришли в голову
3 Злопчинский
 
17.03.20
00:31
(1) Однозначно!
4 Garykom
 
гуру
17.03.20
01:20
5 Garykom
 
гуру
17.03.20
01:22
Хотя я неправильно понял проблему и нужная инфа тут https://its.1c.ru/db/metod8dev/content/2746/hdoc

(1) +1
6 Krendel
 
17.03.20
01:40
(0) Не совсем понимаю, а что мешает по 10 реализаций в секунду писать?
7 seevkik
 
17.03.20
02:20
(6) вера
8 МихаилМ
 
17.03.20
02:40
(6) 1с8 может писать  в 1 секунду в 10 раз больше чет 1с77. те 100 000.
9 Конструктор1С
 
17.03.20
03:39
(8) а с чего ты взял, что в восьмерке есть ограничение на количество документов в секунду?
10 Провинциальный 1сник
 
17.03.20
06:39
(5) Прочитал, много думал. Что они курили?

"Механизм оперативной отметки выдает текущее время или большее на одну секунду последней выданной какому-либо пользователю отметки, если последняя выданная отметка больше или равна текущему времени."

О какой вообще оперативности может идти речь, если система фальсифицирует данные, в частности время регистрации факта?? Что мешало сделать правильно - ввести таблицу "последовательность регистрации", где фиксировать последовательность документов при оперативном проведении в один момент времени..
11 Злопчинский
 
17.03.20
09:19
(8) я что-то думаю, что в 77 в секунду можно писать поболее чем 10000
12 ptiz
 
17.03.20
09:43
(1) Да. Скажем, юзеру делаем отдельную кнопку "Провести", которая будет проводить документ не оперативно, текущим временем, а остатки контролировать "оперативно".
Какие косяки могут при этом быть?
13 Bigbro
 
17.03.20
09:43
(11) там есть ограничение. именно в 10 000.
14 ptiz
 
17.03.20
09:44
(2) У нас время убегает начиная с "послеобеденного" часа. 40 тыс накладных за день случилось :(
15 Bigbro
 
17.03.20
09:44
1.1.3. Хранение времени
Время может храниться в двух форматах: Числовое представление, Строковое представление.
В случае числового хранения времени оно отсчитывается от начала суток в десятитыcячных долях секунды. Т.е. фактически будет получено число: (Часы*3600+Минуты*60+секунды)*10000. Т.е. Для времени 19:05:36 – 687360000 (1С умеет учитывать время до 10000 долей секунды, как в случае с документами).
В случае числового хранения времени время с числового значения (Часы*3600+Минуты*60+секунды)*10000 переводиться в 36-ричный формат. Так, для времени 19:05:36 - BD8IDC.

https://www.script-coding.com/v77tables.html
16 Cyberhawk
 
17.03.20
09:46
Я так понял, автору надо чтоб задействовалась прикладная логика всяких контролей остатков, которая по недалекости ребяток из 1С подвязана на оперативный режим проведения, а не на какой-нибудь другой - прикладной - семафор.
17 ptiz
 
17.03.20
09:49
(16) Да мы надеялись, что не упремся в 23:59:59 и хватит стандартного оперативного проведения, а тут еще коронавирус злой - клиенты затариваются :)
18 ptiz
 
17.03.20
09:59
Кстати, если оперативная отметка улетела на 23:59:59, тогда можно на клиенте поменять дату на будущую, и, несмотря на расхождение с датой сервера 1С, документы "будущей" (относительно сервера 1С) датой, нормально проводятся оперативно (с датой 00:00:01 и т.д.).
Но пока оперативная отметка до 23:59:59 не улетела - такой фокус не проходит.
19 Bootini
 
17.03.20
09:59
МоментВремени() использовать при проведении, а не секунды пибавлять
20 Сияющий Асинхраль
 
17.03.20
11:13
(19) А вот что касается МоментаВремени()

http://catalog.mista.ru/public/84177/

если верить статейке, ВОЗМОЖНА некоторая неоднозначность в расположении документов введенным одной секундой, причем как она может возникнуть сама 1С не поясняет :-(
21 ptiz
 
17.03.20
11:19
(20) Там всё понятно. Упорядочивание таблиц идет по Дата+GUID. А у новых документов гуид не всегда "больше" старого. Но это немного другая тема. А нам, похоже, остается только переходить на полунеоперативное проведение (неоперативное технически, но с оперативным контролем остатков).
22 Злопчинский
 
17.03.20
11:38
(13) точно, уверен?
припоминается мне что мы тут с кемто с мисты проводили исследование в тис - сколько доков можно запихнуть а 23-59-59 - получалось дофигища... но вот сколько именно - хз... проверю вечером. имхается всетаки больше 10 тыс... там это скорее всего ограничивается уникальностью ида, а там в конце вроде как две позиции под инкремент... 23 буквы плюс 10 цифр - может оно и получится под 10 тыс..
23 Bigbro
 
17.03.20
11:40
а почему не использовать последовательности?
там вроде хоть миллион документов в секунду все будет однозначно располагаться как положено.
24 Bigbro
 
17.03.20
11:41
(22) уверен, наступал на эти грабли в далекие годы. и в (15) ссылка
25 Злопчинский
 
17.03.20
11:45
(24) ... но я проверю на всякий случай...
26 Провинциальный 1сник
 
17.03.20
11:47
(22) В семерке понятие "момент времени" присутствует, он гарантирует сохранение последовательности документов в порядке их проведения в пределах одной секунды. А в восьмерке такого нет. Там в одну секунду тоже может быть много документов, но при этом не гарантируется сохранение последовательности в хронологии.
27 Bigbro
 
17.03.20
11:56
(26) ну так все верно, отказались от этого и правильно я считаю сделали. механизм последовательностей позволяет не думать о количестве документов в секунду в принципе никогда.
совсем. там где важен "момент времени" именно последовательностью и надо пользоваться.
28 Tonik992
 
17.03.20
12:46
Сортируй по дате + номер документа
29 Дык ё
 
17.03.20
12:56
(15) это никак не ограничивает количество документов в пределах секунды. + хотя возможность закладывалась, она не использовалась - платформа 7.7 всегда записывала документы в целых секундах
30 Провинциальный 1сник
 
17.03.20
13:05
(27) Угу, так замечательно сделали, что теперь для сохранения хронологии приходится фальсифицировать время..
31 vova1122
 
18.03.20
10:15
(25) проверяли количество документов в пределах одной секунды?
32 Serg_1960
 
18.03.20
11:02
(21) "А у новых документов гуид не всегда больше старого" - но в пределах одного вида можно реализовать алгоритм генерации GUID возрастающей последовательности (имхо, справедливо в пределах одной, не РИБ, базы). Тогда более поздний новый документ всегда(!) будет "больше" существующих документов. Но, как я уже ранее говорил, идея лишена смысла пока есть возможность редактирования даты и времени существующих документов.
33 Cyberhawk
 
18.03.20
11:54
(32) Неа, в пределах одной ИБ нельзя. Только в пределах одного сеанса.
34 Bigbro
 
18.03.20
12:01
повторю вопрос из (23)
35 Йохохо
 
18.03.20
12:10
(32) когда говорят про "повторяемость" никакого "редактирования даты и времени" не бывает
36 palsergeich
 
18.03.20
12:18
(34) Технологические и организационные проблемы
37 ptiz
 
18.03.20
12:32
(34) Это про 8ку или 77? Последовательность никак тут не поможет.
В общем, пока заткну дыру так: если время "улетело вперед" - провожу накладную неоперативно датой последнего документа (но при этом контроль остатков - оперативный). Завтра посмотрим результат (а то второй день не спим, время ночью переводим).
38 vova1122
 
18.03.20
12:52
(13) (25) в 77 похоже нет ограничения на количество документов в одной секунде. Запустил создание документов в транзакции. на даный момент уже создано 170000 документов (партиями по 500 шт) и обработка продолжает работать. Но заметил замедление в создании документов
39 Bigbro
 
18.03.20
12:56
(38) время документов созданных проверял?
(37) про 8. почему не поможет, если это механизм который 1с рекомендует для подобных случаев?
40 vova1122
 
18.03.20
13:00
(39) все в 23:59:59
41 ptiz
 
18.03.20
13:11
(39) Последовательность нужна для "пересчета" данных в случае, когда она нарушается из-за работы "задним числом". Её граница - МоментВремени(), включающий "дату документа + Ссылку". Это та же проблема 8ки: нет нормального упорядочивания документов внутри секунды. Что им мешало сразу предусмотреть хотя бы 1/1000 доли секунды? :(
42 Cyberhawk
 
18.03.20
16:29
(41) "Что им мешало сразу предусмотреть хотя бы 1/1000 доли секунды? :(" // Видимо, возвели ситуацию в абсолют: кому не хватает секунды, тому и тысячных секунд не хватит
43 ptiz
 
18.03.20
16:43
(42) По большому счету, секунд хватает для 99,9% клиентов. Но остальным - страдать.
44 Tonik992
 
18.03.20
16:43
Создайте свое поле, Дата2.
Оно будет числовым и хранить время до милисекунд.
45 ptiz
 
18.03.20
16:48
(44) Останется его в регистр накоплений запихнуть и придумать свои виртуальные таблицы с миллисекундами :)
46 Cyberhawk
 
18.03.20
17:06
(44) Угу. А потом третье поле - макросекунды. А потом - нано.
47 Злопчинский
 
18.03.20
20:01
(24) вот не зря я сомневался. потому что я успел забыть больше чем некоторые знали... ;-)
не зря у меня в мозгу в дальних закоулках маячит что когда мы проводили испытания - в одну секунду можно было записть дофига документов. не 10 тыс (это не дофига), а реально больше. Как и обещал (с задержкой правда) провожу испытания:
.
Уже в 23:59:59 в 17.03.20 записано 60 тыс.
во, в (38) уже проверено... я, кстати, тоже по 500шт генерю в транзакции.
48 Злопчинский
 
18.03.20
20:10
при этом IDDOC - совсем небольшой, влезет еще дофигища...
49 celentano
 
19.03.20
19:06
(0) У нас система может генерировать тысячи документов за один день, и т.к. документы проводятся очень быстро то за одну секунду один сеанс успевает сгенерировать несколько десятков документов. Естественно при оперативном проведении дата мгновенно уплывает "вправо". В итоге:
- Отказались от неоперативного проведения
- Контроль остатков выполняется так же как и выполнялся бы при оперативном проведении
- Перед записью нового документа дополнительно устанавливаем значение точной даты записи (используя ТекущаяУниверсальнаяДатаВМиллисекундах() в последней строке события "ПередЗаписью" модуля объекта)
50 Cyberhawk
 
19.03.20
20:19
(49) Наверное, ты хотел сказать "отказались от оперативного проведения"
51 celentano
 
19.03.20
20:39
(50) Точно. Еще забыл дополнить, что для новых документов все блокировки устанавливаются в событии "Перед записью" и до вычисления "точной даты записи". Что бы при необходимости можно было понять последовательность проведения документов изменяющих остатки по одинаковым комбинациям измерений.
52 Злопчинский
 
19.03.20
21:08
(49) а что за система такая?
53 celentano
 
19.03.20
21:12
(52) Типа Microsoft Project Server
54 Сияющий в темноте
 
20.03.20
00:26
а в чем проблема?
если есть документы за текущее время,то просто переносим их все на секунду назад ну или наш сиещаем на секкнду вперед,далее оперативное проведение документа,а далее возврат всего в зад,то есть правка даты без проведения в документе и движениях.
55 Провинциальный 1сник
 
20.03.20
06:55
(54) Проблема в том, что тогда теряется последовательность проведения документов внутри секунды.
56 Bigbro
 
20.03.20
08:00
(47) странно. документы просто пишутся, без проведения?
ну значит запамятовал я. извините.
57 ptiz
 
20.03.20
09:20
(49) "Перед записью нового документа дополнительно устанавливаем значение точной даты записи " - а куда вы миллисекунды деваете? В дате документа ведь их нет.
58 celentano
 
20.03.20
15:07
(57) Отдельный реквизит.
59 ptiz
 
20.03.20
15:08
(58) И во запросах - дополнительная сортировка по нему?
60 celentano
 
20.03.20
15:31
(59) Скорее мы ее используем для целей анализа. Например, когда необходимо восстановить последовательность действий в системе, что бы понять почему был построен именно такой план проекта. В этом случае очень удобно видеть приблизительную очередность регистрации документов, т.к. документы по сути отражают как действия пользователей так и реакцию на эти действия системы. В тех редких случаях когда важно получить порядок стараемся использовать поля "момента времени".
61 Злопчинский
 
20.03.20
23:33
(56) просто, без проведения. но с проведением или без - это ни на что не влияет имхо.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn