Проблема следующая хотел красиво сделать скриптик для бекапов, чтобы людей выкидывало после Н сообщений и выкидывало именно средствами платформы, а не ОС. Создал собственную копию процедурки установления блокировки базы, прописал на наличие определенного доп параметра ее запуск. Подлатал чуток... вроде бы все хорошо. Запустил. Все хорошо. Блокировка прошла, все хорошо. запускаю с заранее заданным паролем. ТОЖЕ все хорошо. А вот снять блокировку не могу. И стандартную процедуру запускал, и свою написал. Благо 3 строки. И стандартная обработка не снимает. Думаю - прибьют завтра бухи. Но слава богу решение нашлось - на задние числа он перебрасывать блокировку не хочет. А на передние, пожалуйста... пока на март 2013 поставил, но для меня все равно ситуация очень удивительная. Прямо сказочная.
<CODE>
Процедура УстановитьБлокировкуСоединенийМягкую(Знач ТекстСообщения = "",
Знач КодРазрешения = "КодРазрешения", ДатаНачала = неопределено, ДатаОкончания = Неопределено) Экспорт
Блокировка = Новый БлокировкаУстановкиСоединений;
Блокировка.Установлена = Истина;
Если ДатаНачала = Неопределено Тогда
Блокировка.Начало = ТекущаяДата()+ УправлениеСоединениямиИБ.ИнтервалОжиданияЗавершенияРаботыПользователей();
иначе
Блокировка.Начало = дата(Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") + " " + ДатаНачала);
КонецЕсли;
Если ДатаОкончания = Неопределено Тогда
иначе
Блокировка.Конец = ДатаОкончания;
КонецЕсли;
Блокировка.КодРазрешения = КодРазрешения;
Блокировка.Сообщение = "Подождите идет резервное копирование!";
УстановитьБлокировкуУстановкиСоединений(Блокировка);
КонецПроцедуры
</CODE>
В Датаначала передаю только время. В датаокончания ничего не передаю пока.
Стандартная разблокировка не работает. После выполнения метода установитьблокировку, там все равно старый режим.
Процедура РазрешитьРаботуПользователей() Экспорт
ТекущийРежим = ПолучитьБлокировкуУстановкиСоединений();
Если ТекущийРежим.Установлена Тогда
НовыйРежим = Новый БлокировкаУстановкиСоединений;
НовыйРежим.Установлена = Ложь;
УстановитьБлокировкуУстановкиСоединений(НовыйРежим);
КонецЕсли;
КонецПроцедуры
Щас запущу тии на всякий случай... может там что сбилось.
(0) а чем типовая не устраивает? вроде работает. там единственный косяк был - код разрешения это "КодРазрешения", или что-то в этом роде )))
в файловой тем более для разблокировки один файл удалить из каталога базы
Типовая установка у нас сразу выгоняет. Я дописал пару строк так чтобы через командную строку передавать параметр времени когда начать блокировку. А вот снять блокировку теперь не могу )))
К сведению принял, не хватило прав на файлик... Спасибо большое, проблема решена.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший