Данный вариант программы не может работать с sql базой

Настраиваем 1С Предприятие 7.7 для работы с SQL Server 2000

Одним из способов повысить быстродействие 1С Предприятия 7.7, особенно при работе с большими базами, является переход от файлового режима 1С к использованию SQL сервера. Несмотря на то, что оба продукта уже заканчивают свой жизненный цикл, данная тема остается довольно актуальной. В данной статье мы рассмотрим практическую настройку сервера для работы 1С Предприятия совместно с SQL Server 2000.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Немного теории, или что нам дает SQL?

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

Уроки SQL для начинающих / #1 — Что такое SQL? Установка локального сервера

Рассмотрим работу 1С в режиме разделения файлов. Вся обработка информации производится на рабочей станции, сервер играет роль общего файлового хранилища. Основные требования к такому серверу: быстрый жесткий диск и отказоустойчивость дисковой системы (обычно реализуется RAID 1, реже RAID 10). Обычно такой «сервер» представляет из себя обычную бюджетную машину с RAID контроллером и гигабитным сетевым адаптером.

При выполнении операции (отчета, обработки и т.п.) часть базы или даже вся база закачивается по сети на рабочую станцию, где уже и выполняется вся необходимая обработка данных. От чего зависит быстродействие в данном случае? В первую очередь от мощности рабочей станции и пропускной способности сети, более мощная машина будет более быстро строить отчеты и выполнять проводки.

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

Наш практический опыт показывает: для небольших рабочих групп (5-10 пользователей) критический размер базы начинается от 200-300 Мб. Бороться с этим можно увеличением быстродействия сети и оптимизацией потоков трафика в организации или ежегодной (ежеквартальной) сверткой БД.

Однако свертка это не выход, для нормальной работы торгового предприятия необходимы данные как минимум за текущий год, да и данные прошлых периодов также бывают частенько нужны. Вложения в расширение пропускной способности сети себя как правило не окупают, размеры БД и объемы трафика в сети растут намного быстрее, особенно если руководство решит «немного» расшириться, на 1-2 рабочих места.

Как найти и запустить экземпляр SQL Server

Теперь посмотрим как обстоят дела в SQL варианте. Вместо таблиц все данные хранятся в одной SQL базе данных. Теперь рабочая станция передает на сервер короткие запросы, которые полностью обрабатываются на стороне сервера и рабочей станции возвращается конечный результат запроса. Это позволяет снизить трафик в разы и во столько же раз повышает нагрузку на сервер. К быстродействию рабочих станций особых требований не предъявляется, также будет вполне достаточно обычной 100 Мб сети.

Хотя следует помнить, что 1С Предприятие 7.7 для SQL довольно неоптимально и не использует многие возможности SQL сервера, поэтому часть данных обрабатываются не сервером, а рабочей станцией и в случае работы с емкими отчетами и обработками быстродействие рабочей станции тоже будет играть не последнюю роль. Основная же нагрузка ложится на сервер.

Распространенная ошибка — использование в качестве SQL сервера того же железа, что использовалось в качестве файлового сервера. Можно с уверенностью сказать, что результат будет противоположен ожидаемому. Если сразу пять пользователей запустят формирование отчетов, все эти пять отчетов будут формироваться сервером, следовательно вычислительных ресурсов сервера должно хватать для одновременной обработки запросов сразу от всех пользователей. Объем оперативной памяти должен быть достаточным для того, чтобы в нем полностью помещались SQL базы, также базы желательно вынести на отдельный от системы и других данных жесткий диск (дисковый массив), чтобы избежать конкуренции за доступ к головкам жесткого диска.

Читайте также:
Программа чтобы компьютер отключался

В случае совмещения SQL сервера с сервером терминалов на одной физической машине следует удостовериться, что ее ресуров достаточно для одновременной обработки запросов SQL сервера и клиентских приложений 1С, а оперативной памяти достаточно как для SQL сервера, так и для пользовательских приложений. В любом случае желательно ограничится выносом в терминал только 1С, прочие приложения желательно оставить на рабочих станциях, либо разнести сервер терминалов и SQL сервер по отдельным машинам. Также нежелательно совмещать на одном SQL сервере несколько объемных 1С баз. Как показывает практика, бывает дешевле купить под вторую базу отдельный сервер, чем покупать мощный сервер сразу под все базы.

Подведем краткие итоги. Основные преимущества SQL сервера раскрываются при работе с базами большого объема, в тоже время нет никакого смысла переводить на SQL небольшие базы с малым количеством пользователей.

От теории к практике. Установка SQL сервера.

Установка MS SQL Server 2000 проста и незамысловата, однако уже на стадии установки необходимо указать несколько отличных от установки по умолчанию параметров, необходимых для нормальной работы 1С. Платформой для установки сервера будет Windows Server 2003 SP2. Если вы устанавливаете версию SQL сервера с пакетом обновления ниже чем SP3, то система выведет вам грозное предупреждение, что устанавливаемая версия несовместима с системой, которое можно смело проигнорировать, практика показала — все работает прекрасно.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-17-30.png

Далее, в процессе установке принимаем все значения по умолчанию пока не дойдем до экрана Services Accounts, здесь устанавливаем переключатель в положение Use the Local System account

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-21-07-19.png

На следующем экране выбираем вариант Mixed Mode и вводим пароль для пользователя sa, от имени которого мы будем подключаться к БД.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-34-20.png

Остальные параметры оставляем по умолчанию. По завершению установки желательно обновить SQL сервер до последней версии, установив SP4 (скачать). Установка SP4 производится со значениями по умолчанию, кроме параметров соединения с сервером, здесь переводим переключатель в верхнее положение и вводим пароль для sa.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-37-14.png

После установки SP4 обязательно требуется установить исправление KB899761 (скачать) исправляющее медленную работу и неполную загрузку памяти SQL сервером. При установке исправления также необходимо указать авторизацию через sa с вводом пароля.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-22-33-41.png

Настройка 1С Предприятие

Теперь, когда SQL сервер установлен и готов к использованию необходимо настроить 1С Предприятие. Напомним, что для работы с SQL сервером необходима отдельная версия 1С для SQL. Для успешной работы с SQL сервером в базе 1С должен быть заведен хотя бы один пользователь. Далее загружаем целевую базу в конфигуратор и производим выгрузку данных через Администрирование — Выгрузить данные.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-45-42.png

После чего создаем заготовку будущей БД, для этого в отдельную папку копируем все папки из рабочей базы данных и все файлы кроме файлов конфигурации и таблиц (V7Plus, библиотеки для работы с торговым оборудованием и т.п.)

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-47-57.png

Следующим шагом необходимо создать новую SQL базу для хранени наших данных. Для этого запускаем Enterprise Manager.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-48-12.png

Разворачиваем дерево до уровня Databases и щелкнув правой кнопкой мыши в окне справа выбираем New Database.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-49-43.png

На первой закладке открывшегося окна вводим имя создаваемой базы, вторая и третья закладка определяют пути хранения файла БД и файла лога транзакций. По умолчанию предполагается их хранение в папке установки SQL сервера, однако желательно хранить их в отдельной папке рядом с базой 1С (желательно на отдельном жестком диске или на отдельном разделе).

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-50-46.png

Создав базу, подключаем папку с заготовкой в качестве базы 1С и загружаем Конфигуратор. На вопрос выбора формата хранения данных указываем MS SQL Server, в Конфигураторе выбираем Администрирование — Параметры базы данных SQL и заполняем поля.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-51-25.png

В качестве сервера указываем сетевое имя машины, его можно подсмотреть в SQL Server Service Manager, щелкнув на значке в трее рядом с часами. В поле База Данных вводим название базы, которое мы указали при ее создании в Enterprise Manager. Пользователь sa, ниже вводим его пароль.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-52-07.png

Если все данные введены правильно 1С успешно соединится с SQL базой, в противном случае мы получим сообщение об ошибке. Теперь остается загрузить данные в базу воспользовавшись пунктом меню Администрирование — Загрузить данные и указав файл выгрузки созданный ранее. Система выдаст несколько предупреждений, соглашаемся с ними нажимая на кнопку ОК.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-52-48.png

Если все сделано правильно и исходная БД не содержала ошибок мы должны получить сообщение Загрузка успешно завершена, теперь мы можем загружать БД и работать с ней в обычном режиме.

Windows-Server-2003-Standard-Edition-(2)-2009-09-11-20-54-14.png

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

Читайте также:
Как установить программу сенкевича

Дополнительные материалы:

  1. Резервное копирование баз данных MS SQL Server 2000
  2. 1С Предприятие 7.7 Тестирование производительности в различных режимах

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

Источник: interface31.ru

» 1С Предприятие 7.7 и SQL

Я как то в замешательстве. может конечно и я чего то не то делаю, как то не так клиента пытаюсь подключить. Ошибка все так же прет:

Добавлено:
Я как то в замешательстве. может конечно и я чего то не то делаю, как то не так клиента пытаюсь подключить. Ошибка все так же прет:

