#0
by Timon1405
Есть рекомендация от 1С не делать сабж, использовать для этих целей регистры сведений. Правильно ли я понимаю, что так как нынче константы хранятся в отдельных таблицах, рекомендацию можно считать устаревшей?
#0
by Timon1405
Есть рекомендация от 1С не делать сабж, использовать для этих целей регистры сведений. Правильно ли я понимаю, что так как нынче константы хранятся в отдельных таблицах, рекомендацию можно считать устаревшей?
#1
by Aleksey
Если этот код написать в модуле проведения документов, то у вас ни один документ не сможет проводиться параллельно, даже если документы никак не пересекаются по данным. Для них узким место будет запись константы, т.к. параллельно изменить одни и те же данные нельзя.
#3
by Timon1405
а в чем будет отличие, если использовать для счетчика РС, его что можно будет записать параллельно? РСМенеджер.СчетчикДокументов.записать
#5
by Юрий Лазаренко
Все верно, но есть нюансы - версию конфигурации записывают крайне редко и чаще всего в монопольном режиме. А в остальное время ее только читают.
#12
by dezss
так в том-то и дело, что в этой таблице хранится только одно значение, это значение этой конкретнойконстанты.
#13
by sFAQer
Что это меняет в данном случае? У тебя каждая новая запись счётчика в свою контанту? Нет, а значит таблица константы (конкретной) всегда будет одна.
#15
by Timon1405
бинго! так в чем отличие блокировать строку в РС и блокировать таблицу из одной строки?
#16
by sFAQer
В том что каждый док будет создавать НОВУЮ строку со счётчиком, а в константе МЕНЯТЬ ту единственную.
#17
by Fedor-1971
чисто теоретический вопрос. Общую задачу обрисуй? Во времени. В общем и целом блокировка таблицы (любой) по времени больше чем блокировка одной записи.
#20
by Aleksey
У таблица Конст2548 у ней 1 строка со значением константы Есть таблица РегСв2548 у ней 1 строка с несколькими колонками Почему блокировка записи в таблицы Регсв по времени меньше чем блокировка в таблице Конст2548?
#21
by sFAQer
Вопрос не во времени, а в паралельности, в РС можно паралельно 3 строчки писать, а паралельно менять 1 строчку константы нельзя...
#23
by Timon1405
извините, похоже, вы не в теме. просто так создавать новую строку нельзя, чтобы счетчик был валидным, все равно нужно блокировать строку с максимальным прошлым счетчиком на запись.
#24
by Fedor-1971
чего? что время затрачиваемое на блокировку таблицы (для каждой константы выделена отдельная таблица) больше, чем установка признака "Блокирована" на строку в РС? потому что блокировка таблицы проставляет признаки в нескольких местах (на таблицу и на каждую запись в ней), а блокировка записи проставляет одну блокировку записи Мы не знаем исходной задачи, потому теоретически Счётчик - изменение одной строки в РС несколькими документами
#27
by Aleksey
Например? У нас глобальный счетчик к примеру IDD. При записи любого нового объекта мы его инкрементируем. У нас 2 варианта хранения. В отдельной таблице Конст2548 или в отдельной таблице РегСв2548. В чём разница?
#29
by sFAQer
С какого перепугу её нужно блокировать если ты не собрался инструкций UPDATE запуливать? С какой стати не обновляемая строка потеряет валидность и её нужно блокировать?
#30
by Aleksey
Если у нас 3 значения, то у нас будет 3 константы (3 отдельных таблице) против 1 таблице с 3-мя строками
#33
by mistеr
У нас три варианта. Для счетчиков в 1С предусмотрели последовательности. Если счетчик щелкает постоянною. Нужно использовать последовательности. Там все оптимизировано в том числе и по блокировкам.
#35
by Timon1405
а как вы себе представляете процесс инкремента счетчика? допустим последняя запись равна idd=255, проводятся одновременно 3 документа, они без проблем считывают макс значение счетчика(RCSI), и инкременируют его одновременно на 1 и все запишут 256 так что ли?
#37
by Fedor-1971
вот какой вредный. Разница: 1. константа - блокируем таблицу, блокируем каждую строку в таблице 2. рс - блокируем одну строку. (тут вклинивается поиск строки, но, он не сравним с блокировкой)
#38
by YFedor
Так в таблице всего одна строка, неужели поиск в РС будет намного быстрее блокировки таблицы с одной строкой?
#39
by Aleksey
и? Т.е. блокировка таблицы занимает условно 2,5 сек,а блокировка строки в таблице занимает условно 2.5 наносек?
#40
by Aleksey
Таблица полностью идентичны. Это отдельная таблица в которой всего 1 колонка и 1 строка. Разница только в названии таблицы
#41
by YFedor
А зачем вообще этот счетчик нужен? может использовать РС, Константу и регламентное задание?
#42
by sFAQer
Шансов на это мало, но так или иначе ты можешь поставить блокировку на значение 256, отловить её в других доках и инкрементировать ещё на единичку... Поиск по индексу, конечно быстрее блокировки
#43
by Fedor-1971
по времени разница примерно в 0.5 (+/-)сек для MS SQL специально замером смотрел, была примерно похожая задача. После перехода на РС проведение доков ускорилось
#44
by YFedor
Шансов как раз море, если пользователей много ибо у него сквозная нумерация всех объектов: справочники, документы
#46
by DrZombi
Пока проводятся документ, все курят бамбук, что бы записать константу. ... Думается 1С с константами опять намудрила :)
#49
by dezss
Шансов много. А блокировка на значение не будет отрабатывать быстрей, чем запись константы, хотя если таких коллизий будет не много, то определенно работать будет быстрей.
#51
by Fedor-1971
Периодический РС - ни разу не счётчик т.к. добавляет записи и приходим к вопросам "А которая из них последняя" и "Сколько времени займёт её найти". Много пользователей получают данные без проблем и запишут свои новые значения (90% - одинаковые) - в результате каша, а не счётчик.
#52
by rabbidX
В оперативном режиме нумеровать документы - бред. Какой бы механизм Вы не выбрали, при интенсивной работе с базой будет все тупить жутко. Лучше пересчитывайте доки регламентным заданием ночью. Дабавьте общий реквизит "Посчитали" для всех доков. В регламентном выбирайте все доки, где Посчитали = Ложь, меняйте значение реквизита на Истину и перезаписывайте константу.
#55
by Fedor-1971
Ага, выдали счёт № ХХХХ, ночью что-то пожужжало и получили номер YYYY. И как с клиентом разговаривать? И? в пример очень показательный. Как ни странно, но виртуальная таблица для построения требует времени.
#56
by rabbidX
С РС нужно после перед чтением еще управляемую блокировку включать, потом выключать. Беспонтово.
#58
by Timon1405
>>После перехода на РС проведение доков ускорилось И текущая строка РС счетчика при этом блокировались на запись? или просто "перешли на РС, считываем последнее idd и надеемся как в на то что, "вероятность файр резиста крайне мала" коллеги, вопрос скорее теоретический, интересно насколько рекомендации сходятся с примерами из реальной жизни
#60
by rabbidX
Так счетчик же нужен, а не нумератор. Нумератор в коробке стандартный есть, по нему количество доков не определишь, коллизии там, вся фигня. Да и не факт, что помимо счетчика не нужно обычной нумерации для каждого типа документов.
#64
by Fedor-1971
у меня была задача реализовать нумерацию документов по разным фирмам с различной периодичностью (день, месяц, год) с возможностью динамически влиять на оную. Типа шаблона номера документов, вот там счётчик и понадобился. Например, для подсчёта входов-выходов сотрудника за день, неделю, месяц и т.д.
#65
by Timon1405
Константы Не рекомендуется использовать константы для хранения постоянно меняющихся данных. Это приведет к возникновению избыточных блокировок и снижению общей производительности системы. Для хранения таких данных можно использовать другие объекты метаданных "1С:Предприятия" (справочники, регистры и т. д.). Константы предназначены для хранения настроек, которые могут часто считываться, но не должны часто изменяться. Значения всех констант хранятся в одном ресурсе. Это означает, что при блокировке одной константы будут заблокированы все константы. Очевидно, что информация устаревшая!
#66
by sFAQer
В ДО например нумераторы реализованы черзе РС "Нумерация" Там тоже счётчики. Только там строка обновляется, и т.к разрезов у РСа достаточно много, в колизии не впадает...
#69
by rabbidX
в и далее по ветке говорили про счетчик документов. Если задача считать сотрудников или еще кого-то, то нам нужно измерение, которого у константы нету и вопрос об ее использовании отпадает.
#72
by Вафель
документы считать лучше вообще при формировании отчета. Явно что этот отчет не такая частая функция
#74
by rabbidX
Ну смотрите, постоянно меняющиеся данные, общие для всей базы - это какие-нибудь суммируемые показатели, которые в явном виде хранить не нужно, проще посчитать. Если логика работы со значением, не предполагает его параллельного изменения, пользуйтесь константами, сколько влезет.
#75
by Aleksey
А что там непонятно. Управленческая база, нужна своя нумерация в разрезе юрлиц, но при этом учет ведется по компании в целом Вариант 1, мы меняем типовой номер в документах в зависимости от признака (ну например от юрлица). Т.е. меняем типовой код и периодичность. Вариант 2. Типовой номер не трогаем, а реализуем свою нумерацию, т.е. без изменения типовой в рамках подписки на событие (или в рамках расширения)
#76
by Aleksey
Что значит проще посчитать? Например нужен инкрементный счетчик для обмена, или свой уникальный номер справочников и документов
#77
by Fedor-1971
Да без проблем: необходимо реализовать нумерацию документов (для разных фирм своя периодичность формирования номера, вида: ГГГГ БН где ГГГГ - номер в пределах года, Б - установленная баква для данного вида документа, Н - количество счетов в пределах данной буквы). Номера задаются шаблоном номера в справочнике фирм. Периодичность,на выбор, в пределах года, месяца, дня. Реализовал конечный автомат разбора шаблона номера и 3 РС со счётчиками по фирмам и периодичности (3 возможных периода). Рассматривал возможность использовать константу для каждого периода, не получилось, слишком медленно.
#79
by rabbidX
ПриУстановкеНовогоНомера не пробовали использовать? Можно же без лишних объектов было обойтись.
#80
by Aleksey
а как он поможет? Например типовая нумерация документа в течении года. Мне нужно реализовать нумерацию в течении месяца/дня. И чем мне поможет при установки нового номера?
#83
by Fedor-1971
нельзя. С одной стороны раные шаблоны: у одной фирмы шаблон "ГГГГ БН" у другой "ДДММГГ-ВВ" где ВВ - номер в пределах дня. С другой: если одновременно записывают 2 человека документы тупо получат одинаковый номер без наличия счётчика.
#85
by Serg_1960
Как говаривал незабвенный наш гений: "Мой гений дарит вам..."(цы) Цель не скрываю: сбить с толку :) Добавляем справочник (с наименованием например, "Сonstant") и реквизитами "КакЧисло", "КакДата" и т.д.; все строки - предопределенные (имя преопределенной и имя константы - совпадают). Правила работы просты: "одна строка - одна константа". Тогда к псевдо-константам можно будет обращаться "напрямую". Например, к константе "Счетчик_Х"(тип: число) можно обратиться так: Сonstant.Счетчик_Х.Число (где "Сonstant" - наименование справочника; "Счетчик_Х" - предопределенная строка; "КакЧисло" - реквизит справочника)... :)
#86
by Aleksey
Вычислять что? мы же говорим про типовую команду ПриУстановкеНовогоНомера, а там чем запрос нам поможет?
#90
by Aleksey
у меня есть похожая реализация, только там еще колонка период. И соответсвенно новый период - новая нумерация.
#91
by mistеr
Нет. "Прикладная" - это значит "что попросил бизнес", его языком. А шаблоны и прочее уже ты придумал.
#95
by rabbidX
Установить управляемую блокировку там не проблема, но это уже офтоп, т.к. константы там негде использовать.
#97
by mistеr
Может, если это бизнес по придумыванию и продаже шаблонов. И ты не пытался выяснить зачем?
#98
by rabbidX
Установить блокировку на таблицу документа в нужном разрезе, посчитать количество записанных доков, сформировать номер.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Регистр сведений 1с
- Использование пиратского обеспечения на заграничных дата центрах.Ответственность
- Переход БП2 на бП 3 в РИБ очередная трабла. Как обойти.
- Передача переменных из одной процедуры в другую.
- Детализация платежей при загрузке в УТ 11.3.3
- Разобрать csv файл
- Mysql 5.7 portable и delphi.
- Убрать колонку ресурса СКД из заголовка
- Атол 25 После установки нового Фронтола 5_16 требует драйвер 8_15
- Перегрузка остатков из БП 3.0 в УТ 11.3
- Подключение АМС 100Ф к УТ 10.3
- сканер YJM-BT500 с планшетом на андроиде 4.4.2?
- УПП РАУЗ 28 счет (брак в производстве) формирует странные проводки
- ЗУП 2.5. Табель. Начисление вечерних, ночных, выходных, праздничных...
- УТ 11 базовая. Где внешние печатные формы?
- Не стартует ragent при запуске сервера 1с под linux
- Документы движения товара УТ 11.3
- Ошибка СУБД: 42601: ERROR: syntax error at or near "not"
- Выбор номенклатуры в отборе СКД только Товары
- Кратность упаковкам при отгрузке (УТ 11.3)