![]() |
|
Счетчики в константах | ☑ | ||
---|---|---|---|---|
0
Timon1405
19.06.17
✎
09:13
|
Есть рекомендация от 1С не делать сабж, использовать для этих целей регистры сведений.
Правильно ли я понимаю, что так как нынче константы хранятся в отдельных таблицах, рекомендацию можно считать устаревшей? |
|||
37
Fedor-1971
19.06.17
✎
09:44
|
(27) вот какой вредный. Разница:
1. константа - блокируем таблицу, блокируем каждую строку в таблице 2. рс - блокируем одну строку. (тут вклинивается поиск строки, но, он не сравним с блокировкой) |
|||
38
YFedor
19.06.17
✎
09:45
|
(37) Так в таблице всего одна строка, неужели поиск в РС будет намного быстрее блокировки таблицы с одной строкой?
|
|||
39
Aleksey
19.06.17
✎
09:45
|
(37) и?
Т.е. блокировка таблицы занимает условно 2,5 сек,а блокировка строки в таблице занимает условно 2.5 наносек? |
|||
40
Aleksey
19.06.17
✎
09:46
|
Таблица полностью идентичны. Это отдельная таблица в которой всего 1 колонка и 1 строка. Разница только в названии таблицы
|
|||
41
YFedor
19.06.17
✎
09:48
|
(0) А зачем вообще этот счетчик нужен? может использовать РС, Константу и регламентное задание?
|
|||
42
sFAQer
19.06.17
✎
09:48
|
(35) Шансов на это мало, но так или иначе ты можешь поставить блокировку на значение 256, отловить её в других доках и инкрементировать ещё на единичку...
(38) Поиск по индексу, конечно быстрее блокировки |
|||
43
Fedor-1971
19.06.17
✎
09:49
|
(38)(39) по времени разница примерно в 0.5 (+/-)сек для MS SQL
специально замером смотрел, была примерно похожая задача. После перехода на РС проведение доков ускорилось |
|||
44
YFedor
19.06.17
✎
09:50
|
(42) Шансов как раз море, если пользователей много ибо у него сквозная нумерация всех объектов: справочники, документы
|
|||
45
sFAQer
19.06.17
✎
09:50
|
(44) О_____________о откуда такие подробности личной жизни?
|
|||
46
DrZombi
гуру
19.06.17
✎
09:50
|
(3) Пока проводятся документ, все курят бамбук, что бы записать константу.
... Думается 1С с константами опять намудрила :) |
|||
47
YFedor
19.06.17
✎
09:52
|
(45) да я был сбит с толку сообщением из (36)
|
|||
48
mistеr
19.06.17
✎
09:53
|
(33) (36) Тьфу ты, не последовательности, а НУМЕРАТОРЫ!
|
|||
49
dezss
19.06.17
✎
09:54
|
(42) Шансов много. А блокировка на значение не будет отрабатывать быстрей, чем запись константы, хотя если таких коллизий будет не много, то определенно работать будет быстрей.
|
|||
50
YFedor
19.06.17
✎
09:56
|
(48) А как использовать нумератор не для назначения номера документа?
|
|||
51
Fedor-1971
19.06.17
✎
10:06
|
(42) Периодический РС - ни разу не счётчик т.к. добавляет записи и приходим к вопросам "А которая из них последняя" и "Сколько времени займёт её найти". Много пользователей получают данные без проблем и запишут свои новые значения (90% - одинаковые) - в результате каша, а не счётчик.
|
|||
52
rabbidX
19.06.17
✎
10:06
|
(0) В оперативном режиме нумеровать документы - бред. Какой бы механизм Вы не выбрали, при интенсивной работе с базой будет все тупить жутко.
Лучше пересчитывайте доки регламентным заданием ночью. Дабавьте общий реквизит "Посчитали" для всех доков. В регламентном выбирайте все доки, где Посчитали = Ложь, меняйте значение реквизита на Истину и перезаписывайте константу. |
|||
53
ptiz
19.06.17
✎
10:07
|
Сделать оба варианта да прогнать замер - делов-то.
|
|||
54
sFAQer
19.06.17
✎
10:08
|
(51) Ты про виртуальные таблицы чё нибудь слышал?
|
|||
55
Fedor-1971
19.06.17
✎
10:10
|
(52) Ага, выдали счёт № ХХХХ, ночью что-то пожужжало и получили номер YYYY. И как с клиентом разговаривать?
(51) И? в (35) пример очень показательный. Как ни странно, но виртуальная таблица для построения требует времени. |
|||
56
rabbidX
19.06.17
✎
10:10
|
С РС нужно после перед чтением еще управляемую блокировку включать, потом выключать. Беспонтово.
|
|||
57
mistеr
19.06.17
✎
10:10
|
(50) Создать документ. Вместо константы и РС.
|
|||
58
Timon1405
19.06.17
✎
10:11
|
(43) >>После перехода на РС проведение доков ускорилось
И текущая строка РС счетчика при этом блокировались на запись? или просто "перешли на РС, считываем последнее idd и надеемся как в (42) на то что, "вероятность файр резиста крайне мала" коллеги, вопрос скорее теоретический, интересно насколько рекомендации сходятся с примерами из реальной жизни |
|||
59
Fedor-1971
19.06.17
✎
10:11
|
(58) как положено с блокировкой
|
|||
60
rabbidX
19.06.17
✎
10:13
|
(55) Так счетчик же нужен, а не нумератор. Нумератор в коробке стандартный есть, по нему количество доков не определишь, коллизии там, вся фигня. Да и не факт, что помимо счетчика не нужно обычной нумерации для каждого типа документов.
|
|||
61
mistеr
19.06.17
✎
10:15
|
(60) Счетчик нужен для определения количества доков? Что за бред?
|
|||
62
rabbidX
19.06.17
✎
10:15
|
(58) а можно ссылку на эту рекомендацию? Что именно там 1С советует?
|
|||
63
rabbidX
19.06.17
✎
10:15
|
(61) А для чего?
|
|||
64
Fedor-1971
19.06.17
✎
10:19
|
(60) у меня была задача реализовать нумерацию документов по разным фирмам с различной периодичностью (день, месяц, год) с возможностью динамически влиять на оную. Типа шаблона номера документов, вот там счётчик и понадобился.
(63) Например, для подсчёта входов-выходов сотрудника за день, неделю, месяц и т.д. |
|||
65
Timon1405
19.06.17
✎
10:21
|
(62) https://its.1c.ru/db/metod8dev#content:4053:hdoc:_top
Константы Не рекомендуется использовать константы для хранения постоянно меняющихся данных. Это приведет к возникновению избыточных блокировок и снижению общей производительности системы. Для хранения таких данных можно использовать другие объекты метаданных "1С:Предприятия" (справочники, регистры и т. д.). Константы предназначены для хранения настроек, которые могут часто считываться, но не должны часто изменяться. Значения всех констант хранятся в одном ресурсе. Это означает, что при блокировке одной константы будут заблокированы все константы. Очевидно, что информация устаревшая! |
|||
66
sFAQer
19.06.17
✎
10:22
|
(64) (65) В ДО например нумераторы реализованы черзе РС "Нумерация" Там тоже счётчики. Только там строка обновляется, и т.к разрезов у РСа достаточно много, в колизии не впадает...
|
|||
67
mistеr
19.06.17
✎
10:23
|
(64) Для подсчета входов-выходов и т.п. есть РН.
|
|||
68
Вафель
19.06.17
✎
10:23
|
(65) Еще со времен 8.2.14, те лет 10 уже
|
|||
69
rabbidX
19.06.17
✎
10:24
|
(64) в (3) и далее по ветке говорили про счетчик документов.
Если задача считать сотрудников или еще кого-то, то нам нужно измерение, которого у константы нету и вопрос об ее использовании отпадает. |
|||
70
Вафель
19.06.17
✎
10:24
|
Конечно без понимания задачи посоветовать ничего нельзя
|
|||
71
mistеr
19.06.17
✎
10:25
|
(64) Можно подробности? С первичными бизнес требованиями.
|
|||
72
Вафель
19.06.17
✎
10:25
|
документы считать лучше вообще при формировании отчета.
Явно что этот отчет не такая частая функция |
|||
73
Вафель
19.06.17
✎
10:26
|
Если это нумератор, то лучше регистр ибо 146% потом потребуются разные разрезы
|
|||
74
rabbidX
19.06.17
✎
10:31
|
(65) Ну смотрите, постоянно меняющиеся данные, общие для всей базы - это какие-нибудь суммируемые показатели, которые в явном виде хранить не нужно, проще посчитать. Если логика работы со значением, не предполагает его параллельного изменения, пользуйтесь константами, сколько влезет.
|
|||
75
Aleksey
19.06.17
✎
10:32
|
(71) А что там непонятно. Управленческая база, нужна своя нумерация в разрезе юрлиц, но при этом учет ведется по компании в целом
Вариант 1, мы меняем типовой номер в документах в зависимости от признака (ну например от юрлица). Т.е. меняем типовой код и периодичность. Вариант 2. Типовой номер не трогаем, а реализуем свою нумерацию, т.е. без изменения типовой в рамках подписки на событие (или в рамках расширения) |
|||
76
Aleksey
19.06.17
✎
10:34
|
(74) Что значит проще посчитать? Например нужен инкрементный счетчик для обмена, или свой уникальный номер справочников и документов
|
|||
77
Fedor-1971
19.06.17
✎
10:35
|
(71) Да без проблем: необходимо реализовать нумерацию документов (для разных фирм своя периодичность формирования номера, вида: ГГГГ БН где ГГГГ - номер в пределах года, Б - установленная баква для данного вида документа, Н - количество счетов в пределах данной буквы). Номера задаются шаблоном номера в справочнике фирм. Периодичность,на выбор, в пределах года, месяца, дня.
Реализовал конечный автомат разбора шаблона номера и 3 РС со счётчиками по фирмам и периодичности (3 возможных периода). Рассматривал возможность использовать константу для каждого периода, не получилось, слишком медленно. |
|||
78
Fedor-1971
19.06.17
✎
10:37
|
77+ в основном, нумерация подключалась к выставленным счетам
|
|||
79
rabbidX
19.06.17
✎
10:39
|
(77) ПриУстановкеНовогоНомера не пробовали использовать? Можно же без лишних объектов было обойтись.
|
|||
80
Aleksey
19.06.17
✎
10:41
|
(79) а как он поможет?
Например типовая нумерация документа в течении года. Мне нужно реализовать нумерацию в течении месяца/дня. И чем мне поможет при установки нового номера? |
|||
81
Вафель
19.06.17
✎
10:41
|
(79) В ДО однако не обошлись
|
|||
82
mistеr
19.06.17
✎
10:45
|
(77) Ты описал реализацию. А я просил прикладную задачу.
|
|||
83
Fedor-1971
19.06.17
✎
10:45
|
(79) нельзя.
С одной стороны раные шаблоны: у одной фирмы шаблон "ГГГГ БН" у другой "ДДММГГ-ВВ" где ВВ - номер в пределах дня. С другой: если одновременно записывают 2 человека документы тупо получат одинаковый номер без наличия счётчика. |
|||
84
rabbidX
19.06.17
✎
10:46
|
(80) Запросом вычислять. Но, это все-таки медленно, согласен.
|
|||
85
Serg_1960
19.06.17
✎
10:47
|
Как говаривал незабвенный наш гений: "Мой гений дарит вам..."(цы) Цель не скрываю: сбить с толку :)
Добавляем справочник (с наименованием например, "Сonstant") и реквизитами "КакЧисло", "КакДата" и т.д.; все строки - предопределенные (имя преопределенной и имя константы - совпадают). Правила работы просты: "одна строка - одна константа". Тогда к псевдо-константам можно будет обращаться "напрямую". Например, к константе "Счетчик_Х"(тип: число) можно обратиться так: Сonstant.Счетчик_Х.Число (где "Сonstant" - наименование справочника; "Счетчик_Х" - предопределенная строка; "КакЧисло" - реквизит справочника)... :) |
|||
86
Aleksey
19.06.17
✎
10:48
|
(84) Вычислять что? мы же говорим про типовую команду ПриУстановкеНовогоНомера, а там чем запрос нам поможет?
|
|||
87
Timon1405
19.06.17
✎
10:49
|
(84) вся соль не в вычислении макс номера запросом, а в его блокировке на запись
|
|||
88
Fedor-1971
19.06.17
✎
10:49
|
(82) т.е. "Надо разные номера ... по шаблону" это не описание прикладной задачи?
|
|||
89
Serg_1960
19.06.17
✎
10:50
|
Тема нумерации навеяло одну смешную тему - Изменение нумерации, обычные формы
|
|||
90
Aleksey
19.06.17
✎
10:50
|
(85) у меня есть похожая реализация, только там еще колонка период. И соответсвенно новый период - новая нумерация.
|
|||
91
mistеr
19.06.17
✎
10:51
|
(88) Нет. "Прикладная" - это значит "что попросил бизнес", его языком. А шаблоны и прочее уже ты придумал.
|
|||
92
Aleksey
19.06.17
✎
10:52
|
(91) почему бизнес не может попросить шаблон?
|
|||
93
Fedor-1971
19.06.17
✎
10:52
|
(91) это попросил бизнес шаблон номера и периодичность его формирования
|
|||
94
Fedor-1971
19.06.17
✎
10:53
|
93+ Реализация: конечный автомат + техника дела для счётчиков
|
|||
95
rabbidX
19.06.17
✎
10:54
|
(87) Установить управляемую блокировку там не проблема, но это уже офтоп, т.к. константы там негде использовать.
|
|||
96
Fedor-1971
19.06.17
✎
10:55
|
(95) маленькая поправка: у ТС константа используется для реализации счётчика
|
|||
97
mistеr
19.06.17
✎
10:55
|
(92) Может, если это бизнес по придумыванию и продаже шаблонов.
(93) И ты не пытался выяснить зачем? |
|||
98
rabbidX
19.06.17
✎
10:56
|
(86) Установить блокировку на таблицу документа в нужном разрезе, посчитать количество записанных доков, сформировать номер.
|
|||
99
vi0
19.06.17
✎
10:59
|
мы наблюдаем активный мозговой штурм на тему "реализация сферического счетчика в вакууме"
|
|||
100
rabbidX
19.06.17
✎
10:59
|
(96) У ТС теоретический вопрос. Уже, вроде, выяснили, что использование констант зависит от того, какой это счетчик. Если счетчик релизов конфигурации или какой-либо другой, не связанный с параллельной записью, то использовать можно.
|
|||
101
Fedor-1971
19.06.17
✎
10:59
|
(97) хотели для разных фирм установить разный шаблон нумерации документов, что бы при наличии на одном столе доков разных фирм номер визуально отличался (там достаточно серьёзные отличия и очень большой перечень шаблонов - для того и конечный автомат по из разбору)
(98) извращенец. т.е. остальные будут курить бамбук, даже если им не нужно устанавливать новый номер? |
|||
102
dmitryds
19.06.17
✎
10:59
|
(0) судя по статье в (2) все ок
Пример Если нужно считать входы и выходы (приход расход), то регистр накопления Если нужно считать количество за период - обороты. Если нужно формировать свой номер - одинаково, что константа, что регистр сведений, что справочник. |
|||
103
Aleksey
19.06.17
✎
10:59
|
(98) и в это время все курят в сторонке, так как поиск номера + запись документа должна быть в рамках одной транзакции. Иначе получим дубли
|
|||
104
rabbidX
19.06.17
✎
11:03
|
(101) (103) Я ж сам уже написал, что это медленная хрень, че пристали?
|
|||
105
Timon1405
19.06.17
✎
11:04
|
(99) а такие штурмы полезны по понедельникам)
и задача похожая на описанные выше с нумерациями вполне реальная, у нас в базе реализовано что-то подобное |
|||
106
vi0
19.06.17
✎
11:05
|
(105) замечал, что чем более сферическая задача, и чем более разрешен вакуум тем больше активность у людей
а вот когда дело дойдет до задачи реального бизнеса..)) |
|||
107
rabbidX
19.06.17
✎
11:07
|
(106) Реальную задачу анализируешь - выходишь на метод решения. Скукота.
|
|||
108
vi0
19.06.17
✎
11:21
|
(107) не, я согласен - ветка полезная
|
|||
109
FIXXXL
19.06.17
✎
11:22
|
реальная задача: сквозная нумерация кучи документов разного типа, счетчик - число, не должно быть задвоений
конечный номер - числовой, не более 9ти цифр |
|||
110
mistеr
19.06.17
✎
11:26
|
(109) Нумераторы как раз для этого.
|
|||
111
senior
19.06.17
✎
11:29
|
(110) опередил))
|
|||
112
senior
19.06.17
✎
11:30
|
Что-то попахивает велосипедом. Уже озвучено зачем нужно реализовать счетчик в этой задаче?
|
|||
113
Radkt
19.06.17
✎
11:40
|
(35) не понятно, Ваше рвение записать все одной строкой,
Что вам мешает в каждой строке писать 1, а потом считать? |
|||
114
lodger
19.06.17
✎
12:16
|
(112) неа, мы тут сферических коней в вакууме измеряем.
|
|||
115
ptiz
19.06.17
✎
12:19
|
(99) Причем параметры как коня, так и вакуума - неизвестны.
|
|||
116
ejikbeznojek
19.06.17
✎
12:29
|
Ну на 8.1 это вполне реальной проблемой было(для меня по крайней мере).
Требовалось генерировать уникальные ШК, для документов. А документы создавались штук по 20-30 в минуту на большом количестве компов. Читал и писал максимальный номер ШК в РС, иногда были блокировки. Пытался переделать на констату, хуже стало в разы. Но я читал, что в 8.2 исправили блокировку константы с блокировки всех констант, на блокировку отдельно взятой константы. Но таких баз на 8.2 и 8.3 у меня нет, и протестить не получилось) |
|||
117
senior
19.06.17
✎
12:33
|
Что-то мне подсказывает, что 1С уже решила подобную проблему: генерация номеров документов
|
|||
118
FIXXXL
19.06.17
✎
14:14
|
(110) нумератор - для номера документа
мне нужен еще один номер, сквозной внутри базы для документов разного типа сам номер документа неподходит, он формируется по своей логике для ШК ЕАН-13 :) |
|||
119
DomovoiAtakue
19.06.17
✎
14:21
|
А завтра еще какой-нибудь счетчик понадобиться и еще один и еще десять и потом по такой же логике еще для какой-нибудь методы десяток констант и так смотришь уже соточка констант назаводили. Куча констант вместо использования других объектов это как в 1с7? Может и не надо было с нее уходить?)))
|
|||
120
Вафель
19.06.17
✎
14:45
|
(116) В 8.1 конечно с константами была полная ж...
|
|||
121
Йохохо
19.06.17
✎
14:52
|
(118) РС и в него Лев(МД5(Док№), 10)
|
|||
122
H A D G E H O G s
19.06.17
✎
14:54
|
весело тут у вас
|
|||
123
Timon1405
19.06.17
✎
14:56
|
(122) атож) интересно послушать эксперта: за счет чего может достигаться (43)
|
|||
124
Вафель
19.06.17
✎
14:57
|
(117) В ДО например не используются платформенные нумераторы. так что 1с ничего не решило еще
|
|||
125
H A D G E H O G s
19.06.17
✎
15:14
|
(123) Эксперт говорит, что задача не имеет валидного решения. Ну, вы не сможете сделать счетчик СУБД с паралельно работающими с ним пользователями. 1С обошло проблему с нумераторами, кэшируя максимальный номер в памяти сервера 1С (и все равно там есть критическая секция на паралельный доступ к памяти) и инкрементируя его каждый раз при УстановитьНовыйНомер(), даже если документ не был записан.
У вас общей памяти для всех пользователей - нет. Смиритесь. |
|||
126
Вафель
19.06.17
✎
15:54
|
(125) это ж с какой скоростью нужно новые номера получать, чтоб такую ошибку увидеть?
|
|||
127
Вафель
19.06.17
✎
15:55
|
Опять же есть блокирующие очереди, где 2 получатель может и подождать
|
|||
128
Serg_1960
19.06.17
✎
16:01
|
(125) А мой "эксперт" говорит, что задача имеет валидное(допустимое) решение :)
Например, вместо создания нумераторов, регистров и т.д. - добавляем в конфигурацию документ "Х" (пустой, совсем пустой, только ради автонумерации, ради использования платформенных плюшек). А когда нужно получить очередной номер - добавляем и записываем документ "Х" - платформа присваивает номер,который мы и используем. В принципе, плодить пустые документы необходимости нет, можно и одним документом обойтись. (продолжаю стёбать) |
|||
129
mistеr
19.06.17
✎
16:11
|
(128) См. (57) :)
Невозможность использовать нумераторы вне контекста нумерации документов это конечно недоработка платформы. |
|||
130
H A D G E H O G s
19.06.17
✎
16:37
|
(128) Хитер :-)
|
|||
131
Serg_1960
19.06.17
✎
21:23
|
(129) А я и не претендую на авторство, боже упаси. Просто Вас "не услышали" и мне пришлось повторить более "развернуто".
"Всё уже написано до нас"(цы) |
|||
132
youalex
19.06.17
✎
22:42
|
(128) Самое главное - в случае этой реализации - нигде ничего не описывать. Ни в комментарии к этому фиктивному документу, ни в справке к нему, ни, не дай бог, во внутренней системе документации. Потому что Н. Незаменимость.
|
|||
133
H A D G E H O G s
19.06.17
✎
23:02
|
(132) Потому что О. Очевидность. К.О. Капитан Очевидность.
|
|||
134
FIXXXL
20.06.17
✎
09:44
|
(128) я пришел к тому же, хотел использовать документ
но рабочий вариант сделал на справочнике, использую Код тут конечно другое "зло" вылазит: создание другого ссылочного объекта в транзакции самого документа (рег.задания не подходят, ШК печатается сразу) но другого пока не придумал |
|||
135
Timon1405
20.06.17
✎
09:52
|
(134) да это норм, в типовых справочник "Ключи аналитики номенклатуры" создается в документах только в путь
|
|||
136
FIXXXL
20.06.17
✎
09:53
|
(135) ну значит я в тренде :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |