FAQ по SQL-версии программы 1С: Предприятие

Далее по тексту слово \"программа\" - обычно означает \"программа 1С: Предприятие 7.7\". Сокращение \"БД\" означает \"база данных\". Сокращение \"ИБ\" означает \"информационная база\". Под \"сервером\" обычно подразумевается \"SQL-сервер\"

Создан 10 сентября 2002 года,
последние корректировки внесены
19 ноября 2002 года в 22:48
Источник: www.gorbunov.ru/1с/

  • Далее по тексту слово "программа" - обычно означает "программа 1С: Предприятие 7.7".
  • Сокращение "БД" означает "база данных".
  • Сокращение "ИБ" означает "информационная база".
  • Под "сервером" обычно подразумевается "SQL-сервер"

Q: Что такое SQL-версия программы 1C: Предприятие?


A: Такой вариант программы 1C: Предприятие, который может хранить данные на SQL-сервере.

Q: Она очень отличается от не SQL-версии?


A: Для пользователя - дополнительное обучение не требуется. Для программиста - дополнительно обучение не обязательно. Для системного администратора необходимы дополнительные знания - немного различаются процедуры установки и резервного копирования.

Q: Сложно ли перейти с работы с обычной версией программы на работу с SQL-сервером?


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

Q: А какие еще кроме как SQL-сервера существуют способы хранения данных?


A: На большинстве предприятий программа хранит данные в файлах формата DBF.

Q: А что такое SQL-сервер?


A: Специальная программа, предназначенная для хранения базы данных и обеспечения другим программам доступа к этим данным.

Q: В чем основное отличие использования SQL-сервера для хранения данных?


A: Работая с БД, которая находится в файлах формата DBF, программа сама непосредственно читает и пишет в эти файлы.
Работая с БД, которая расположена на SQL-сервере, программа непосредственно с файлами данных работать не может, с ними работает один только SQL-сервер, а программы обращаются к SQL-серверу с запросами по чтению и изменению данных.

Q: Зачем нужен такой сложный доступ к данным?


A: В первую очередь, для надежности хранения данных. Например, понятие "разрушены индексы", часто встречающееся с БД в DBF-формате, при работе с SQL-сервером не существует.
Кроме того, такой сложный доступ к данным, в некоторых случаях, обеспечивает более быстрое получение данных.
Кроме того, такой сложный доступ к данным, в некоторых случаях, является единственным возможным для работы очень большого числа пользователей или для работы с очень большой базой данных.

Q: Будет ли работать быстрее программа если перейти на работу с SQL-сервером?


A: Не во всех случаях. Проведение документов в большинстве случаев - медленее.
Желательно оптимизировать конфигурацию под работу с SQL-сервером.

Q: В каких случая переход на SQL-версию принесет хоть какую-либо пользу?


A: Гораздо большая надежность хранения данных - для ответственных БД. Единственно возможный способ функционирования БД, если размер ваших SQL-файлов превысил несколько сотен мегабайт и продолжает расти. Или при очень большом числе пользователей. Более быстрое выполнение отчетов, если эти отчеты написанны с учетом того, что данные находяться на SQL-сервере.

Q: Что мне нужно для перехода на работу с SQL-сервером?


A: SQL-версия программы 1С: Предприятие 7.7 и SQL-сервер Microsoft SQL Server (MS-SQL Server), а также серверный вариант операционной систем Windows, поскольку MS-SQL Server отказывается устанавливаться на другие варианты Windows.

Q: Как отличить SQL-версию внешне?


A: Почти ничем. Можно ткнуться в меню "Помощь\О программе", там в самом верху будет надпись "1С: Предприятие 7.7 для SQL".

Q: Если я хочу работать с БД в DBF и с БД на SQL-сервере мне нужно ставить 2 варианта программы?


A: Нет. SQL-вариант прекрасно работает как SQL базами, так и с DBF базами.

Q: Какой можно использовать SQL-сервер?


A: Microsoft SQL Server (MS-SQL), начиная с версии 6.5, а лучше - 7.0 и выше.

Q: Могу ли я использовать PostgreSQL?


A: Нет. Только Microsoft SQL Server (MS-SQL), начиная с версии 6.5, а лучше - 7.0 и выше.

Q: А почему бы фирме 1C не сделать свою программу такой, чтобы она использовала другие сервера? Ведь есть стандарты на SQL?


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

Q: Могу ли я использовать вариант MS-SQL из поставки Microsoft Office 2000, который называется MSDE2000?


A: У меня MSDE2000 работал нестабильно, а другие говорят, что все хорошо. Можете, но на свой страх и риск.

Q: Какой механизм защиты от несанкционированного копирования встрен в MS-SQL?


A: Серийный номер.

Q: Мы официально купили 1С: Предприятие 7.7 + Windows 2000 Server + MS-SQL. Не нашли серийного номера для MS-SQL.


A: В этой поставке серийный номер один и тот же у Windows 2000 Server и MS-SQL.

Q: Я не работал раньше с сервером MS-SQL. Сложно ли это?


A: Нет, не сложно. Фирма Microsoft старается сделать управление своими серверными программными продуктами доступным даже непрофессионалам.

Q: Как установить сервер MS-SQL?


A: Как любую другую программу - инсталлятором. Если установка осуществляется на русскую версию Windows, то все опции в инсталляторе - по умалчиванию.

Q: Сервер MS-SQL с настройками по умалчиванию ставить не надо!


A: Если на русскую версию Windows - то по умалчиванию все опции инсталлятора. Если вы считаете себя умным, то можете отказаться от некоторых частей MS-SQL сервера, которые не нужны программе.

Q: Что делать после инсталляции сервера MS-SQL?


A: Запустить программу SQL Enterprise Manager. С ее помощью подключиться к свежеинсталлированному серверу.

Q: Что необходимо создать на сервере MS-SQL?


A: В первую очередь, надо создать пользователя (пользователя не программы 1C: Предприятие, а пользователя в MS-SQL).
Дать ему права на создание БД.
Зайти в программу SQL Enterprise Manager от имени этого пользователя.
Создать БД.

Q: Зачем нужно создавать БД от имени специально созданного пользователя MS-SQL?


A: Иначе в дальшейшем программа не сможет работать с этой БД.

Q: Какой необходимо указать размер БД при создании ее на сервере MS-SQL?


A: БД будет увеличиваться автоматически по необходимости. Но можно и сразу создать файлы данных и лога размера равным двойному суммарному размеру файлов DBF-версии, которую вы собираетесь перегнать в SQL-версию.

Q: Как начать работу программы с SQL?


A: Создайте пустой каталог. Настройте программу так, будто бы в этом каталоге лежит БД в формате DBF (то есть как обычно). Запустите "Конфигуратор". При старте программа спросит вас какая будет БД - SQL или DBF. Ответите - SQL. Далее - смотри ниже.

Q: Как добраться до данных SQL?


A: Если при входе в пустой каталог вы выбрали SQL-вариант базы, то в "Конфигураторе". Появиться еще пункт меню "Администрирование\Параметры базы данных SQL".

Q: Какие нужно задать параметры для базы данных SQL?


A: Сервер - имя компьютера с SQL-сервером. База данных - название базы данных, которую вы создали специально для работы программы на SQL-сервере с помощью SQL Enterprise Manager. Пользователь - имя пользователя SQL-сервера, от имени которго была создана база данных на SQL-сервере. Пароль - его пароль.

Q: Все пользователи работают с SQL-сервером от имени одного SQL-пользователя?


A: Да все экземпляры программы подключаются к SQL-серверу от имени одного SQL-пользователя, того самого который создал БД на SQL-сервере.

Q: Используется ли обычный список пользователей программы при работе с SQL-сервером?


A: Да. Более того, список пользователей программы не должнен быть пуст, иначе вы не сможете работать.

Q: Как перенести данные из базы данных DBF в базу данных SQL?


A: В "Конфигураторе" программы DBF-базы "Администрирование\Выгрузить данные". Затем в "Конфигураторе" программы SQL-базы "Администрирование\Загрузить данные"

Q: Как перенести данные из базы данных SQL в базу данных DBF?


