Хочется найти определенную строку в регистре и сразу же записать. При этом никто другой данную строку с помощью этой же функции получить не должен. У регистра 2 измерения: Владелец и СтрокаНомер и куча ресурсов.
Народ, подскажите, плиз, правильно ли я накладываю блокировки? И не будет ли каких косяков при исполнении данного кода?
Запрос =
"ВЫБРАТЬ тарам-там-там
|ИЗ
| РегистрСведений.усСтрокиПриемки КАК усСтрокиПриемки
|ГДЕ тарам-там-там
| И усСтрокиПриемки.СтатусВыполнено = &ПустаяДата
|
|ДЛЯ ИЗМЕНЕНИЯ
| РегистрСведений.усСтрокиПриемки";
Запрос.УстановитьПараметр("ПустаяДата",'00010101');
НачатьТранзакцию();
Результат = Запрос.Выполнить();
ТЗ=Результат.Выгрузить();
Если ТЗ.Количество()>1 Тогда
Предупреждение("Найдено более одного владельца для данного штрихода!");
ЗафиксироватьТранзакцию();
Возврат Неопределено;
ИначеЕсли ТЗ.Количество()=1 Тогда
НабЗаписей=РегистрыСведений.усСтрокиПриемки.СоздатьНаборЗаписей();
НабЗаписей.Отбор.Владелец.Установить(ТЗ[0].Владелец);
НабЗаписей.Отбор.СтрокаНомер.Установить(ТЗ[0].СтрокаНомер);
НабЗаписей.Прочитать();
НабЗаписей[0].СтатусВыполнено=ТекущаяДата();
НабЗаписей.Записать();
ЗафиксироватьТранзакцию();
Возврат НабЗаписей;
Иначе
ЗафиксироватьТранзакцию();
тарам-там-там...
КонецЕсли;