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