A: В "Конфигураторе" программы SQL-базы "Администрирование\Выгрузить данные". Затем в "Конфигураторе" программы DBF-базы "Администрирование\Загрузить данные"

Q: Как делать резервное копирование базы данных SQL?


A: В "Конфигураторе" программы "Администрирование\Выгрузить данные".

Q: Как делать резервное копирование базы данных SQL не отключая пользоватей?


A: Заранее делается копия файла 1Cv7.MD и файла со списком пользователей - в "Конфигураторе" программы "Администрирование\Сохранить". Во время работы можно делать резервное копирование средствами MS-SQL при помощи SQL Enterprise Manager. Подробнее - ниже.

Q: Резервное копирование средствами SQL невозможно при работе пользователей?


A: Заранее делается полная резервная копия (Complete Backup). В течение рабочего дня делаются копии лога транзакций MS-SQL (Transaction Log Only Backup). В случае чего для восстановления данных следует использовать "последний Complete Backup + все Transaction Log Only Backup, сделанные после этого Complete Backup'а"

Q: Не работает запланированное (Sheduled) резервное копирование средствами SQL!


A: Должен быть запущен сервис SQL Agent.

Q: После перехода на SQL версию бегунок на вертикальной полосе прокрутки в журналах и списках элементов справочников всегда посередине.


A: Это сделано для ускорения получения данных.
Дело в том, что с сервера SQL программа получает не все данные, а только те, которые ей нужны для отображения на экране. Программа не определяет сколько всего строк и какую часть она выводит на экран, следовательно, не может и рассчитать куда ставить бегунок прокрутки.

Q: После перехода на SQL версию программа стала работать гораздо медленее.


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

Q: У нас большая фирма, много пользователей и большая БД. Стоимость простоя очень велика. Для надежности хранения данных перешли на SQL. Жутко тормозит.


A: Вам поможет связка "терминальный сервер + SQL-сервер". Терминальный сервер обеспечит производительность, а SQL - сервер надежность. Компьютер под сервер должен быть выделен очень мощный, с огромным объемом оперативной памяти.

Q: Существуют ли особенности при программировании под SQL-версию?


A: Несколько иная оптимизация. Глюки ядра SQL-версии и не SQL-версии программы частью совпадают, а частью - различаются.

Q: Какие конструкции языка более оптимальны для SQL-версии?


A: Которые одной командой обрабатывают большие массивы данных.
Например, объект "Запрос" более предпочтителен, нежели последовательный перебор (конструкции "ВыбратьЧтоТо() и цикл ПолучитьЧтоТо()). Оптимизация относится только к объектам, предоставляющим доступ к данным в БД, но не к таблицам значений и спискам значений.

Q: Можно ли обращаться напрямую к таблицам SQL-сервера посредством запросов на языке SQL?


A: По чтению - да. Существуют даже специальные расширения (не от фирмы 1С) для программы 1C: Предприятие 7.7, которые позволяют это делать.

Q: Один пользователь - работает нормально (не монопольно). Другой - тоже. Вместе - не могут.


A: Каталог, в котором лежат файлы 1cv7.MD и иже с ним должен быть у всех пользователей общим.

Q: Надо ли давать пользователям доступ к файлам базы данных SQL-сервера?


A: Нет. Этого не нужно. К этим файлам обращается только сама программа MS-SQL сервер.

Q: Файл Transaction Log раздувается и раздувается.


A: Файл Transaction Log связан с процедурами резервного копирования сервера SQL. Он автоматически прекращает раздуваться после каждого резервного копирования, сделанного средствами SQL-сервера.

Q: Можно ли организовать распределенную БД, используя возможности репликаций, имеющиеся в сервере MS-SQL


A: Нет.
Пользуйтесь механизмами создания распределенных БД, созданным специально для программы 1C: Предприятие 7.7 фирмой 1С или другими фирмами.

Комментарии

8
  • Хранитель_врат
    пловина вопросоы и ответов полная чушь!
  • Хранитель_врат
    соответсвенно другая половина очень полезна!
    Спасибо. )
  • Хранитель_врат
    Очень доступно и по теме.
    Всегда думал, что SQL - что-то сложное и недоступное. Теперь понял, что бояться особо нечего.