|
не могу понять как сделать правильно |
☑ |
0
BaHgaJI
02.06.15
✎
22:38
|
делаю запись в РС в общем модуле
нз=РС.Добавить();
нз.номер = формированиеНомера(); //измерение
РС.Записать();
в формировании номера выполняются процедуры по проверке на задвоенность в этом же регистре и тд и он возвращает новый номер.
как мне. заблокировать формирование номера чтобы если кто то еще в ту же секунду будет записывать чтобы не выскочила ошибка что такая запись уже есть? блокировки автоматические. Надо как то перенести в передЗаписью? Или как?
|
|
1
BaHgaJI
02.06.15
✎
23:48
|
может не стоит заморачиваться? все равно шанс чтобы номер совпал 0,00000001
|
|
2
18_plus
02.06.15
✎
23:56
|
а номер для чего? для уникальности?
|
|
3
BaHgaJI
02.06.15
✎
23:57
|
ну ваще это не номер, а штрихкод
|
|
4
Вася Чез
03.06.15
✎
07:13
|
(0) поставить управляемые блокировки, сделать что-то вроде
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();
|
|
5
BaHgaJI
03.06.15
✎
08:12
|
(4) блокировки же работают только в транзакции
|
|
6
BaHgaJI
03.06.15
✎
08:20
|
В принципе перенес в передЗаписью, все нормально работает,
но появилась другая проблема как мне вернуть обратно полученный штрихкод. Вот проц передЗаписью:
Если ЭтотОбъект.Количество() >0 тогда
Если ЭтотОбъект[0].ШтрихКод = "" тогда
НаборТЗ = ЭтотОбъект.Выгрузить();
ЭтотОбъект.Удалить(0);
ШтрихКод = УчетШтрихКодов.СформироватьШтрихКод();
НаборТЗ[0].ШтрихКод = ШтрихКод;
НаборЗаписей = РегистрыСведений.ШтриКодДляОбъекта.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ШтрихКод.Значение = ШтрихКод;
НаборЗаписей.Отбор.ШтрихКод.ВидСравнения = ВидСравнения.Равно;
НаборЗаписей.Отбор.ШтрихКод.Использование = Истина;
НаборЗаписей.Прочитать();
НаборЗаписей.Загрузить(НаборТЗ);
НаборЗаписей.Записать();
КонецЕсли;
КонецЕсли;
|
|