|
не могу понять как сделать правильно | ☑ | ||
|---|---|---|---|---|
|
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].ШтрихКод = ШтрихКод; НаборЗаписей = РегистрыСведений.ШтриКодДляОбъекта.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ШтрихКод.Значение = ШтрихКод; НаборЗаписей.Отбор.ШтрихКод.ВидСравнения = ВидСравнения.Равно; НаборЗаписей.Отбор.ШтрихКод.Использование = Истина; НаборЗаписей.Прочитать(); НаборЗаписей.Загрузить(НаборТЗ); НаборЗаписей.Записать(); КонецЕсли; КонецЕсли; |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |