|   |   | 
| 
 | Как победить оперативное проведение 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) просто, без проведения. но с проведением или без - это ни на что не влияет имхо.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |