В нормальной работе система 1С:Предприятие для SQL практически не отличается от «обычной» системы 1С:Предприятие, за исключением некоторых деталей, которые, как правило, не сказываются существенным образом на повседневной работе пользователей системы. Изменение формата хранения информационной базы главным образом оказывает влияние на процедуры администрирования системы, резервного копирования данных и т. п. Кроме того, некоторые особенности полезно знать специалистам, занимающимся конфигурированием систем 1C:Предприятие. Именно на системных администраторов и специалистов по конфигурированию ориентировано дальнейшее изложение. Внимание будет уделено отдельным процедурам и режимам работы, которые подверглись изменению в системе 1C:Предприятие для SQL по сравнению с «обычной» системой 1C:Предприятие.
Под процедурой инициализации информационной базы понимается создание новой информационной базы системы 1C:Предприятие на «пустом месте», то есть в каталоге, в котором еще нет никаких данных системы 1С:Предприятие, кроме файла конфигурации (1CV7.MD). Для инициализации информационной базы следует запустить программу Конфигуратор, указав в качестве каталога информационной базы пустой вышеупомянутый каталог. Если в качестве каталога информационной базы Конфигуратору при запуске указан каталог, в котором не находится ни одного из возможных файлов словаря базы данных: 1CV7.DD или 1CV7.DDS, то сразу после запуска будет предпринята попытка выяснить формат хранения таблиц данных инициализируемой информационной базы:
После того, как сделан выбор формата хранения таблиц, работа с Конфигуратором может быть продолжена в привычном режиме. Однако особенности на этом не кончаются. Для того чтобы инициализировать таблицы базы данных, надо указать параметры доступа к базе данных на сервере. Но прежде надо создать саму базу данных.
Здесь необходимо заметить, что система 1C:Предприятие для SQL не берет на себя такие функции управления сервером баз данных, как создания баз данных, ведение списков пользователей и. т. п. Предполагается, что указанные задачи системный администратор решает средствами самого MS SQL Server 6.5, а система 1C:Предприятие для SQL использует уже созданные базы данных. Однако, готовая база данных - это практически все, что нужно. Все дальнейшие действия с содержимым базы данных: создание и изменение таблиц, индексов и хранимых процедур система 1C:Предприятие для SQL берет на себя. При создании базы данных, используемой для хранения таблиц информационной базы системы 1C:Предприятие для SQL, рекомендуется руководствоваться набором несложных правил:
· базу данных и журнал транзакций не следует размещать на одном и том же устройстве хранения баз данных (database device).
· не следует создавать базу данных размером меньше 64 МБ.
· размер журнала транзакций должен быть равен приблизительно половине размера базы данных.
Помимо создания базы данных на сервере, необходимо решить еще одну задачу: выбрать пользователя, имя и пароль которого система 1С:Предприятие для SQL будет использовать для установления соединения с базой данных. Для того, чтобы система имела достаточный набор привилегий по управлению базой данных, необходимо, чтобы этим пользователем был либо системный администратор MS SQL Server - SA, либо какой-либо другой пользователь, являющийся собственником (owner) базы данных, с которой будет работать система 1C:Предприятие для SQL. Все пользователи системы 1C:Предприятие для SQL для установки соединения с базой данных на сервере пользуются одними и теми же параметрами доступа, которые устанавливаются однократно при инициализации информационной базы.
Итак, предположим, что база данных на сервере уже создана и выбран пользователь, имя и пароль которого будут служить для установления соединения с базой данных. Для задания этих сведений следует, находясь в программе Конфигуратор, обратиться к пункту меню «Операции/Параметры базы данных SQL...». В поля появившегося на экране диалога следует занести требуемые параметры базы данных.
При нажатии на кнопку «ОК» Конфигуратор пробует установить соединение с базой данных, используя введенные параметры. Если попытка установить соединение завершилась успешно, параметры базы данных запоминаются для дальнейшего использования.
Еще одной особенностью работы с информационными базами системы 1C:Предприятие для SQL, является необходимость задания списка пользователей. При работе с «обычной» информационной базой системы 1C:Предприятие задавать список пользователей нет необходимости, и, в случае, если ни один пользователь не задан, процедура авторизации доступа к информационной базе производиться не будет. При работе с информационной базой системы 1C:Предприятие для SQL такой вариант невозможен. Если список пользователей пуст, доступ к информационной базе будет закрыт. Поэтому, при инициализации информационной базы необходимо ввести в список пользователей хотя бы одного пользователя.
Внимание! Система 1C:Предприятие для SQL согласованно отслеживает изменения в списке пользователей и в параметрах доступа к базе данных. Поэтому произвольная замена или удаление файла списка пользователей (USERDEF\USERS.USR) приведет к потере информации о параметрах соединения с базой данных и потребуется ее повторный ввод. Такой подход гарантирует обязательность выполнения процедуры авторизации доступа к информационной базе.
При переходе от системы 1С:Предприятие 7.5 к системе 1C:Предприятие 7.5 для SQL неизбежно возникает проблема переноса информационной базы из одного формата в другой. Инструментом решения данной проблемы служат средства загрузки/выгрузки информационных баз, доступ к которым производится из Конфигуратора. Процедура переноса может быть представлена в виде последовательности таких шагов:
· выгрузка существующей информационной базы в файл переноса данных;
· инициализация новой информационной базы;
· загрузка файла переноса данных в новую информационную базу;
· копирование рабочих каталогов пользователей, файлов внешних отчетов, файлов прописи и т. п. из каталога исходной информационной базы в каталог вновь созданной информационной базы.
Рассмотрим перечисленные шаги подробнее. Для выгрузки существующей информационной в файл переноса данных следует запустить Конфигуратор, указав в качестве каталога информационной базы каталог информационной базы, которую надо выгрузить. Затем выбрать пункт меню «Файл./Выгрузить данные...». На экране появится диалоговое, в котором следует задать имя файла переноса данных, а также обозначить, следует ли выгружать сведения о пользователях системы. В случае переноса информационной базы выгрузка сведений о пользователях представляется целесообразной.
Следующий шаг - это инициализация информационной базы, в которую будут перенесены данные. Процесс инициализации информационной базы системы 1С:Предприятие для SQL был подробно рассмотрен в предыдущем разделе. Следует сделать замечание о размере создаваемой базы данных. В качестве размера создаваемой базы данных следует указать число, равное сумме размеров всех файлов .DBF и .CDX исходной информационной базы, умноженное на коэффициент приблизительно равный 2.5...3. Указанный объем позволит гарантированно вместить переносимые данные и позволит некоторое время не беспокоиться о том, что в ходе работы с базой данных не произойдет ее переполнения. Размер журнала транзакций также следует определить как половину размера базы данных.
Очередным этапом является загрузка файла переноса в проинициализированную информационную базу. Для загрузки данных следует запустить Конфигуратор системы 1 1C:Предприятие для SQL и выбрать пункт меню «Файл./Загрузить данные...». На экране появится диалог, в котором следует указать имя файла переноса данных, из которого будет производиться загрузка. Естественно, что это должен быть тот же файл, в который ранее выгружалась исходная информационная база.
Процесс переноса информационной базы завершается копированием файлов, которые в результате всех предпринятых действий так и не были перемещены из каталога исходной информационной базы в каталог вновь созданной информационной базы. Дело в том, что при выгрузке в файл переноса данных попадают данные только из нескольких основных файлов информационной базы:
· файла конфигурации (1CV7.MD);
· файла словаря данных (1CV7.DD);
· файла списка пользователей (USERDEF\USERS.USR);
· таблиц базы данных.
Информация из остальных файлов, находящихся в каталоге исходной информационной базы не попадает в файл переноса данных и, соответственно, не загружается во вновь созданную информационную базу. В файл переноса данных также не попадает содержимое рабочих каталогов пользователей. При этом наличие указанных файлов и каталогов может являться критическим для работы системы. Наиболее простым способом приведения вновь созданного каталога информационной базы к требуемому виду является полное копирование содержимого каталога исходной информационной базы, включая подкаталоги, за исключением следующих файлов:
· 1CV7.MD;
· 1CV7.DD;
· USERDEF\USERS.USR (если сведения о пользователях были включены в файл переноса данных);
· •.DBF, •.CDX.
В случае необходимости, аналогичным способом может быть осуществлен перенос информационной базы из формата системы 1С:Предприятие для SQL в формат «обычной» информационной базы системы 1С:Предприятие.
Как было отмечено выше, каталог информационной базы системы 1C:Предприятие для SQL содержит файл 1CV7.DBA, в котором находятся параметры доступа к размещенной на сервере базе данных. Это позволяет, в случае необходимости, перемещать файлы, расположенные в каталоге информационной базы, в другой каталог, изменяя, таким образом, местоположение самого каталога информационной базы и сохраняя при этом доступ к той же самой базе данных на сервере.
Однако, при перемещении данных, содержащихся в рабочем каталоге информационной базы, из каталога в каталог, возникает опасность того, что доступ к одной и той же базе данных становится возможным из более чем одного каталога информационной базы.
Система 1C:Предприятие для SQL при установке соединения с сервером базы данных создает динамическую связку между каталогом информационной базы и базой данных на сервере, гарантируя тем самым, что одновременный доступ к базе данных на сервере может осуществляться только из одного каталога информационной базы. Тем самым обеспечивается правильность работы организованных на уровне файлов механизмов блокировки различных объектов информационной базы.
Но при этом остается возможность попеременного доступа к базе данных из нескольких каталогов информационной базы, что, в случае изменения конфигурации, может привести к нарушению соответствия между содержимым каталога информационной базы и базой данных на сервере. Для недопущения такого рода ситуации при переносе данных из одного каталога информационной базы в другой рекомендуется удалять содержимое старого каталога сразу же после выполнения операции копирования файлов в новый каталог.
При разработке конфигураций следует учитывать тот факт, что система 1C:Предприятие для SQL не может работать с константами и реквизитами текстового типа, длина которых превышает 255. Это обусловлено тем, что MS SQL Server 6.5 не поддерживает полей типа CHAR или VARCHAR с длиной, превышающей 255. Однако данное свойство не распространяется на текстовые реквизиты неограниченной длины.
При планировании переноса информационной базы из формата системы 1С:Предприятие в формат системы 1C:Предприятие для SQL следует изменить конфигурацию исходной информационной базы, проставив всем текстовым реквизитам, длина которых превышает 255, признак неограниченной длины.
Как было отмечено выше, с точки зрения рядового пользователя, работа с системой 1C:Предприятие для SQL ничем практически не отличается от работы с «обычной» системой 1C:Предприятие. Это так, но небольшие отличия все-таки имеются.
Первое, что бросается в глаза пользователю, впервые начавшему работать с системой 1C:Предприятие для SQL - это полосы прокрутки с «движками», находящимися посередине и не меняющими своего местоположения в зависимости от положения текущей строки в списке.
При этом полосы прокрутки не вполне утратили своей функциональности. Щелкнув мышкой выше или ниже движка, можно, как и прежде, достичь эффекта нажатия клавиш PageUp или PageDown соответственно, а передвинув движок в верхнее или нижнее положение - эффекта от нажатия клавиш Ноте или End. Кнопки в верхней и нижней части полосы прокрутки также функционируют по-прежнему.
Между системами 1C:Предприятие и 1C:Предприятие для SQL имеется различие в видимости для других пользователей изменений данных, производимых в процессе выполнения транзакций. Если при работе с информационной базой «обычной» системы 1C:Предприятие изменения, внесенные в базу данных при выполнении транзакции, становятся видимыми другим пользователям только после фиксации транзакции, то есть тогда, когда они уже не могут быть отменены, то при работе с информационной базой системы 1C:Предприятие для SQL изменения становятся видны другим пользователям немедленно после их внесения в базу данных. В дальнейшем, при завершении транзакции, произведенные изменения могут быть зафиксированы или отменены. В случае отмены изменений данные возвращаются к виду, который они имели до начала транзакции. Таким образом, имеет место так называемая проблема «иллюзий» или видимости незафиксированных изменений базы данных.
Эта особенность обусловлена режимом отработки транзакций сервером MS SQL Server, а также режимом работы с базой данных системы 1С:Предприятие для SQL, и, при некоторых условиях, может оказывать влияние на поведение системы, что следует учитывать при разработке конфигураций. Для предотвращения появления "иллюзий" там, где это критично, следует производить операции, связанные с чтением данных в рамках транзакции, что предотвращает возможность изменения считываемых данных со стороны других пользователей.
В одной распределенной информационной базе в различных узлах могут одновременно работать различные варианты системы 1С:Предприятие версия 7.5, включая систему 1C:Предприятие версия 7.5 для SQL. При этом информационные базы в форматах как «обычной» системы 1C:Предприятие, так и системы 1C:Предприятие для SQL могут присутствовать в распределенной информационной базе данных в различных комбинациях без ограничений.
Система 1C:Предприятие содержит встроенные средства, предназначенные для сохранения/восстановления информационной базы. Доступ к функциям сохранения/восстановления производится через пункты «Сохранить данные» и «Восстановить данные» из меню «Файл» главного меню Конфигуратора. Используя указанные средства, можно сохранить файлы каталога информационной базы в архиве, размещаемом на дискетах или на жестком диске. Имеется возможность управлять составом файлов, попадающих в архив. Главным недостатком является отсутствие возможности планирования времени и периодичности выполнения операций сохранения данных. Поэтому во многих случаях, особенно когда речь идет о больших объемах данных, для сохранения/восстановления данных имеет смысл использовать специализированные средства резервного копирования данных, входящие в состав операционных систем или поставляемые отдельно третьими фирмами. Данные средства позволяют планировать время и периодичность выполнение операций сохранения данных, помещать архивную копию данных на магнитные ленты, производить копирование данных без прекращения работы и многое другое.
Средства сохранения и восстановления данных системы 1С:Предприятие для SQL ничем не отличаются от аналогичных средств «обычной» системы 1С:Предприятие, то есть возможности сохранения и восстановления данных поддерживаются только на уровне файлов, и не могут рассматриваться как инструмент резервного копирования информационной базы в случае, если для хранения таблиц информационной базы используется сервер баз данных.
MS SQL Server 6.5 также имеет встроенные средства резервного копирования базы данных. Копии могут сохраняться в файл на жестком диске или на магнитную ленту. Для MS SQL Server различаются две разновидности операции резервного копирования: дамп всей базы данных и дамп журнала транзакций.
Такое разделение операций позволяет получать резервные копии высокой степени актуальности. Из дампа всей базы данных можно восстановить полное состояние базы данных на момент выполнения операции копирования. Резервное копирование журнала транзакций позволяет сохранять только изменения базы данных, происшедшие с момента выполнения предыдущего дампа базы данных или журнала транзакций, и выполняется очень быстро. Время и периодичность выполнения операций может планироваться. Операции сохранения всей базы данных и журнала транзакций могут выполняться без прекращения нормальной работы пользователей с базой данных. Как правило, рекомендуется такой распорядок выполнения операций резервного копирования базы данных, когда сохранение всей базы данных производится в выходные дни и сохранение журнала транзакций – ежедневно (при круглосуточной работе предприятия – по окончании смены).