Имя: Пароль:
1C
1С v8
База данных заблокирована
, ,
0 Mukrob
 
09.07.19
13:04
Подскажите куда еще можно покопать..

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

до этой ошибки все работало корректно, ну разве еще что кэш сервера не чистил.
1 Mukrob
 
09.07.19
13:04
(0) толстый клиент, база на mysql
2 shuhard
 
09.07.19
13:05
(1)[mysql]
не верю (с)
3 piter3
 
09.07.19
13:05
(1) врете
4 Mukrob
 
09.07.19
13:05
(3) с чего вдруг?
5 piter3
 
09.07.19
13:06
(4) Потому что нельзя на mysql
6 Mukrob
 
09.07.19
13:06
(5) а на чем можно?
7 Mukrob
 
09.07.19
13:08
(5) ms sql server? ;-)
8 DrWatson
 
09.07.19
13:10
Как вариант, у пользователя встаёт монопольный режим.
9 Mukrob
 
09.07.19
13:30
(8) как он может вставать? локально на сервере запускаю тоже самое, разве где-то в УФ можно запустить монопольный режим?
10 Мимохожий Однако
 
09.07.19
13:42
(9) ты подробнее пиши. Какая конфигурация, платформа, какие права у пользователя, какой SQL. Желательно не врать и не путать.
11 shuhard
 
09.07.19
13:47
(9) и картинку приложи, нужны детали
12 Здравый_смысл
 
09.07.19
13:47
Ищите в конфе УстановитьМонопольныйРежим(Истина) при запуске.
13 Фрэнки
 
09.07.19
13:49
может это РМК какой-то самопальное?
14 Йохохо
 
09.07.19
13:49
или ключ в ярлыке
15 Mukrob
 
09.07.19
13:50
(12) нашел ага, переустановкаграницыитогов ссылается на эту функцию, при запуске устанавилвает монопольный режим. наверно дальше разберусь.
16 Здравый_смысл
 
09.07.19
13:53
Я это в ТКПТ от "Раруса" видел в гениальном куске говнокода.
17 Mukrob
 
09.07.19
14:09
(16)
  ДеньМесяцаНачалаНапоминания = 5;
    ДеньМесяцаБезусловногоПересчета = 10;

    ТекущийДеньМесяца = День(ТекущаяДата());    
    НадоПересчитывать = Истина;

    Если ТекущийДеньМесяца<ДеньМесяцаНачалаНапоминания Тогда
        НадоПересчитывать = Ложь;
    Иначе
        Если ТекущийДеньМесяца<ДеньМесяцаБезусловногоПересчета Тогда
            ЕстьПользователиВБазе = Ложь;
            Попытка
                УстановитьМонопольныйРежим(Истина);
            Исключение
                ЕстьПользователиВБазе = Истина;
            КонецПопытки;
            Если Не ЕстьПользователиВБазе Тогда
                УстановитьМонопольныйРежим(Ложь);
            КонецЕсли;
            НадоПересчитывать = Не ЕстьПользователиВБазе;
        Иначе
            НадоПересчитывать = Истина;
        КонецЕсли;
    КонецЕсли;

    Если Не НадоПересчитывать Тогда
        Возврат;
    КонецЕсли;
    
    ПредпочтительнаяДатаРасчетаИтогов = НачалоМесяца(ТекущаяДата())-1;
    СписокРегистровКРассчету = Новый Массив;
    Для Каждого Регистр ИЗ РегистрыНакопления Цикл                              
        МетаданныеРегистра = Метаданные.НайтиПоТипу(Тип(Регистр));
        Если МетаданныеРегистра.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда
            Если ПравоДоступа("УправлениеИтогами", МетаданныеРегистра) Тогда
                Если Регистр.ПолучитьПериодРассчитанныхИтогов()<ПредпочтительнаяДатаРасчетаИтогов  Тогда
                    СписокРегистровКРассчету.Добавить(МетаданныеРегистра.ПолноеИмя());
                КонецЕсли;
            КонецЕсли;            
        КонецЕсли;
    КонецЦикла;    
    Для Каждого Регистр ИЗ РегистрыБухгалтерии Цикл                              
        МетаданныеРегистра = Метаданные.НайтиПоТипу(Тип(Регистр));
        Если ПравоДоступа("УправлениеИтогами", МетаданныеРегистра) Тогда
            Если Регистр.ПолучитьПериодРассчитанныхИтогов()<ПредпочтительнаяДатаРасчетаИтогов  Тогда
                СписокРегистровКРассчету.Добавить(МетаданныеРегистра.ПолноеИмя());
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;

    Если СписокРегистровКРассчету.Количество()=0 Тогда
        УстановитьМонопольныйРежим(Ложь);

        Возврат;
    КонецЕсли;

    Если Вопрос("Для повышения производительности рекомендуется выполнить"+Символы.ПС+
                "расчет итогов регистров по "+Формат(ПредпочтительнаяДатаРасчетаИтогов, "ДФ=дд.ММ.гггг" )+". Выполнить его сейчас?",
            РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет) = КодВозвратаДиалога.Нет Тогда
            Возврат;
    КонецЕсли;
    СписокРассчитанных = ПолныеПрава.ВыполнитьУстановкуПериодаИтогов(СписокРегистровКРассчету, ПредпочтительнаяДатаРасчетаИтогов);
    Для Каждого РегистрИзСписка ИЗ СписокРассчитанных Цикл
        Сообщить("Итоги регистра" + РегистрИзСписка + " были рассчитаны по: "+Формат(ПредпочтительнаяДатаРасчетаИтогов, "ДФ=дд.ММ.гггг" ));
    КонецЦикла;


-----------
вот он гениальный код, видно что монопольный доступ устанавливает, но не снимает.
18 Mukrob
 
09.07.19
14:10
(17)
добавил    
    Если СписокРегистровКРассчету.Количество()=0 Тогда
        УстановитьМонопольныйРежим(Ложь);

        Возврат;
    КонецЕсли;