SQL в 1С

В данной статье приведены экземпляры кода на языке 1С, которые позволяют подключаться к базе данных на SQL-сервере, получать из нее данные, а также записывать новые и обновлять существующие записи в таблицах этой базы данных. Код протестирован на платформе 8.3.5, а также на версиях SQL Server 2008 R2 и SQL Server 2012. Операционная система Windows Server 2008 и Windows Server 2012. Есть предположение, что указанный код будет работать и на других версиях 1С, SQL и Windows.

  1. Постановка задачи
  2. Подключение к SQL-серверу
  3. Добавление записей в таблицу
  4. Обновление записей в таблице
  5. Просмотр выборки из таблицы
  6. Удаление записей из таблицы
  7. Закрытие соединения
  8. Общий текст процедуры

Содержание

1. Постановка задачи

Итак, имеется SQL-сервер с адресом WIN2012\TEST_SQL. Для подключения используется имя входа SQL-сервера UserDB с паролем Pass123456.

На сервере размещена база данных с именем TestDB. В базе имеется таблица с именем Table_1, в которой 3 столбца:

  • C_DateTime, с типом datetime
  • C_Char, с типом char(50)
  • C_Numeric, с типом numeric(18,0)

Изначально таблица пустая:

У пользователя UserDB есть права на чтение и запись в базу данных TestDB. В данном случае пользователь является владельцем указанной базы данных.

Требуется научиться записывать в базу данных и читать из базы данных из 1С при помощи прямых запросов к SQL-серверу.

2. Подключение к SQL-серверу

Весь приведенный ниже код может работать как на клиенте, так и на сервере. Главное чтобы был доступен COM-объект «ADODB» (подробнее о данной библиотеке можно прочитать, например, ). Также с клиента (или с сервера, смотря где выполняется код) должен быть доступен указанный SQL-сервер (настроено правило в Брандмауере для возможности внешнего подключения). Код приводится совсем простой, для понимания с чего вообще начинать разработчику, который раньше с этим не сталкивался.

Итак, для подключения необходимо создать COM-объект «ADODB». Для этого выполняется код 1С:

&НаКлиенте Процедура ВыполнитьОбработку(Команда) //Инициализация переменных ИмяСервераSQL = «WIN2012\TEST_SQL»; ПользовательSQL = «UserDB»; ПарольSQL = «Pass123456»; БазаДанныхSQL = «TestDB»; ТаблицаSQL = «Table_1»; ///////////////////////////////////////// //Подключение к SQL-серверу Попытка Соединение = Новый COMОбъект(«ADODB.Connection»); Команда = Новый COMОбъект(«ADODB.Command»); Выборка = Новый COMОбъект(«ADODB.RecordSet»); Соединение.ConnectionString = «driver={SQL Server};» + «server=»+ИмяСервераSQL+»;»+ «uid=»+ПользовательSQL+»;»+ «pwd=»+ПарольSQL+»;»+ «database=»+БазаДанныхSQL+»;»; Соединение.ConnectionTimeout = 30; Соединение.CommandTimeout = 600; //Открытие соединение Соединение.Open(); Команда.ActiveConnection = Соединение; Сообщить(«Успешное подключение!»); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; КонецПроцедуры

Результат работы в 1С:Предприятии:

Теперь, в общем то, можно выполнять любой запрос SQL через данный COM-объект. Посмотрим как это делать на самых распространенных примерах.

3. Добавление записей в таблицу

Теперь добавим новую строку в нашу пока еще пустую таблицу. Для этого необходимо выполнить код:

///////////////////////////////////////// //Добавляем запись в таблицу ТекДата = ТекущаяДата(); ТекСтрока = «Запись строки»; ТекЧисло = 123456; //Приобразуем данные Если НЕ ЗначениеЗаполнено(ТекДата) Тогда //Для пустой даты необходимо отправлять 01.01.1753 ТекДата = Дата(1753,1,1); КонецЕсли; ТекЧисло = Формат(ТекЧисло,»ЧГ=»); //Удаляем пробелы ТекстТекущейИнструкции = «INSERT INTO «+ТаблицаSQL+» |(, , ) |VALUES (‘»+ТекДата+»‘, N'»+ТекСтрока+»‘, ‘»+ТекЧисло+»‘)»; Попытка Соединение.Execute(ТекстТекущейИнструкции,,128); Сообщить(«Запись добавлена!»); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;

Смотрим результат и видим, что строка появилась в таблице:

4. Обновление записей в таблице

Теперь попробуем обновить все записи в таблице со значением C_Numeric=123456. Для этого выполняем код:

///////////////////////////////////////// //Обновляем записи в таблице с C_Numeric = 123456 ТекЧисло = 123456; ТекДатаНовая = Дата(1,1,1); ТекСтрокаНовая = «Обновленная запись строки»; //Приобразуем данные Если НЕ ЗначениеЗаполнено(ТекДатаНовая) Тогда //Для пустой даты необходимо отправлять 01.01.1753 ТекДатаНовая = Дата(1753,1,1); КонецЕсли; ТекЧисло = Формат(ТекЧисло,»ЧГ=»); //Удаляем пробелы ТекстТекущейИнструкции = «UPDATE «+ТаблицаSQL+» |SET | = N'»+ТекСтрокаНовая+»‘, | = ‘»+ТекДатаНовая+»‘ |WHERE ='»+ТекЧисло+»‘»; Попытка Соединение.Execute(ТекстТекущейИнструкции,,128); Сообщить(«Запись обновлена!»); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;

Проверяем, что запись обновилась:

5. Просмотр выборки из таблицы

Писать и обновлять записи в таблице мы научились. Теперь посмотрим как просматривать выборку из запроса с SQL-сервера:

///////////////////////////////////////// //Читаем записи ТекстИнструкции = «SELECT | , , |FROM «+ТаблицаSQL; Попытка Команда.CommandText = ТекстИнструкции; Выборка = Команда.Execute(); Если Выборка.BOF = Ложь Тогда Выборка.MoveFirst(); Пока Выборка.EOF = Ложь Цикл Сообщить(«=»+Дата(Выборка.Fields(«C_DateTime»).Value) +», =»+СокрЛП(Выборка.Fields(«C_Char»).Value) +», =»+Число(Выборка.Fields(«C_Numeric»).Value)); Выборка.MoveNext(); КонецЦикла; КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;

Результат в предприятии:

6. Удаление записей из таблицы

Для удаления всех записей в таблице со значением C_Numeric=123456 выполняем код:

///////////////////////////////////////// //Удаляем записи в таблице с C_Numeric = 123456 ТекЧисло = 123456; ТекЧисло = Формат(ТекЧисло,»ЧГ=»); //Удаляем пробелы ТекстТекущейИнструкции = «DELETE FROM «+ТаблицаSQL+» |WHERE ='»+ТекЧисло+»‘»; Попытка Соединение.Execute(ТекстТекущейИнструкции,,128); Сообщить(«Запись удалена!»); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;

Проверяем, что записей в таблице не осталось:

7. Закрытие соединения

Ну и после выполнения всех необходимых действий необходимо закрыть соединение с SQL-сервером. Для этого достаточно вызвать метод Close() созданного COM-объекта:

///////////////////////////////////////// //Закрытия соединения Попытка Соединение.Close(); Сообщить(«Соединение закрыто!»); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки;

8. Общий текст процедуры

Общий текст всей процедуры получился следующий:

&НаКлиенте Процедура ВыполнитьОбработку(Команда) //Инициализация переменных ИмяСервераSQL = «WIN2012\TEST_SQL»; ПользовательSQL = «UserDB»; ПарольSQL = «Pass123456»; БазаДанныхSQL = «TestDB»; ТаблицаSQL = «Table_1»; ///////////////////////////////////////// //Подключение к SQL-серверу Попытка Соединение = Новый COMОбъект(«ADODB.Connection»); Команда = Новый COMОбъект(«ADODB.Command»); Выборка = Новый COMОбъект(«ADODB.RecordSet»); Соединение.ConnectionString = «driver={SQL Server};» + «server=»+ИмяСервераSQL+»;»+ «uid=»+ПользовательSQL+»;»+ «pwd=»+ПарольSQL+»;»+ «database=»+БазаДанныхSQL+»;»; Соединение.ConnectionTimeout = 30; Соединение.CommandTimeout = 600; //Открытие соединение Соединение.Open(); Команда.ActiveConnection = Соединение; Сообщить(«Успешное подключение!»); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ///////////////////////////////////////// //Добавляем запись в таблицу ТекДата = ТекущаяДата(); ТекСтрока = «Запись строки»; ТекЧисло = 123456; //Приобразуем данные Если НЕ ЗначениеЗаполнено(ТекДата) Тогда //Для пустой даты необходимо отправлять 01.01.1753 ТекДата = Дата(1753,1,1); КонецЕсли; ТекЧисло = Формат(ТекЧисло,»ЧГ=»); //Удаляем пробелы ТекстТекущейИнструкции = «INSERT INTO «+ТаблицаSQL+» |(, , ) |VALUES (‘»+ТекДата+»‘, N'»+ТекСтрока+»‘, ‘»+ТекЧисло+»‘)»; Попытка Соединение.Execute(ТекстТекущейИнструкции,,128); Сообщить(«Запись добавлена!»); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; ///////////////////////////////////////// //Обновляем записи в таблице с C_Numeric = 123456 ТекЧисло = 123456; ТекДатаНовая = Дата(1,1,1); ТекСтрокаНовая = «Обновленная запись строки»; //Приобразуем данные Если НЕ ЗначениеЗаполнено(ТекДатаНовая) Тогда //Для пустой даты необходимо отправлять 01.01.1753 ТекДатаНовая = Дата(1753,1,1); КонецЕсли; ТекЧисло = Формат(ТекЧисло,»ЧГ=»); //Удаляем пробелы ТекстТекущейИнструкции = «UPDATE «+ТаблицаSQL+» |SET | = N'»+ТекСтрокаНовая+»‘, | = ‘»+ТекДатаНовая+»‘ |WHERE ='»+ТекЧисло+»‘»; Попытка Соединение.Execute(ТекстТекущейИнструкции,,128); Сообщить(«Запись обновлена!»); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; ///////////////////////////////////////// //Читаем записи ТекстИнструкции = «SELECT | , , |FROM «+ТаблицаSQL; Попытка Команда.CommandText = ТекстИнструкции; Выборка = Команда.Execute(); Если Выборка.BOF = Ложь Тогда Выборка.MoveFirst(); Пока Выборка.EOF = Ложь Цикл Сообщить(«=»+Дата(Выборка.Fields(«C_DateTime»).Value) +», =»+СокрЛП(Выборка.Fields(«C_Char»).Value) +», =»+Число(Выборка.Fields(«C_Numeric»).Value)); Выборка.MoveNext(); КонецЦикла; КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; ///////////////////////////////////////// //Удаляем записи в таблице с C_Numeric = 123456 ТекЧисло = 123456; ТекЧисло = Формат(ТекЧисло,»ЧГ=»); //Удаляем пробелы ТекстТекущейИнструкции = «DELETE FROM «+ТаблицаSQL+» |WHERE ='»+ТекЧисло+»‘»; Попытка Соединение.Execute(ТекстТекущейИнструкции,,128); Сообщить(«Запись удалена!»); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; ///////////////////////////////////////// //Закрытия соединения Попытка Соединение.Close(); Сообщить(«Соединение закрыто!»); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры

Результат работы в 1С:Предприятии:

Помогла ли вам данная статья?

Совместные продукты «1С:Предприятие 8» и «Microsoft SQL Server»

Линейка совместных продуктов 1С и Microsoft (цены, лицензирование, условия продажи) – «Microsoft SQL Server для 1С:Предприятие 8».

Преимущества использования 1С:Предприятие на основе Microsoft SQL Server

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

Доступные для заказа позиции и цены смотрите в прайс-листе 1С.

Правила приобретения, комплектация и основная информация по продуктам – в информационном выпуске по ссылке выше.

Полезная информация:

В MS SQL можно создать базу данных с 0 или подключить существующую (не восстановление из бэкапа). Рассмотрим оба варианта. Для подключения существующей базы будем использовать одну из баз ниже, эти базы применяются для обучения.

Тестовые базы данных MS SQL для скачивания (подойдет любая):

  • Pubs
  • Northwind

Подключение базы данных

Нам понадобится установленный MS SQL сервер (как установить ). Подключаемся к SQL серверу с помощью SSMS и распаковываем архив. Базы данных всегда состоят минимум из 2 файлов. Один файл, с расширением mdf, является самой базой данных, а ldf — это журнал транзакций. Чаще всего эти файлы кладут на разные диски (за исключение высокопроизводительных RAID массивов или SAN систем).

В открытом окне SQL Server Management Studio нажимаем указанные кнопки:

Затем нажимаем кнопку «Добавить», выбираем папку, где находится база и 2 раза кликаем по файлу с расширением mdf

Затем нажимаем «ОК» и после этого мы можем увидеть подключенную базу данных

Создание базы данных

Базу данных можно создать двумя путями. С помощью интерфейса или SQL запроса.

Для создания запроса нам нужно нажать кнопку «Создать запрос» или «New Querry»

В новом окне пишем:

CREATE DATABASE Magazine

Где «Magazine» — имя вашей базы. Можно использовать кириллические символы и пробел, но это не рекомендуется. Если в названии стоит пробел, то название стоит выделить в кавычки, например:

CREATE DATABASE «Magazine Moscow»

Если мы создаем базу, например, для 1С или для задач, где будут использоваться разные кодировки, то кодировка по умолчанию подойдет (latin1_general_cp1_ci_as). 1С все хранит в юникод формате.

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

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

Базы 1С Предприятие 8 бывают в двух вариантах:

  1. Файловые (когда данные 1С Предприятие 8 хранятся в файле каталога на компьютере);
  2. Клиент-серверные (когда данные 1С Предприятие 8 хранятся в базе данных, например MS SQL Server).

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

  1. Создание информационной базы 1С Предприятие в файловом варианте
  2. Создание информационной базы 1С Предприятие в клиент-серверном варианте
  3. Добавление в список существующей базы данных 1С Предприятие 8

Создание новой информационной базы 1С Предприятие в файловом варианте

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

Создание каталога хранения базы данных. Для файловой базы данных необходимо создать пустой каталог в сети или на компьютере, в котором в дальнейшем мы будем хранить файлы базы 1С Предприятие. Например, создадим каталог «InfoBases» в разделе «Документы». Это будет место хранения базы данных, но пока без данных.

Создание базы данных в каталоге «InfoBases». Теперь создадим саму базу 1С. Создание новой информационной базы 1С Предприятие 8 начнем с запуска информационной базы (двойным щелчком по ярлыку 1С). В окне запуска нажимаем «Добавить». Появится окно «Мастера добавления информационной базы», в котором выбираем «Создание новой информационной базы» (см. рис.) и нажимаем кнопку «Далее >».

На следующем шаге выбираем каким образом мы будем создавать новую базу — из шаблона (имеются ввиду шаблоны типовых конфигураций 1С, такие как 1С Бухгалтерия или 1С Зарплата и управление персоналом, которые заполняются в этом окне после установки их на компьютер) или «пустую», без конфигурации.

Нашей цели соответствует второй вариант «Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной ранее информационной базы». Выбираем его и нажимаем «Далее >».

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

Следующими шагами указываем: место хранения информационной базы — указываем путь до каталога, который мы создали до этого. Будем создавать новую базу в этом каталоге (см. второй рисунок); язык указываем «Русский» и кликаем «Далее >».

В следующей форме указываем параметры запуска информационной базы 1С Предприятие 8 — все пункты устанавливаем «Выбирать автоматически» и нажимаем «Готово». Новая файловая информационная база 1С Предприятие 8 создана.
Теперь рассмотрим каким образом создается клиент-серверная информационная база 1С Предприятие 8.

Создание новой информационной базы 1С Предприятие 8 в клиент-серверном варианте

Клиент-серверную базу 1С Предприятие 8 можно создать несколькими способами:

  • через Утилиту администрирования серверов 1С Предприятия;
  • через Мастера добавления информационной базы (аналогично файловой);

Рассмотрим оба этих способа.

Создание клиент-серверной информационной базы 1С Предприятие 8 через утилиту администрирования серверов

Утилита администрирования серверов 1С устанавливается при установке платформы 1С Предприятие 8.

Что бы вы лучше поняли логику создания клиент-серверной базы, создадим её через утилиту администрирования 1С Предприятие 8. Для этого раскрываем Локальный кластер и через контекстное меню, вызванное по нажатию на «Информационные базы», выбираем «Создать» — «Информационная база».

Заполняем параметры создаваемой базы:

  • Имя: Указываем имя в списке баз MS SQL Server;
  • Описание: Описание в списке баз MS SQL Server;
  • Защищенное соединение: по умолчанию — выключено;
  • Сервер баз данных: имя сервера, на котором устанавливает база, в нашем примере «SERVER»;
  • Тип СУБД: используемый тип СУБД, в нашем примере MS SQL Server;
  • База данных: имя базы данных, как она будет называться в локальном кластере 1С — «I-am-a-programmer.ru» (по этому имени мы будем подключаться к серверу при запуске 1С Предприятия);
  • Пользователь/пароль пользователя БД: регистрационные данные администратора MS SQL Server, имеющего права на создание новых баз данных;

и не забываем установить галочку «Создать базу данных в случае её отсутствия» (не установлена в примере).

При нажатии ОК, база будет создана в MS SQL SERVER и подключена к локальному кластеру 1С в утилите администрирования серверов 1С Предприятие 8. В результате, в списке клиент-серверных баз появится новая база «I-am-a-programmer.ru». Эту же базу со всей структурой вы сможете так же увидеть в менеджере MS SQL SERVER.

Создание новой клиент-серверной информационной базы 1С Предприятие 8 завершено, но что бы работать с созданной базой, её необходимо подключить в окне запуска 1С Предприятие. Вопрос подключения баз 1С Предприяте 8 рассматривается ниже.

Создание клиент-серверной информационной базы 1С Предприятие 8 через мастера добавления информационной базы 1С

В мастере добавления информационной базы указываем, что будем создавать базу на сервере 1С Предприятие (см. рис.).

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

Добавление в окне запуска существующей базы данных 1С Предприятие 8

В случае, если у вас имеется созданная база данных 1С Предприятие 8 и вам необходимо её подключить, то в Мастере добавления новой базы, выбираем «Добавление в список существующей информационной базы»:

В следующем окне указываем тип подключаемой базы:

  • На данном компьютере или на компьютере в локальной сети;
  • На веб-сервере;
  • На сервере 1С Предприятие 8.

Соответственно, первый вариант подключения относится к файловым информационным базам. Для их подключения указываем адрес размещения папки с базой 1С Предприятие 8. В начале статьи мы создавали базу, для её подключения указываем путь до её расположения.

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

Третий вариант нужен для подключения клиент-серверной базы 1С Предприятие 8 размещенной на сервере 1С Предприятие 8.

Этот вариант подключения рассмотрим подробнее. Подключение клиент-серверной базы данных 1С Предприятия очень похоже на подключение файловой ИБ 1С, единственное отличие — мы указываем не папку хранения данных, а базу данных на сервере хранения ИБ. Соответственно, в форме подключения указываем кластер серверов 1С:Предприятие 8 «SERVER» и название информационной базы в кластере «I-am-a-programmer.ru», которые мы создали чуть выше.

В остальном, подключение одинаково для всех типов информационных баз.

После этих операций, в списке информационных баз добавится новая строка с подключенной базой 1С Предприятие 8.

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

Создание новой информационной базы 1С Предприятие 8 успешно завершено!

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

На сегодня ВСЁ! Желаю приятной работы с 1С Предприятие 8.

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

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

Логотип 1С

Особенности настройки и установки сервера 1С

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

  • организация или предприятие, делопроизводство которого ограничено 500 операциями в сутки;
  • организация, для которой необходим не только стандартный набор операций по бухгалтерскому учету или кадровому делу в размере менее 500, но и дополнительные действия, такие как связь с банком, работа с интернет-магазином, формирование документов по материальным запасам в автоматическом режиме и т.д.);
  • крупное предприятие, работа с платформой в котором основывается на интерактивности, т.е., возложение обязанностей по формированию операций непосредственно на пользователя.

Далее необходимо рассмотреть варианты аппаратной части для предложенных трех случаев.

Обратите внимание! Следует заметить, что рекомендуется устанавливать именно серверное «железо» (процессоры семейства Xeon, отказоустойчивые и быстродействующие SSD, регистровая память и т.д.).

  1. В первом случае ЦПУ должен обладать базовой частотой не менее 1,8 ГГц, объем ОЗУ должен составлять не менее 8 Гб, емкость твердотельного накопителя не менее 120 Гб и скоростью сетевого интерфейса не менее 1 Гбит/сек в случае, если базы SQL установлены на стороннем сервере. При смежной установке требуется подъем тактовой частоты ЦПУ до 2 ГГц, объема ОЗУ до 32 Гб и емкости жесткого диска до 500 Гб.
  2. Второй вариант также предусматривает два вида организации сервера. Для первого случая (раздельная установка платформы и базы) тактовая частота начинается от 2 ГГц, объем ОЗУ от 32 Гб, SSD от 500 Гб, скорость сетевого интерфейса 1 Гбит/сек. В случае смежной установки используется процессор с частотой 3 ГГц, ОЗУ не менее 128 Гб, SSD емкостью не менее 1 Тб, скорость передачи данных по сети не менее 1 Гбит/сек.
  3. В третьем случае использование раздельного хранения базы данных настоятельно не рекомендуется. Взаимодействие двух решений в рамках одного сервера обеспечивается сборкой на базе ЦПУ с тактовой частотой 3 ГГц и максимально доступным количеством потоков (зависящих от ядер), объемом ОЗУ не менее 128 Гб, SSD не менее 1 Тб и скоростным сетевым интерфейсом не менее 1 Гбит/сек.

Важно. Необходимо помнить, что конкретный выбор комплектующих сервера зависит от четко поставленной задачи. Чем выше потребности – тем выше требования к вычислительным мощностям и отказоустойчивости, которая хорошо проявляется у серверных операционных систем семейства Microsoft Windows Server.

Для конфигурации программной части под 1с сервер установка и настройка приложений производится в соответствии с нижеизложенными инструкциями.

Установка СУБД MS SQL Server

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

  • необходимо скачать установочный дистрибутив на жесткий диск сервера с сайта Microsoft (доступные версии https://support.microsoft.com/en-us/kb/2936603) и произвести настройку системы, как описано в главе ниже;
  • запустить мастер установки от имени администратора (правый щелчок мыши – запуск от имени администратора);
  • в открывшемся диалоговом окне необходимо выбрать установку, после чего потребуется ввести ключ продукта в зависимости от версии выпуска;
  • в разделе «Роль установки» необходимо выбрать пункт «Установка компонентов SQL Server», при выборе компонентов на следующем шаге нажать кнопку «Выбрать все»;

Выбор компонентов SQL при установке

  • на этапе настройки экземпляра рекомендуется оставить значения по умолчанию, а также не изменять пути, прописанные в переменных;

Выбор элемента по умолчанию

  • применить значения по умолчанию до этапа настройки компонента Database Engine, здесь на вкладке «Конфигурация сервера» необходимо определить имя суперпользователя (общепринято использовать логин sa) и пароль для его учетной записи, использование аутентификации средствами ОС Windows крайне нежелательно.

Выбор режима аутентификации и пары логин\пароль

  • Вкладки «Каталоги данных» и «FILESTREAM» позволяют настраивать пути к БД пользователей в экспертном режиме, если в этом нет необходимости, рекомендуется использовать значения, установленные по умолчанию;
  • Нажимать кнопку далее до конца установки сервера базы данных.

Обратите внимание! Версия MSSQL Express является абсолютно бесплатной и полностью удовлетворяет запросы малых предприятий.

Настройка Windows для установки сервера 1С

Для корректной работы базы данных должна быть выполнена настройка sql для 1с наряду с общими настройками системы в соответствии с рекомендациями разработчика платформы 1С:Предприятие. Эти действия можно разбить по шагам:

  1. Если не требуется иного, произвести выравнивание секторов дискового пространства (граница 1024 Кб) и произвести форматирование с размером блока 64 Кб (официальная инструкция Microsoft: https://technet.microsoft.com/en-us/library/dd758814.aspx).
  2. В локальных политиках безопасности разрешить выполнение задач по обслуживанию томов пользователю, от чьего имени будет запускаться сервер базы данных (официальная инструкция Microsoft: https://msdn.microsoft.com/en-us/library/ms175935.aspx). Для проверки корректности работы службы нужно создать новую базу данных размером не менее 5 Гб, если отклик получился моментальный – все работает правильно, тестовую базу можно удалять.

Разрешение выполнения задач в ПБ для томов

  1. Если сервер 1С: Предприятие и СУБД 1С SQL установлены раздельно, то в локальных политиках безопасности разрешить блокировку страниц в памяти пользователю, от чьего имени будет запускаться сервер базы данных (https://msdn.microsoft.com/ru-ru/library/ms190730(v=sql.120).aspx).

Разрешение выполнения задач в ПБ для блокировки страниц

  1. Перевести план электропитания в режим «Высокая производительность» (Панель управления – Электропитание).
  2. Открыть свойства папки с файлами данных (DATA) и папки журнала (LOG), перейти в раздел расширенных настроек и убедиться, что сжатие файлов данных отключено (галочка снята).

Снятие флага сжатия данных

  1. Если на сервере настроено автоматическое резервное копирование, то добавить в исключения менеджера файлы СУБД MSSQL (они не должны быть заняты менеджером копирования).

На этом настройку системы можно считать законченной, однако также необходима настройка MSSQL для 1с в соответствии со следующими рекомендациями (все действия осуществляются через менеджер СУБД под пользователем sa):

  1. Если сервер 1С и MSSQL установлены раздельно, то необходимо открыть свойства СУБД и в разделе «Память» (Memory) выставить верхнюю (половина от всей имеющейся) и нижнюю границы (Общая – 1024*Общая/16384 (Мб) – формула означает, что остается 1 Гб на работу системы на каждые 16 Гб общего объема). В случае совместной установки необходимо опытным путем вычислить и учесть объем ОЗУ, требуемый для работы платформы 1С.

Вычисление и установка объема ОЗУ

  1. Если сервера БД и 1С установлены раздельно, то в свойствах «Процессоры» (Processors) СУБД необходимо выставить приоритет для базы данных («Boost SQL Server priority»).

Установка флага приоритета для БД

  1. На вкладке настройки баз данных («Database settings») можно (и желательно) настроить пути, используемые по умолчанию. Следует помнить, что официальные инструкции Microsoft рекомендуют хранить файлы БД и журналов на разных дисковых пространствах, при этом к первым время отклика должно быть не более 20 мс, а ко вторым – не более 5 мс (мс – миллисекунды).

Поля ввода значения путей по умолчанию

  1. На вкладке «Расширенные» («Advanced») установить значение параметра «Max degree of parallelism» равным 1.

Установка параметра значения

Добавление пользователя в MS SQL Server

Для создания логина (или логинов) для базы (баз) данных необходимо авторизоваться в менеджере СУБД 1C SQL Server под именем суперпользователя (sa). Далее выполнить следующие шаги:

  1. Раздел «Безопасность» («Security») – «Имена входа» («Logins»), нажать на нем правой кнопкой мыши и выбрать «Создать имя входа» («Create login»).
  2. В открывшихся свойствах на вкладке «Общие» («General») ввести имя пользователя и его пароль.

Ввод параметров для пользователя

  1. Не закрывая окна, перейти во вкладку «Роли сервера» («Server roles») и назначить полномочия редактируемому пользователю (public, dbcreator – для пользователя, дополнительно sysadmin – администратору БД).
  2. На вкладке «Защищаемые объекты» («Securable») разрешить подключение к SQL (галочка «соединение SQL»).

На этом этап настройки пользователя БД завершен.

Установка сервера 1С

Установка сервера 1С начинается с установки основного элемента – технологической платформы, для ее получения необходимо следовать следующим шагам:

  • заключить Договор поддержки с любым официальным дилером 1С;
  • получить логин и пароль от личного кабинета с доступными конфигурациями и обновлениями;
  • получить ключ аппаратного шифрования на указанное в Договоре количество пользователей (HASP) и установить его в USB разъем сервера;
  • скачать дистрибутив технологической платформы.

После того, как вышеописанные действия выполнены, необходимо запустить инсталлятор от имени Администратора системы:

  • в приветственном информационном окне нажать кнопку «Далее»;
  • в списке устанавливаемых компонентов выбрать необходимые (по умолчанию выделены все, нужные для корректной работы платформы), нажать «Далее»;
  • на вкладке выбора языкового интерфейса оставить по умолчанию язык системы или выбрать необходимый, нажать «Далее»;
  • установить драйвер ключа аппаратного шифрования, нажать «Далее»;
  • в конце установки нажать «Готово».

Обратите внимание! В результате выполненных действий в меню «Пуск» и на рабочем столе появятся иконки 1С, дающие доступ к технологической платформе. После перезагрузки сервера можно приступать к его окончательной настройке.

Настройка сервера 1С

Вначале необходимо создать рабочую базу данных, это можно сделать двумя способами:

  1. Через консоль управления серверами «1С:Предприятие». Выбрать Console Root -> Central 1C:Enterprise 8.3 servers -> (*)hq-1c-app02-hw -> Кластеры -> Локальный кластер -> Информационная база, правый щелчок мыши -> Создать -> Информационная база. Задать имя на латинице, Защищенное соединение = выключено, Задать имя компьютера с СУБД, Тип СУБД = MS SQL Server, Пользователь и пароль БД, Разрешить выдачу лицензий = да, установить галочку «Создать базу в случае ее отсутствия», нажать «ОК». База создана.

Создание БД при помощи менеджера 1С

  1. Экспертный режим. Для создания базы 1С настройка SQL производится непосредственно через менеджер СУБД MSSQL, для этого необходимо создать копию существующей базы <model>. После этого проверить ее настройки в свойствах на вкладке Files, начальный размер файлов БД должен находиться в диапазоне от 1 до 10 Гб, файлов журналов от 1 до 2 Гб, инкрементирующее значение = 512 Мб.

Установка параметров скопированной базы

  1. Определить модель восстановления в режим полного функционала (Full), а параметр Auto update statistics asynchronously перевести в режим включено (True).

Установка дополнительных параметров БД

Созданную БД tempdb в разделе Files разбить на 4 части (tempdev, tempdev01, tempdev02, tempdev03), размер зависит от того, где находятся сами файлы (50 % от дискового пространства, если на отдельном диске, от 1 Гб если на диске с рабочей СУБД). Рабочую базу создать аналогичным образом, размер задавать в соответствии с потребностью.

Выделение квот объема памяти для БД

Также необходимо выставить флаги трассировки в соответствии с инструкциями:

В настройках сетевых протоколов включить режим TCP/IP, отключить Named pipes, если сервера не разделены – включить Shared Memory

Настройка параметров для сети

Выполнить инструкции по настройке обратной связи с операторами БД:

На этом экспертная настройка базы данных завершена.

После того, как база создана, необходимо запустить технологическую платформу и нажать кнопку «Добавить» – «Создание новой информационной базы». Указать наименование базы и местоположение на сервере 1С Предприятия. В открывшемся окне заполнить параметры, соответствующие созданной на прошлом этапе БД. Нажать «ОК» и приступить к работе по настройке необходимой конфигурации.

Возможные сложности, с которыми можно столкнутся при установке и настройке сервера 1С

Когда установка SQL для 1с и платформы Предприятие на сервер были выполнены в соответствии с вышеприведенными инструкциями, проблем возникнуть не должно в принципе. Если ошибки все же появляются, то они однозначно связаны с тремя основными причинами, соответственно решение будет заключаться в их устранении:

Низкая производительность аппаратной части. Будет проявляться в виде системных ошибок, медленной работы ПО и т.д.

Обратите внимание! В этом случае необходимо сконфигурировать свой сервер, чтобы обеспечить программному обеспечению оптимальный режим работы.

Несвоевременное обслуживание дисковых пространств. Также может привести к значительному замедлению работы сервера. Если используется HDD, то необходимо хотя бы один раз в неделю производить его проверку с последующей дефрагментацией. В случае использования SSD (что гарантирует максимальный уровень производительности) дефрагментация категорически запрещена, необходимо настроить непрерывный мониторинг состояния диска.

Ошибка «Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия». Возникает, когда сервер не может обнаружить HASP ключ. Если его нет, то необходимо приобрести, если же он уже вставлен в USB то дело может быть в системной службе. Для решения проблемы надо запустить командную строку от имени администратора и выполнить команду net start «HASP Loader”, в большинстве случаев такой шаг помогает.

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

Обратите внимание! После чего добавлять пользователя в нужные группы, обеспечивая ему достаточные права доступа.

Как видно, установка 1с sql достаточно ответственное занятие, включающее в себя работу как с аппаратной частью, так и с программным обеспечением, что требует присутствия некоторых навыков в этой области. Однако представленная статья в полной мере рассматривает, как установить 1С сервер, предлагая конкретную пошаговую инструкцию. Если ей следовать, то как результат проделанной работы будет рабочая версия БД MS SQL для 1С, привязанная к технологической платформе.

Add a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *