1с не работает с sql 2005
Проблемы работы 1С под MS Vista можно разделить на 2 категории:
- 1 - Работа в файловом варианте базы.
- 2 - Работа с базой в формате MS SQL.
В некторый случаях, дополнительно надо еще установить кодовую страницу для базы на "+Текущая системная установка". Это делается в режиме Конфигуратора:
"Меню - Администрирование - Кодовая страница таблиц ИБ. - "+Текущая системная установка"".
Надо быть осторожным при изменении кодовой страницы, если с базой работают по сети и у клиентов установлены разные версии ОС.
Но если вы установили вашу ОС и не делали с ней никаких изменений в плане настройки безопасности, то даже работая под правами администратора или под логином администратора - вам не так просто будет скопировать файлы в папку System32. Итак, для начала надо с предыдущих версий ОС (например Windows XP или MS Server 2003) переписать вот эти 3 файла:
- sqlsrv32.dll
- sqlsrv32.rll
- odbcbcp.dll
После чего назначаете себе полный доступ на каталог (если такого доступа нет):
Теперь можно смело скопировать 3 ранее подготовленных файла и перезагрузить систему.
Но это еще не все, теперь Вам надо сделать то же самое что вы проделывали с файлом OrdNoChk.prm с 1 пункта, чтобы отключить проверку сортировки в режиме 1С:Предприятие. Выполнив такие изменения можно смело работать с 1С.
по смещению 0018A6DD поменять значение с 75h на EBh (117 на 235) |
И еще одно маленькое замечание по работе с MS Windows Vista, чтобы каждый раз не отвечать на вопросы при установке каких то программ или регистрации DLL-ок лучше сразу отключить контроль учетных записей в панели управления:
В глобальный модуль (процедура ПриНачалеРаботыСистемы()) необходимо добавить код:
Если это не поможет - смотрите другие варианты решения проблемы здесь.
Ошибки при загрузке данных 1С в базе SQL
SQL State: 42000
Message: [Microsoft][ODBC SQL Server Driver][SQL Server] Incorrect syntax near 'HOLDLOCK'. If this is intended as a part of a table hint, A WITH keyword and parenthesis are now required.
Недопустимое состояние транзакции.
Необходимо установить compatibility level 80 (режим совместимости) в свойствах базы данных.
Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия
Порядок сортировки отличается от системного при загрузке базы 1С в формате SQL на WIndows 7
Необходимо допатчить bkend.dll 0018A79D: 75 EB для отключения проверки порядка сортировки либо опять же использовать секретный релиз платформы v77.27.1
Примечание к описанию секретного релиза, добавляем public чтобы не было ошибки: GRANT VIEW SERVER STATE TO public
Попробуйте заменить оригинальную BkEnd.dll на пропатченную Bkend.dll
SQL сервер не существует или доступ запрещен
Вот такая ошибка может появиться на клиентском компьютере при запуске 1С.
Расскажу что нужно проверить и настроить
Если Вы используете SQL Express, то он именуется как ИмяСервера\SQLEXRESS, не забывайте об этом.
Что нужно сделать на сервере:
Зайти в SQL Server Configuration Manager.
В конфигурации сервера и в клиентских протоколах оставить включенным только протокол TCP/IP.
Убедиться в том, что включена не только служба SQL Server, но и SQL Server Browser (Обозреватель SQL Server).
Если не помогает - отключить или проверить Брандмауэр.
В протоколах убрать динамический порт и выставить TCP-порт 1433.
После этого остановить службы и запустить заново.
На клиенте:
Открыть Пуск - Настройка - Панель управления - Администрирование - Источники данных (ODBC) - Системный DSN.
Там добавить SQL Server, ввести имя (например, Client), указать сервер (SERVER\SQLEXPRESS или именованный SQL Server), нажать Далее, в настройке SQL клиента снять флажок "динамически определить порт" и указать порт 1433.
Можно сразу же и проверить доступность сервера:
Все, пробуем запускать 1С еще раз.
Если это не помогло - попробуйте вместо имени сервера (допустим, Server01, если экземпляр не именованный) ввести в параметрах соединения 1С IP, например 192.168.0.2.
Если после этого начались какие-то другие ошибки, значит Вы сделали все правильно :)
Не удалось выделить новую страницу для базы данных
Вот такая ошибка может появиться при выполнении обмена, либо в процессе работы:
Физически увеличить размер файла базы данных также не получится, так как Вы используете, вероятно, SQL Express.
Объем базы данных для версии Express (для 2005 и 2008 SQL Server) не может превышать 4 Гб. 64-разрядная версия 2008 R2 SQL Server позволяет работать с базой до 10 Гб.
Таким образом, необходимо либо обрезать базу, либо использовать другую версию SQL Server. Developer Edition вполне можно приручить для работы нескольких пользователей на Winows XP или другой 32-разрядной системе.
При установке SQL сервера необходимо Выставить режим авторизации "MixedMode" (т.е. Windows+SQL), и указать пароль учетной записи "SA".
Далее нужно подключиться к базе. Вот тут есть небольшая загвостка - по умолчанию подключение возможно только через SharedMemory. Ни по TCP/IP, ни через PIPE подключаться не будет. Для работы 1С этого не достаточно, потому нам необходимо отключить клиентский (не серверный) протокол SharedMemory. Делается это в "SQL Server Configuration Manager". Для проверки можем подключиться "SQL Server Management Studio Express CTP" по остальным протоколам.
Для 25-го релиза 1С:
000D9C4A: 83 EB
000D9C4B: E8 15
000DB0B0: 83 EB
000DB0B1: E8 10
Для 26-го и 27-го релизов 1С:
000D9CCA: 83 EB
000D9CCB: E8 15
000DB130: 83 EB
000DB131: E8 10
В свойствах базы данных на SQL Server ставим Compatibility Level SQL Server 2000(80) , тестируем. Вот и все
При подключении пишет: доступ к базе данных на сервере возможен только из одного каталога информационной базы
Такая ошибка возникает при попытке загрузить версию 1С для SQL после того, как один из пользователей некорректно вышел из системы. В редких случаях эта ошибка может быть результатом некорректной установки конфигурации.
Можно принудительно остановить SQL-процесс можно с помощью SQL Enterprise Manager. В нем все активные процессы перечисленны в ветке “Management\Current Activity\Process Info”. Надо найти в списке справа процесс, который мешает Вам жить, выделить его и в меню “Action” выбрать пункт “Kill Process”
Если пользователи работают по протоколу Named pipes, то можно просто закрыть файлы на SQL-сервере, открытые повисшим пользователем. Такие файлы имеют вид \PIPE\MSSQL$NAMEDSERVER\SQL\query.
Если вышеизложенное слишком сложно для Вас, Вы можете просто перегрузить SQL server. Надо только убедиться, что ни одна другая програма не использует его в этот момент.
Если ошибка возникает постоянно, имеет смысл проверить правильность установки конфигурации: с одной базой данных на сервере пользователи должны работать из одного каталога с конфигурационными файлами. Иначе говоря, не могут одновременно работать две (даже идентичные) конфигурации, размещенные в разных каталогах и ссылающиеся на одну и ту же базу.
Похожие FAQ
3. Также с этой ситуацией пересекается следующая ситуация:
10007066 Запись данных, содержащих колонки типа ХранилищеЗначения
Проблема:
При использовании СУБД MS SQL SERVER при записи объекта базы данных, содержащего несколько колонок типа ХранилищеЗначения, данные для которых получены из файлов, может происходить ошибка
Ошибка СУБД:Microsoft OLE DB Provider for SQL Server: String data length mismatchHRESULT=80004005и аварийное завершение работы программы.
Включив технологический журнал на время загрузки, можно определить таблицу, в которой содержатся такие хранилища. Найдите средствами MS SQL Server Query Analizer в этой таблице колонки типа image. Для каждой колонки типа image выполните запрос вида:
S_elect top 10 DATALENGTH(_Fld4044)
from _InfoReg4038
order by DATALENGTH(_Fld4044) desc
Нюансы: обратите внимание, что ”Стандартные проверки” платформой (chdbfl, в конфигураторе) упорно говорят, что с базой все ОК.
1С:Предприятие 8.2. Лицензия на сервер (x86-64)
По опыту проблема связана с хранением данных в реквизите хранилище значений либо наличием в таблице config двоичных данных БОЛЬШЕ 120 mb.
Обобщенные рекомендации, если рекомендации от 1С не помогли (проделать следующие действия в указанном порядке):
1. Выключить все фоновый задачи у всех баз
В 8.1.11 появился переключатель “запрет на фоновые задания” в
момент создания базы.
Готов пояснить, фоновые задания сами по себе не зло, но регламентные процедуры
с полнотекстовым поиском – вещь в себе – и память она может через какое время
съедать ресурсы rphost.exe, что на другие операции не останеться, и просто
базу блокировать
т.е. другими словами, после первого шага уже можно проверять – возможно проблема “уйдет”.
3) делаем бэкап средствами sql
Делать резервное копирование рекомендую при любых действиях, когда может потребоваться “возврат” к предыдущему состоянию данных
4) снимаем базу с поддержки, выгружаем cf
убиваем в менеджмент консоли базе данных в таблице config запись более 120Мб, делаем “загрузить конфигурацию” (не объединение) убиваем в менеджмент консоли базе данных в таблице config запись более 120Мб, делаем “загрузить конфигурацию” (не объединение)
1. Открыть конфигратор;
2. Снял конфигурацию с поддержки, ПРИ ЭТОМ КОНФИГУРАЦИЮ НЕ СОХРАНЯЛ!
3. Далее Сохранить конфигурацию в файл (не сохраняя измененной конфигурации);
4. В SQL для требуемой базы выполнил следующую команду:
DELETE FROM dbo.Config WHERE DataSize > 125829120
5. Загрузить сохраненную конфигурацию обратно.
можно попробовать и более радикальный шаг здесь:
удаляем (в менеджмент консоли) в базе данных таблицу “config”
D_rop TABLE [dbo].[Config]
5) делаем “загрузить конфигурацию” (не объединение) из cf
после этого проверяем, проблема уходит.
6) Ошибка :"Соединение с сервером баз данных разорвано администратором
Microsoft OLE DB Provider for SQL Server: Неопознанная ошибка
HRESULT=80004005"
Имеем : 1C 8.1.13.41 УПП 1.2.19.21 на MS SQL 2005 SP3 на Win2003 Server Enterprise на компе 4Gb физ. памяти (SQL настроен на Max Memory 2Gb)
Решение в моем случае:
Виндовс по-умолчанию 2Гб берет себе, а 2 отдает нам. SQL почти всю остальную память поедал (в настройках стоит 2Gb) и оставлял для всех остальных только 128Мб физ. памяти(как и положено SQL- он не должен забирать ВСЁ, должен 128 оставить). Ошибка 1С начала проявляться после перехода на релиз 1.2.21.1. Да, действительно, в релизе 1.2.19.1 в файле dbo.Config не было записей больше 120Мб. А вот после обновления на 1.2.21.1 такая запись (примерно 135мб )появляется. При снятии с поддержки запись исчезает сама, и ничего удалять не приходится. При постановке на поддержку -снова появляется. Я так понял, что это и есть конфигурация поставщика.
Если SQL оставляет всего 128, а надо целых 135, то вывод- надо дать рабочим процессам живую физическую память. Moжно урезать SQL. А можно винды. Установив в boot.ini ключ /3GB я тем самым отдал виндам 1Gb, а всему остальному 3Gb, а не 2/2 как по умолчанию. После перезагрузки - все ОК.
3. Также с этой ситуацией пересекается следующая ситуация:
10007066 Запись данных, содержащих колонки типа ХранилищеЗначения
Проблема:
При использовании СУБД MS SQL SERVER при записи объекта базы данных, содержащего несколько колонок типа ХранилищеЗначения, данные для которых получены из файлов, может происходить ошибка
Ошибка СУБД:Microsoft OLE DB Provider for SQL Server: String data length mismatchHRESULT=80004005и аварийное завершение работы программы.
Включив технологический журнал на время загрузки, можно определить таблицу, в которой содержатся такие хранилища. Найдите средствами MS SQL Server Query Analizer в этой таблице колонки типа image. Для каждой колонки типа image выполните запрос вида:
S_elect top 10 DATALENGTH(_Fld4044)
from _InfoReg4038
order by DATALENGTH(_Fld4044) desc
Нюансы: обратите внимание, что ”Стандартные проверки” платформой (chdbfl, в конфигураторе) упорно говорят, что с базой все ОК.
1С:Предприятие 8.2. Лицензия на сервер (x86-64)
По опыту проблема связана с хранением данных в реквизите хранилище значений либо наличием в таблице config двоичных данных БОЛЬШЕ 120 mb.
Обобщенные рекомендации, если рекомендации от 1С не помогли (проделать следующие действия в указанном порядке):
1. Выключить все фоновый задачи у всех баз
В 8.1.11 появился переключатель “запрет на фоновые задания” в
момент создания базы.
Готов пояснить, фоновые задания сами по себе не зло, но регламентные процедуры
с полнотекстовым поиском – вещь в себе – и память она может через какое время
съедать ресурсы rphost.exe, что на другие операции не останеться, и просто
базу блокировать
т.е. другими словами, после первого шага уже можно проверять – возможно проблема “уйдет”.
3) делаем бэкап средствами sql
Делать резервное копирование рекомендую при любых действиях, когда может потребоваться “возврат” к предыдущему состоянию данных
4) снимаем базу с поддержки, выгружаем cf
убиваем в менеджмент консоли базе данных в таблице config запись более 120Мб, делаем “загрузить конфигурацию” (не объединение) убиваем в менеджмент консоли базе данных в таблице config запись более 120Мб, делаем “загрузить конфигурацию” (не объединение)
1. Открыть конфигратор;
2. Снял конфигурацию с поддержки, ПРИ ЭТОМ КОНФИГУРАЦИЮ НЕ СОХРАНЯЛ!
3. Далее Сохранить конфигурацию в файл (не сохраняя измененной конфигурации);
4. В SQL для требуемой базы выполнил следующую команду:
DELETE FROM dbo.Config WHERE DataSize > 125829120
5. Загрузить сохраненную конфигурацию обратно.
можно попробовать и более радикальный шаг здесь:
удаляем (в менеджмент консоли) в базе данных таблицу “config”
D_rop TABLE [dbo].[Config]
5) делаем “загрузить конфигурацию” (не объединение) из cf
после этого проверяем, проблема уходит.
6) Ошибка :"Соединение с сервером баз данных разорвано администратором
Microsoft OLE DB Provider for SQL Server: Неопознанная ошибка
HRESULT=80004005"
Имеем : 1C 8.1.13.41 УПП 1.2.19.21 на MS SQL 2005 SP3 на Win2003 Server Enterprise на компе 4Gb физ. памяти (SQL настроен на Max Memory 2Gb)
Решение в моем случае:
Виндовс по-умолчанию 2Гб берет себе, а 2 отдает нам. SQL почти всю остальную память поедал (в настройках стоит 2Gb) и оставлял для всех остальных только 128Мб физ. памяти(как и положено SQL- он не должен забирать ВСЁ, должен 128 оставить). Ошибка 1С начала проявляться после перехода на релиз 1.2.21.1. Да, действительно, в релизе 1.2.19.1 в файле dbo.Config не было записей больше 120Мб. А вот после обновления на 1.2.21.1 такая запись (примерно 135мб )появляется. При снятии с поддержки запись исчезает сама, и ничего удалять не приходится. При постановке на поддержку -снова появляется. Я так понял, что это и есть конфигурация поставщика.
Если SQL оставляет всего 128, а надо целых 135, то вывод- надо дать рабочим процессам живую физическую память. Moжно урезать SQL. А можно винды. Установив в boot.ini ключ /3GB я тем самым отдал виндам 1Gb, а всему остальному 3Gb, а не 2/2 как по умолчанию. После перезагрузки - все ОК.
Читайте также: