| 
    
        
     
     | 
    
    
  | 
v7: Загрузка базы в SQL 2012. База данных уже открыта и одновременно к ней может обращаться то | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Birmingem    
     06.11.18 
            ✎
    11:01 
 | 
         
        Обратился заказчик, у него база 1С 7.7 в SQL 2005. 
 
        Выгрузил (выгрузкой 1С), получилось 73 Мб в zip. У меня на работе комп с Win 2012 и SQL 2012. В SQL 2012 есть базы 1С 8.3, так что не хотелось бы ставить SQL 2005. На этом компе в папку 1С 7.7 положил файлы BkEnd.dll и BkEndUtls.dll из Solution7 (так называемый секретный релиз 1С). В SQL 2012 создал базу, совместимость с SQL 2005. 1С к этой базе нормально подключилась. Запустил загрузку данных. Вроде все хорошо, идет загрузка... Но под конец, возможно при переиндексации или при пересчете итогов, выдает сообщение "База данных уже открыта и одновременно к ней может обращаться только один пользователь". В SQL размер загруженной базы 2,8 Гб. Подскажите, как решить?  | 
|||
| 
    1
    
        Карст    
     06.11.18 
            ✎
    11:04 
 | 
         
        не совсем так подсоединил базу , видимо и монопольно зайти не сможешь
 
        либо переподключай к скулю либо ищи развернутый мануал  | 
|||
| 
    2
    
        АгентБезопасной Нацио    
     06.11.18 
            ✎
    11:16 
 | 
         
        в server management studio база не открыта?     
         | 
|||
| 
    3
    
        АгентБезопасной Нацио    
     06.11.18 
            ✎
    11:17 
 | 
         
        кстати, бэкапы 2005 разве в 2012  не восстанавливаются?     
         | 
|||
| 
    4
    
        Birmingem    
     06.11.18 
            ✎
    11:23 
 | 
         
        (2)Что значит не открыта? При загрузке базы server management studio закрыт. После того как вылезла ошибка зашел server management studio, посмотрел базу, состояние обычное не single_user.
 
        (3)Не знаю. На всякий случай сделал именно выгрузку, чтобы в крайнем случае в дбф загрузить. Сейчас как раз, идет загрузка в ДБФ. Это чтобы проверить, не битая ли база.  | 
|||
| 
    5
    
        1Сергей    
     06.11.18 
            ✎
    11:26 
 | 
         
        там надо сделать ряд каких-то действий в sql, чтобы клюшки его поняла
 
        каких уже не помню  | 
|||
| 
    6
    
        Birmingem    
     06.11.18 
            ✎
    11:30 
 | 
         
        Провел эксперимент.
 
        Создал базу SQL, также как в предыдущий раз. Создал новую базу в 1С, подключил в к базе SQL. Потом загрузил только конфигурацию, взятую из выгрузки, сохранил, и вуаля - 1С запустилась! Создал пару элментов справочников, ввел документ, провел, сформировал отчет. Попробовал заходить как монопольно так и не монопольно. Все работает. Т.е. создал новую чистую базу на SQL 2012. Тогда почему же при загрузке из архива выдает ошибку?  | 
|||
| 
    7
    
        Карст    
     06.11.18 
            ✎
    11:32 
 | 
         
        несколько способов приспособить SQL.
 
        - общие реквизиты неограниченной длины должны стоять в конце списка - перед выгрузкой сделать ТиИ  | 
|||
| 
    8
    
        АгентБезопасной Нацио    
     06.11.18 
            ✎
    11:37 
 | 
         
        (4) а в логах по этой базе что?
 
        (7) есть такое. только насколько помню, эти случаи дают другие сообщения об ошибках  | 
|||
| 
    9
    
        Birmingem    
     06.11.18 
            ✎
    11:41 
 | 
         
        (7)Проверил. Общих реквизитов документов нет.
 
        ТиИ пока сделать возможности нет. Рабочая база находится далеко. Как загрузится в ДБФ, попробую из ДБФ выгрузить и снова в SQL загрузить. Настраивал "Секретный релиз платформы v77.27.7" согласно http://catalog.mista.ru/public/82018/ Там только две ДЛЛ в 1С/Бин положить надо и все. (8)В SQL не силен. Как посмотреть лог базы? И на что именно там обращать внимание?  | 
|||
| 
    10
    
        Birmingem    
     06.11.18 
            ✎
    11:43 
 | 
         
        Из 1С подключался к SQL как под SA, так и отдельного пользователя SQL создавал. Результат тот же.     
         | 
|||
| 
    11
    
        АгентБезопасной Нацио    
     06.11.18 
            ✎
    11:47 
 | 
         
        (9) Управление-Журналы SQLServer
 
        ну или натрави профайлер на загружаемую базу, посмотри, что происходит на момент ошибки.  | 
|||
| 
    12
    
        Birmingem    
     06.11.18 
            ✎
    15:18 
 | 
         
        В ДБФ загрузилась нормально     
         | 
|||
| 
    13
    
        ikea    
     06.11.18 
            ✎
    15:26 
 | 
         
        (0) Уже давно бы поставил SQL 2005 и забыл. Но будет еще 3 дня бороться с мельницами.     
         | 
|||
| 
    14
    
        АгентБезопасной Нацио    
     06.11.18 
            ✎
    15:30 
 | 
         
        (12) а что в логах? что говорит товарищ Профайлер?
 
        (13) разводить зоопарк стоит только в экстренных случаях. у него не экстренный. и вообще, "лучше день потерять, а потом за 5 минут долететь!"©  | 
|||
| 
    15
    
        Birmingem    
     06.11.18 
            ✎
    15:37 
 | 
         
        Предпоследняя запись:
 
        Setting database option SINGLE_USER to ON for database MyBase и через 30 минут Setting database option MULTI_USER to ON for database MyBase Больше записей нет.  | 
|||
| 
    16
    
        АгентБезопасной Нацио    
     06.11.18 
            ✎
    15:47 
 | 
         
        посмотреть бы, в мульти он переключился до ошибки, или после...
 
        в общем, натравливай профайлер, запускай загрузку - завтра смотри лог профайлера.  | 
|||
| 
    17
    
        Ёпрст    
     гуру 
    06.11.18 
            ✎
    16:29 
 | 
         
        (0) lck то прибей в каталоге     
         | 
|||
| 
    18
    
        АгентБезопасной Нацио    
     07.11.18 
            ✎
    07:16 
 | 
         
        (17) всего-то? а разве пофигуратор его сам удалить не пробует?     
         | 
|||
| 
    19
    
        Карст    
     07.11.18 
            ✎
    15:02 
 | 
         
        (18) если он каталог с базой копировал - могло остаться , так же как и варианты 1Cv7.$ui ... 1SJOURN.$lk и прочее     
         | 
|||
| 
    20
    
        АгентБезопасной Нацио    
     07.11.18 
            ✎
    15:09 
 | 
         
        (19) могло. но все файлы блокировки, насколько помню, при отваливании от держащего сеанса но при попытке создания блокировки - удаляются...
 
        несколько сумбурно выразился но смысл такой: - если сеанс отвалился от 1SJOURN.$lk - то другой сеанс при первой попытке блокировки попытается удалить файлик.  | 
|||
| 
    21
    
        Ёпрст    
     гуру 
    07.11.18 
            ✎
    15:44 
 | 
         
        (20) неа, при аварийном завершении процесса, lck остается     
         | 
|||
| 
    22
    
        Ёпрст    
     гуру 
    07.11.18 
            ✎
    15:44 
 | 
         
        и 1с-ина его не удаляет     
         | 
|||
| 
    23
    
        1snik_d    
     19.11.18 
            ✎
    11:31 
 | 
         
        Получилось найти решение, такая же проблема?     
         | 
|||
| 
    24
    
        1snik_d    
     19.11.18 
            ✎
    11:33 
 | 
         
        Еще такое же вываливается, если запускаешь восстановление последовательности через Операции - Проведение документов. После проведения некоторого количества документов такое сообщение.     
         | 
|||
| 
    25
    
        Ёпрст    
     гуру 
    19.11.18 
            ✎
    11:39 
 | 
         
        (24) какая версия sql, как дружили , какой режим совместимости ?     
         | 
|||
| 
    26
    
        Ёпрст    
     гуру 
    19.11.18 
            ✎
    11:40 
 | 
         
        если че, версию скуля понижать не надо в настройках sql     
         | 
|||
| 
    27
    
        1snik_d    
     19.11.18 
            ✎
    11:44 
 | 
         
        (25) SQL 2014, секретный релиз, режим совместимости пробовал разный, эффект одинаковый. Сейчас стоит без понижений.     
         | 
|||
| 
    28
    
        MadDAD    
     19.11.18 
            ✎
    12:02 
 | 
         
        (27) Там есть служебный процесс, который считает статистику в фоне. Конфигуратор при восстановлении базы сначала переключает в Single USer, затем восстанавливает данные, потом переключает базу в Multi USer. Затем он пытается снова переключить в Single для пересчета итогов. И в это время запускается служебный процесс, который этому мешает.
 
        Без секретного релиза это решалось патчем BKEND.dll - замена имени таблицы sysprocesses на sysprocesse1 к примеру. И созданием View "sysprocesse1" с отбором только процессов 1СV7. В этом запросе "Select COUNT(*) from master..sysprocesses where dbid=DB_ID('%s')" Как с этим работает секретный релиз - хз. Но можно попробовать то же самое  | 
|||
| 
    29
    
        MadDAD    
     19.11.18 
            ✎
    12:07 
 | 
         
        Вот тут готовое решение - http://forum.ru-board.com/topic.cgi?forum=8&topic=34526&start=20#18     
         | 
|||
| 
    30
    
        1snik_d    
     19.11.18 
            ✎
    13:37 
 | 
         
        (29) Огроменное спасибо за наводку, куда копать. Все получилось, проведение работает теперь, не вываливаается.     
         | 
|||
| 
    31
    
        1snik_d    
     26.11.18 
            ✎
    10:21 
 | 
         
        Недолго музыка играла ((
 
        Вообщем проблема никуда не делась. Может можно как-нибудь заставить сервер не запускать фоновые задания для определенной ИБ.  | 
|||
| 
    32
    
        1snik_d    
     26.11.18 
            ✎
    10:22 
 | 
         
        (31) На время перепроведения документов     
         | 
|||
| 
    33
    
        ADirks    
     26.11.18 
            ✎
    10:40 
 | 
         
        (31) Можно зайти с другой стороны: после запуска 1С выключить монопольный режим
 
        ALTER DATABASE CURRENT SET MULTI_USER я так и сделал :)  | 
|||
| 
    34
    
        1snik_d    
     26.11.18 
            ✎
    10:46 
 | 
         
        (33) А можно поподробнее, а то я делаю так, а SQL ругается 
 
        В настоящий момент невозможно изменить состояние или параметры базы данных "tiscopy". База данных находится в однопользовательском режиме, и в настоящий момент к ней подключен пользователь.  | 
|||
| 
    35
    
        ADirks    
     26.11.18 
            ✎
    11:34 
 | 
         
        (34) Это не в студии надо делать, а внутре 1С. Можно прям при старте системы, можно в обработку запилить.
 
        ЗапросСКЛ = СоздатьОбъект("ODBCRecordSet"); рез = ЗапросСКЛ.Выполнить(" |ALTER DATABASE CURRENT |SET MULTI_USER |"); Если рез <> 1 Тогда Сообщить(ЗапросСКЛ.ПолучитьОписаниеОшибки()); ВЛог("ВосстановлениеГП", ЗапросСКЛ.ПолучитьОписаниеОшибки()); КонецЕсли; Кстати, это как раз из обработки проведения (востановления ГП). Если надо, могу поделиться.  | 
|||
| 
    36
    
        АгентБезопасной Нацио    
     26.11.18 
            ✎
    11:37 
 | 
         
        (35) а что там особенного-то можно придумать? это раньше, на 2000, надо было извращаться с РеконнектНатив...     
         | 
|||
| 
    37
    
        ADirks    
     26.11.18 
            ✎
    11:52 
 | 
         
        (36) да просто чтобы очередной раз велосипед не пилить     
         | 
|||
| 
    38
    
        1snik_d    
     26.11.18 
            ✎
    11:56 
 | 
         
        (35) Так работает перепроведение, не падает. Получается полноценного монопольного режима в таком раскладе не сделать?
 
        Ну т.е. SINGLE_USER на секретном релизе не совсем правильно работает?  | 
|||
| 
    39
    
        Sserj    
     26.11.18 
            ✎
    12:04 
 | 
         
        (9) Там не только 2 dll надо положить. Еще если у ты из 1С подключаешься не с пользователм sa то нужно права на просмотр подключений дать пользователю     
         | 
|||
| 
    40
    
        Sserj    
     26.11.18 
            ✎
    12:05 
 | 
         
        +(39) Вот запрос из мануала Solution7
 
        USE master GO GRANT VIEW SERVER STATE TO <your_login> GO  | 
|||
| 
    41
    
        Sserj    
     26.11.18 
            ✎
    12:08 
 | 
         
        (38) Нужно инструкции перед возникновением проблем читать :)
 
        Вот цитата из ридми Solution7: "..Большинство "специалистов" запускает 1с под учеткой SA (или другой, но с соответствующими суперправами), следовательно, у них такой проблемы не стоит. Зато имеется другая проблема - так называемый фоновый процесс сброса грязных страниц из кэша буфера данных, при выполнении которого, не удается запустить 1с в монопольном режиме..."  | 
|||
| 
    42
    
        1snik_d    
     26.11.18 
            ✎
    12:09 
 | 
         
        (41) Это все было сделано в первую очередь. И учетка отдельная заведена и права даны...     
         | 
|||
| 
    43
    
        1snik_d    
     26.11.18 
            ✎
    12:10 
 | 
         
        (41) Да и проблема в монопольном режиме возникает в 2-х случаях. При пересчете итогов и при перепроведении документов в ТА. А так монопольный режим работает без нареканий.     
         | 
|||
| 
    44
    
        1snik_d    
     26.11.18 
            ✎
    12:11 
 | 
         
        (41) Там куча комментариев к публикации с такой проблемой без решения.     
         | 
|||
| 
    45
    
        ADirks    
     26.11.18 
            ✎
    12:14 
 | 
         
        (38) Похоже, Спок не обе все ситуации излечил. Там 2 таких запроса, и один из них остался без коррекции.
 
        (41) Не помогло. Сильно разбираться неохота было, решил так вот читернуть. Кстати, от этого ещё и дополнительная польза есть. Можно в базе что-нибудь посмотреть, пока проводится.  | 
|||
| 
    46
    
        Sserj    
     26.11.18 
            ✎
    12:15 
 | 
         
        (42)У меня единственная проблема при загрузки базы секретным релизом в SQL2017 были документы без реквизитов шапки (в типовой ТИС это  к примеру КнигаПокупок и КнигаПродаж). Набросай обработку по метаданным и добавить к таким в шапку реквизит любой. Потому как без реквизитов таблицы шапок не создаются и при загрузки на индексировании 1С просто умирала молча.     
         | 
|||
| 
    47
    
        1snik_d    
     26.11.18 
            ✎
    12:27 
 | 
         
        (45) Красава, но вообще читерство - зло ))     
         | 
|||
| 
    48
    
        guest1    
     06.12.18 
            ✎
    17:30 
 | 
         
        Добрый был день.
 
        Тоже переходим с MS SQL 2005 на 2012. Та же проблема - база вываливается при монопольной режиме в ошибку "База данных уже открыта ...". Что было сделано: 1. Из 1с ver.27 выгрузили данные 2. Установили MS SQL 2012 3. В MS SQL создали пользователя userSQL с правами db_owner 4. В MS SQL создали новую базу с владельцем userSQL 5. Удалили BIN 1C 6. Установили по новому 1С, заменили BKEnd.dll на BKEnd0.dll и добавили две новой DLL из Solution 7 Теперь при загрузке данных вылетает данный сабж. Что не так?  | 
|||
| 
    49
    
        guest1    
     06.12.18 
            ✎
    18:35 
 | 
         
        Апну     
         | 
|||
| 
    50
    
        MadDAD    
     07.12.18 
            ✎
    08:14 
 | 
         
        (48) 
 
        1. после того как 1С вылетела с ошибкой, проверить загруженные данные. Например посмотреть в таблицу журнала. Если загрузилось все, то продолжаем дальше 2. Запустить ТиИ с пересчетом итогов. 3. Больше не пользоваться выгрузкой 1С. После выполнения персчетов сравнить регистры и оборотки в предыдущей версии базы и в новой.  | 
|||
| 
    51
    
        ADirks    
     07.12.18 
            ✎
    08:24 
 | 
         
        (48) 1. То что ты пишешь, не имеет никакого отношения к проблеме.
 
        2. Заколебали вы со своим ТиИ. Не надо этого делать по поводу и без.  | 
|||
| 
    52
    
        guest1    
     07.12.18 
            ✎
    08:49 
 | 
         
        Добрый день.
 
        В место выгрузки/загрузки просто развернули архив из MS SQL 2005 в MS SQL 2012. Не запуская 1С, выполнили скрипт DBCC CHECKDB ("имя базы", REPAIR_REBUILD). Как ни странно, 1С поднялась и бодро бегает. Но остался вопрос монопольного режима. Как выше писали - он нужен только для восстановления последовательности (групповое перепроведение) и работа с итогами: открытие периода (если есть компонента Оперативный учет) и полный пересчет бух.итогов. У нас постановление последовательности работает без использования монопольного режима, а работа с итогами - только монопольный режим.  | 
|||
| 
    53
    
        ADirks    
     07.12.18 
            ✎
    08:56 
 | 
         
        (52) Для пересчета итогов регистров в немонопольном режиме есть УстановкаТА.ert или Установка_ТА_2_2.ert. А вот с бухитогами никто не заморочился. Так что
 
        ALTER DATABASE CURRENT SET MULTI_USER  | 
|||
| 
    54
    
        guest1    
     07.12.18 
            ✎
    08:59 
 | 
         
        (51)
 
        Так вроде проблема именно в режиме SINGLE_USER. При монопольном режиме в базу "лезет" sa и вот тут ошибка. Вроде так.  | 
|||
| 
    55
    
        ADirks    
     07.12.18 
            ✎
    09:06 
 | 
         
        (54) проблема в том, что 1С выполняет команды, которые, видите ли, в SQL 2012 посчитали устаревшими, и выпилили их напрочь. Секретный релиз такое исправляет, но как оказалось не всё.
 
        В базу лезет не sa, а тот пользователь, которого указали в настройках "параметры БД SQL".  | 
|||
| 
    56
    
        guest1    
     07.12.18 
            ✎
    09:15 
 | 
         
        (53)
 
        Беда у нас в том, что пересчет бух итогов идет в пакетном режиме раз в неделю ночью. считает около 1,5 часов. Но раз последние MS SQL не моут корректно работать с 1С v7.7 то придется использовать "костыль" ALTER DATABASE CURRENT SET MULTI_USER.  | 
|||
| 
    57
    
        guest1    
     07.12.18 
            ✎
    09:27 
 | 
         
        Кстати, пересчет итогов через конфигуратор вроде идет.
 
        Остался вопрос про открытие периода обработкой УстановкаТА.ert Может есть возможность поделится обработкой?  | 
|||
| 
    58
    
        guest1    
     07.12.18 
            ✎
    09:30 
 | 
         
        А нет, нашел у себя УстановкаТА.ert.     
         | 
|||
| 
    59
    
        ADirks    
     07.12.18 
            ✎
    09:34 
 | 
         
        (58) Регистры с измерениями типа "Неопределено" есть? Если нет, то хорошо. Если есть, то надо модифицированную версию, которая 2.2.
 
        Могу заслать.  | 
|||
| 
    60
    
        guest1    
     07.12.18 
            ✎
    09:36 
 | 
         
        Блин, да, есть такие измерения.     
         | 
|||
| 
    61
    
        guest1    
     07.12.18 
            ✎
    09:41 
 | 
         
        (59) 
 
        Буду благодарен за обработку  | 
|||
| 
    62
    
        ADirks    
     07.12.18 
            ✎
    09:42 
 | 
         
        (61) куда слать то?     
         | 
|||
| 
    63
    
        guest1    
     07.12.18 
            ✎
    09:54 
 | 
         
        1csuper@rambler.ru     
         | 
|||
| 
    64
    
        guest1    
     07.12.18 
            ✎
    09:55 
 | 
         
        Кстати, пересчет итогов через конфигуратор выполнился.     
         | 
|||
| 
    65
    
        guest1    
     07.12.18 
            ✎
    10:08 
 | 
         
        Отправили? (62)     
         | 
|||
| 
    66
    
        ADirks    
     07.12.18 
            ✎
    10:09 
 | 
         
        ушло     
         | 
|||
| 
    67
    
        guest1    
     07.12.18 
            ✎
    10:28 
 | 
         
        Поймал, спасибо.     
         | 
|||
| 
    68
    
        guest1    
     07.12.18 
            ✎
    10:35 
 | 
         
        Получается для того чтобы 1С v7.7 переселить на MS SQL старше 2005 необходимо:
 
        1. развернуть архив, созданный в предыдущем MS SQL, в чистую базу на новом сервере MS SQL. 2. В папке BIN выполнить переименование BKEND.dll на BKEND0.dll и добавить 2 dll из "секретного релиза". На этом все. Что в плюсе - 1с 7.7 продолжает жить на новом серваке Что в минусе - 1с 7.7 теряет все плюшки монопольного режима, кот. заменяются обработками и пакетным режимом для конфигуратора.  | 
|||
| 
    69
    
        ADirks    
     07.12.18 
            ✎
    10:55 
 | 
         
        (68) Как-то так. Но, честно говоря, какие такие плюшки даёт монопольный режим - я прям теряюсь :)
 
        До недавнего времени даже и не знал, что такая проблема имеет место. Как-то не надо было (да и сейчас не особо надо).  | 
|||
| 
    70
    
        guest1    
     07.12.18 
            ✎
    12:19 
 | 
         
        Продолжаем шаманить.
 
        Источник Проблема c 1C 77 под SQL 7.0 SP2 1.Флажки Auto create/update statistics которые ставятся по дефоулту в свойствах базы сняли. 2.Параметр Recovery Interval = 20 Помогло. Начало работать в монопольном режиме перепроведение документов и пересчет итогов без ошибки №924.  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |