• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

V7.7 Блокировка

  • Автор темы Anatoly1987
  • Дата начала
A

Anatoly1987

Ребята проблема такая. Точнее надо вот что:

Выполняются у меня вычисления (неважно какие, потом после завершения этих вычислений, сразу вводиться и проводиться ряд документов), так вот, что надо сделать чтобы на этот момент никто не смог вмешаться, т.е. сделать блокирование на проведение (мне важно чтобы они немогли только проводить) со стороны других абонентов?
 
P

puh14

док.Блокировка(1);

если надо проверить заблокировано ли - док.Блокировка()
 
P

puh14

Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Цикл
Попытка
Док.Блокировка(1);
Исключение
Конецпопытки;
КонецЦикла;
 
A

Anatoly1987

Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Цикл
Попытка
Док.Блокировка(1);
Исключение
Конецпопытки;
КонецЦикла;

А попроще не получиться никак? Я заметил что:

Док = СоздатьОбъект("Документ");
Док.Блокировка(1);

1с на такое не ругается, правда я не пробовал со стороны других абонентов что происходит.

И потом все документы заблокировал, а если они (другие абоненты) создадут новый (который они создадут после выработки этого алгоритма) и проведение будет доступно получаеться, так?
 
U

unknown181538

Может попробовать транзакции?
Вот некоторая инфа. Я так понял, таблицы тех документов которые ты будешь проводить, сами заблокируются.
 

Вложения

  • blokirovki.pdf
    87,4 КБ · Просмотры: 185
V

vbs

Не слишком ли это будет долго - блокировать ВСЕ документы в базе ?
Может, лучше управлять транзакцией ?
 
A

Anatoly1987

Может попробовать транзакции?
Вот некоторая инфа. Я так понял, таблицы тех документов которые ты будешь проводить, сами заблокируются.

Да их на момент вычислений и не существует. Потом я сделал так чтобы они были доступны только на просмотр. Да и файлик нельзя ли куда-нить залить? Я не могу скачать. Заранее спасибо.
 
P

puh14

а как насчет варианта тупо зайти монопольно? ;-)

я с транзакциями не работал - но походу это самый правильный путь.
 
A

Anatoly1987

Кого не существует?

Документы которые я проводить буду.

я с транзакциями не работал - но походу это самый правильный путь.

Это должно быть в обыкновенном рабочем режиме!

unknown181538 т.е. мне тепрь надо:

Попытка
НачатьТранзакцию();

........

ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();

КонецПопытки;


Так?
 
U

unknown181538

Вроде так. Только я сам не работал с ними)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!