SQL State: 08001
Native: 17
Message: [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL — сервер не существует, или отсутствует доступ.
SQL State: 01000
Native: 53
Message: [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect())

На пользовательской машине установлен клиент sql 2005 express. 1с 7.7 sql. А вот подключаться не могу. На что обратить внимание, кто скажет.

denis_da
короче на сервере 2005 я не помню как а на 2008
выглядит это примерно так:
Диспетчер конфигурации->сетевая конфигурация->протоколы для SQL->отключаешь именованные каналы ->заходишь в TCPIP->вкладка IP адреса-> и в поле TCP порт во вкладке IPAll указываешь 1433 порт-> и убираешь нолик с поля динамические адреса

Настраиваем на пользовательских машинках SQL-клиент:

1. Идем в Пуск —> Настройка —> Панель управления —> Администрирование —> Источники данных (ODBC) —> Системный DSN —> Добавить —> SQL Server —> Готово —> Имя: test, Сервер: SERVERSQLEXPRESS —> Далее —> Настройка SQL клиента —> Снят галку динамически определить порт и явно указать порт 1433 —> ОК —> Отмена —> Отмена

Ура получилось. Спасибо AnotherReality огромное.
Только вот я одно не могу понять, в большинстве инструкций, которых я перечитал и которыми я пользовался по установке и настройке sql- этого да же не упоминается?! Вообще это нормальный процесс? или это только у меня такая жо.
Честно говоря я в первый раз столкнулся с установкой и настройкой sql в 1c под него, все новое. На что еще нужно обратить внимание, как ты думаешь, при дальнейшей работе 1с-ки под sql (напомню, что я перевел ее из dbf в sql вариант).

Добавлено:
Я проверил, на еще одном клиентском компьютере.
В общем я ни чего такого не делал на нем (лишь поставил компонент sql и поставил с дистрибутива другую версию 1с 7.7 — sql), то что ниже не пригодилось:

Настраиваем на пользовательских машинках SQL-клиент:
1. Идем в Пуск —> Настройка —> Панель управления —> Администрирование —> Источники данных (ODBC) —> Системный DSN —> Добавить —> SQL Server —> Готово —> Имя: test, Сервер: SERVERSQLEXPRESS —> Далее —> Настройка SQL клиента —> Снят галку динамически определить порт и явно указать порт 1433 —> ОК —> Отмена —> Отмена

Получилось так , что достаточно оказалось лишь указать на сервере 1433 порт в IPAll и все. Есть о чем задуматься почему так и из-за чего?!

denis_da
«Вообще это нормальный процесс?»
Не знаю, но в своем офисе мы этим пользуемся и вроде все нормально, вообще самому интересно нормально это или нет.

«как ты думаешь, при дальнейшей работе 1с-ки под sql . »
Не знаю даже чего советовать, я сам не бухгалтер. и просто поддерживаю базу в рабочем состоянии ну и делаю бекапы, кстати на счет бекапов, в sql версии 1с надо делать через выгрузку данных,а не через сохранение.

«Есть о чем задуматься почему так и из-за чего?! »
Вот этого сказать не могу.у меня даже на виртуальных машинках такие же пляски приходится делать.

Источник: ru-board.club

Ошибка СУБД Microsoft OLE DB Provider for SQL базы 1С Предприятие 8.2

Как-то случилась у нас на предприятии «беда». Беда эта была связана с базой данных 1С Предприятия 8.2 на MS SQL 2008. Из отделов начали жаловаться на ошибку табличных частей. С программистами 1C, пытались решить данную проблему в кротчайшие сроки, но ничего на ум особого не приходило. Сам я раньше не сталкивался с такой проблемой, поэтому пришлось гуглить и искать решение проблемы.

Читайте также:
Лучшие программы для 2d графики

В основном попадались обрывки фраз, которые когда-то люди пытались что-то сделать, а так и не сделали. Все думаю знают, что 1С это вещь такая без которой нельзя, а хотелось бы порой… Много лишнего, проблем (недописок), не правильной структуры и т.п.

Ошибка которая начала появляться:

Ошибка СУБД:
Microsoft OLE DB Provider for SQL Server: Недопустимое имя объекта «_Document179_VT3549».
HRESULT=80040E37, SQLSrvr: SQLSTATE=42S02, state=1, Severity=10, native=208, line=1

Ошибка хоть и не была критичной, но не давала работать людям. Были предприняты попытки связаться с интегратором, чтобы он хоть чем-то помог. В основном поступали предложения о том, чтобы загрузить Конфигуратор и попытаться Выгрузить/Загрузить базу в .dt-файл, а также Отсоединить/Присоединить. Из-за большого объема данных, выгрузка dt-файла, заняла бы на нашем даже производительном сервере по меньшей мере сутки! Это нас не устраивало естественно. Около часа я искал в интернете решение проблемы и тут от интегратора получил сообщение следующего содержания:

Попробуйте залить в демо базу архив скажем недельной давности и проверить структуру таблиц, есть ли там например такая строчка «_Document188_VT3785»

Естественно я до этого почему-то не догадался. Был взят бэкап недельной давности, а точнее за 25 число и загружен в демо базу. В табличной части была найдена данная таблица, которая содержала порядка 2500 строк информации. А дальше, дальше я уже понял, что нужно делать. Распишу по пунктам, мало ли сам забуду или кому-нибудь пригодиться.

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

2. Заливаем бэкап в демо базу. Я не использовал консоль, у меня есть Microsoft Managment Studio 2008, поэтому мне было проще. Кто любит извращаться с помощью консоли — Бога ради, пусть делает запросы с помощью нее.

3. Собираем все ошибки воедино, т.е. те которые появляются у пользователей на Недопустимое имя объекта. У меня их обнаружилось всего две, но есть подозрение, что их гораздо больше. (Ошибка таблицы «_Document179_VT3549» и «_Document188_VT3785»).

4. Смотрим в «Плохую базу» есть ли такие табличные части. Если нет, а их скорее всего нет делаем следующее в демо базе: Находим строку dbo._Document179_VT3549 —> Нажимаем правой кнопкой мыши и выбираем Создать сценарий для таблицы —> Используя CREATE —> Новое окно редактора запросов.

Появиться окно с запросом CREATE:

USE [Torg_demo]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[_Document179_VT3549](
[_Document188_IDRRef] [binary](16) NOT NULL,
[_KeyField] [binary](4) NOT NULL,
[_LineNo3786] [numeric](5, 0) NOT NULL,
[_Fld3787RRef] [binary](16) NOT NULL,
[_Fld3788RRef] [binary](16) NOT NULL,
[_Fld3789RRef] [binary](16) NOT NULL,
[_Fld3790RRef] [binary](16) NOT NULL,
[_Fld3791] [numeric](15, 3) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO

Выполняем его на «Плохой базе» предварительно изменив USE [Torg_demo] на USE [Torg]. В результате этого запроса, будет создана таблица. Проделываем данный пункт со всеми табличными частями к которым утрачен доступ и которые требуется создать заново. Напомню мне нужно было создать 2-е таблицы «_Document179_VT3549» и «_Document188_VT3785».

5. В «Здоровой базе» — демо, делаем следующее с таблицами которые нам требуется восстановить. Находим строку dbo._Document179_VT3549 —> Нажимаем правой кнопкой мыши и выбираем Создать сценарий для таблицы —> Используя SELECT, затем Используя INSERT. Должно появиться 2-а запроса (заготовки) к базе данных, которые обращаются к табличным частям. Их требуется объединить в один, по моему принципу: INSERT INTO SELECT ,… FROM . Данный запрос перенесет все данные которые были в демо базе в основную.

INSERT INTO [Плохая база].[dbo].[_Reference120_VT120]
([_Reference120_IDRRef]
,[_KeyField]
,[_LineNo1924]
,[_Fld1925RRef]
,[_Fld1926RRef])
SELECT
[_Reference120_IDRRef]
,[_KeyField]
,[_LineNo1924]
,[_Fld1925RRef]
,[_Fld1926RRef])
FROM [Здоровая база].[dbo].[_Reference120_VT120]
GO

Конечный вариант который получился у меня для одной таблицы (проделываем со всеми, то же самое по-аналогии):

INSERT INTO [Torg].[dbo].[_Document179_VT3549]

([_Document179_IDRRef
,[_KeyField]
,[_LineNo3550
,[_Fld3551RRef]
,[_Fld3552RRef]
,[_Fld3553RRef]
,[_Fld3554]
,[_Fld3555]
,[_Fld3556]
,[_Fld3557]
,[_Fld7555]
,[_Fld9166]
,[_Fld9167RRef]
,[_Fld9168RRef]
,[_Fld9169RRef])
SELECT
[_Document179_IDRRef]
,[_KeyField]
,[_LineNo3550]
,[_Fld3551RRef]
,[_Fld3552RRef]
,[_Fld3553RRef]
,[_Fld3554]
,[_Fld3555]
,[_Fld3556]
,[_Fld3557]
,[_Fld7555]
,[_Fld9166]
,[_Fld9167RRef]
,[_Fld9168RRef]
,[_Fld9169RRef]
FROM [Torg_demo].[dbo].[_Document179_VT3549]
GO

После этого, можно расслабиться не на долго. Все должно работать. Табличные части восстановлены, запросы которые выполняют пользователи при обращении к базе данных проходят корректно, и клиент не ругается на ошибку СУБД. Надеюсь моя запись будет полезна кому-то.

P.S: бросать данную проблему при возникновении не стоит, т.к. можно «огрести» много проблем в дальнейшем.
P.P.S: прошу прощения, что нет картинок на данном этапе.

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru