Блокировка констант. Совпадение IDD. #111008


#0 by MOHCTP
Можно ли реализовать в 1С v7.7 блокировку констант? А то из-за большого количества пользователей и документов бывают случаи, когда в момент записи объекта(документа или справочника) значение Константы УникальныйIDD считывается одновременно несколькими пользователями, увеличивается на единицу и поочередно потом записывается этими пользователями одинаковое значение, хотя должно бы увеличиться на количество записанных документов. И это одинаковое значение IDD заносится в несколько документов. Вследствие этого при выгрузке документов МОДом потом выдаются сообщения о совпадении IDD. Или, может, подскажете другой способ решения этой проблемы
#1 by ДенисЧ
#2 by 556
имхо, назначать IDD объектам перед запуском обработки выгрузки. правда придется это делать монопольно, дабы избежать блокировки самих объектов
#3 by MOHCTP
ДенисЧ: такая конструкция сейчас и используется но все равно возникают ситуации, описанные мной 556: я подумаю над этим :) правда, монопольно это не получится, так как выгрузки делаются постоянно в течение рабочего дня.
#4 by 556
ещё вариант. увеличить длину IDD на 36 символов и при записи добавлять в конец GUID :)
#5 by КонецЦикла
Странная постановка задачи....... ничего не понял
#6 by MOHCTP
Заблокировать константу хочу. :) Для записи и для чтения.
#7 by 427
константы создаются в конфигураторе и в режиме Предприятие характеристики константы изменить нельзя (только значение)... Использование константы как некоего счетчика для создания своей уникальной последовательности не есть гуд. Скорее всего некорректная постановка задачи и ее реализация кривыми ногами... Вообще то в рамках 7.7 возможно возложение задачи ведения уникального ИДД на систему - ну так и надо пользоваться этой возможностью системы...
#8 by Добрый
+ каждый объект и так имеет уникальный ИД
#9 by 556
ещё вариант. Заведи ещё консатанту глУникальныйIDDЗаблокирована и вероятность совпадения IDD уменьшится в два раза :))
#10 by 556
А если серьёзно, то почему бы не использовать GUID?
#11 by MOHCTP
Такой способ использования Константы как счетчика реализован в МОДе (менеджер обмена данными). И чтобы не менять кучу кода во всех конфигурациях, как один из способов - блокировать эту константу.
#12 by spock
2Ты случаем в транзакции не создаешь документы?
#13 by MOHCTP
и какая же эта возможность? подскажи
#14 by MOHCTP
про такое я тоже думал :)
#15 by MOHCTP
и как его в 1С достать?
#16 by MOHCTP
нет она только на оператор изменения константы выполняется
#17 by 556
>>Вследствие этого при выгрузке документов МОДом потом выдаются сообщения о совпадении IDD. имхо, может вместо выдачи сообщений, новые IDD назначать?
#19 by 427
ты ошибаешься... внешне в МОДе похоже, но используется хитрее. Просто ты не допер до всего...
#20 by 556
нравятся мне твои посты. озадачишь и молчишь :). что дальше-то?
#21 by 427
бери МОД и думай... я оттуда эту технологию сфздл и модернизировав, использую...
#22 by MOHCTP
можно буджет попробовать спасибо за совет :)
#23 by MOHCTP
используется хитрее, но суть та же просто не хотел усложнять здесь код, так как ничего это не изменит
#24 by MOHCTP
так не получается насколько я понял, _IdToStr переводит десятичное значение в шестнадцатиричное. А сама переменная Объект не имеет такого представления. Может, конечно, я не совсем понял твою мысль или что-то не так сделал.
#25 by MOHCTP
не совсем представляю, как это сделать:) Идентификаторы строк в каждой таблице - свой. Поэтому они могут совпадать между разными таблицами. Это так, к слову. Может, ты не их имел ввиду. :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С