1с подключение к sql базе
В этот раз хотелось бы снова поговорить о прямых запросах к СУБД. Да, автор статьи слышал о том, что 1С крайне не рекомендует этим заниматься. Однако же заниматься этим мы будем с одной оговоркой – базы, с которыми предстоит поработать имеют отличное от 1С происхождение. Уже предчувствую возгласы – есть же «Внешние источники данных» в конфигурации, ими и пользуйтесь. Пользовались, умеем, однако же мнения публики об этом объекте конфигурации весьма противоречивы и многие из них далеко не восторженные. Основное преимущество их – понятная всякому, даже начинающему, программисту 1C методика работы с ними – либо аналогично объектам вроде документов и справочников, либо очень напоминающая непериодический независимый регистр сведений.
Вместе с тем есть и неприятные особенности. Прежде всего – отдельные типы данных «внешний источник» переваривает со скрипом. А чтобы положить в этот источник ссылку объекта в том виде, в каком она хранится в СУБД приходится указывать тип «Уникальный идентификатор», преобразовывать идентификаторы объектов в строки и заниматься перестановками групп символов. Случалось и так, что при указании строки подключения в пользовательском режиме ошибался, но вместо повторного запроса таковой просто получил бесконечные исключения при попытке обращения к нему.
В тоже время, для работы с иными базами данных «Внешний источник данных» нам совершенно не обязателен. Ведь научить 1C выполнять запросы к MS SQL или иной СУБД большой проблемы не составляет. Зато преимуществ получается сразу довольно много. Как ни крути, а СУБД – запросы как способ интеграции во многом выигрывают даже у WEB-сервисов, а у выгрузок/загрузок через файловую систему подавно.
Начнем с самого простого. Имеем стороннюю базу с полезными нам данными. Имеем 1С, которой эти данные полезны, но которая их не имеет. Как же их достать? В MS SQL отлаживаем запрос, на стороне 1С обеспечиваем формирование его текста с необходимыми условиями отбора и создаем пару функций, позволяющих подключиться к СУБД и получить из нее таблицу значений. Ну а дальше вопрос её обработки, зависящий от конкретной задачи и особенностей выбранного пути её решения.
В общем-то на этом вопрос получения данных из внешней базы закрывается. Но остается второй, куда более обширный вопрос – как же наоборот, выгрузить данные из 1С в базу данных на «чистом» SQL? Web-сервисы, COM-соединения и промежуточные файлы не рассматриваем ввиду тематики статьи, хотя они имеют место быть и часто даже оказываются уместными, про эти вещи и без меня написано достаточно. А в рамках данной статьи нам будут интересны именно пути, предполагающие прямое взаимодействие с SQL.
Способ 1. Очевидный (но не лучший).
Уверен, что это первое, что приходит в голову разработчику, по крайней мере не из касты 1С – вооружаемся SQL-профайлером, любой консолью запросов и любой обработкой, раскрывающей структуру хранения базы данных и готовим прямой запрос к данным 1С. Далее этот запрос размещается где-нибудь в недрах стороннего продукта и обеспечивает получение данных. Это в теории. На практике же кроме использования на уровне СУБД нумерованных имен вместо отражающих смысл хранимой информации вылезают «подводные камни», подробнее о которых можно посмотреть здесь. Но в любом случае на выходе имеем нечто подобное:
Из плюсов можно отметить разве что возможность передать эти задачи IT-специалистам из областей, отличных от 1С и в частности – занимающимся поддержкой целевой базы. Правда тут тоже есть свои ньюансы, т.к. радиус кривизны рук сильно варьируется не только среди 1С-ников, и на сервере с СУБД могут «завестись» интересные задания, гоняющие одни и те же данные через десяток таблиц и пытающиеся обработать миллионы строк из какого-нибудь регистра с себестоимостью в нашей 1С, а разобраться в них, не принимая участия в непосредственном создании окажется крайне затруднительно. Но не забывайте, что когда-нибудь могут попросить помочь с этим разобраться и Вас.
Способ 2. Удобный (хотя и не столь очевидный)
Мысль эта посещает не сразу, а когда посещает часто бывает уже поздновато, но все-таки: Если со стороны внешней базы не получается прочесть данные с нормальными именами полей, то почему бы не заставить 1С работать на запись? Реализация этого мероприятия несколько сложнее, чем чтения из внешней базы, тем не менее ничего сверхъестественного из себя не представляет. Прежде всего потребуется еще одна функция, которая будет выполнять SQL запросы, не предполагающие возврат какого-либо результата.
Далее обратим внимание на структуру данных, таблиц, в которые будем писать. Помимо целевых полей, нам потребуется ключ, позволяющий однозначно идентифицировать принадлежность строк данных во внешней базе объектам 1С. Иначе говоря, смотрим как 1С хранит ссылки объектов и добавляем во всякой таблице с выгружаемыми нами данными поля с аналогичным типом данных и размерностью, т.е. binary(16)
Определяемся предполагает ли наша разработка соответствие одному объекту базы 1С одной записи внешней таблицы (как пример – отражение записи справочника), или же записей может быть несколько (отражение или имитация движений документов или табличных частей объектов). Для второго случая добавляем поле с номерами строк.
Не обязательно, но полезно при разборе полетов – Дата и время фактической записи во внешнюю таблицу.
Осталось самое главное – обеспечить запись данных в SQL. Как именно это будет выполняться – в подписке при непосредственном изменении (записи) объекта в 1C, регламентным заданием по расписанию, или по требованию пользователя зависит только от контекста задачи и личных вкусов разработчика. Нам же важен сам механизм. В зависимости от наличия одной строки (идентифицируется Ссылкой однозначно) или группы строк (т.е. строка идентифицируется по Ссылке и автономеру строки) запись будет слегка отличаться.
Принцип работы таков:
- Обеспечиваем выборку и при необходимости программную обработку данных. Функциям в качестве основного аргумента подходит как результат запроса, так и таблица значений.
- Собираем параллельно два запроса в формате SQL, первый удаляет из внешней таблицы записи по значению ключевого поля, второй добавляет свежие. Не забываем, что длина неограниченной строки в реальной жизни ограничена и составляет в районе 200 000+ символов, после которых растет только значение, определяемое через СтрДлина(), но не сама строка. Данный факт сам собой задает нам размер объема данных, которые могут быть обработаны за одно обращение к SQL. После превышения предельной длины строки немедленно выполняем запросы и приступаем к формированию новых. Тем самым, обработка данных ведется блоками. Даже если бы нам очень не хотелось морочиться с её обеспечением, это пришлось бы сделать применительно к большинству практических задач.
- По завершении обхода еще раз выполняем запрос и записывает тем самым последнюю порцию данных.
Примеры обращения:
И, наконец проверяем результат:
С некоторых пор при экспорте данных из 1С на уровне SQL стараюсь работать только на запись. Проблем с быстродействием замечено не было. Затраты времени – минимальны, фактически процесс разработки сводится к написанию запроса. Думается, что и для поклонников каноничного объекта «Внешние источники данных» аналогичный инструмент может быть легко реализован, хотя и без гарантий отсутствия некоторых проблем с совместимостью и преобразованиями типов. Среди основных достоинств замечены:
В данной статье приведены экземпляры кода на языке 1С, которые позволяют подключаться к базе данных на SQL-сервере, получать из нее данные, а также записывать новые и обновлять существующие записи в таблицах этой базы данных. Код протестирован на платформе 8.3.5, а также на версиях SQL Server 2008 R2 и SQL Server 2012. Операционная система Windows Server 2008 и Windows Server 2012. Есть предположение, что указанный код будет работать и на других версиях 1С, SQL и Windows.
0. Оглавление
1. Постановка задачи
Итак, имеется SQL-сервер с адресом WIN2012\TEST_SQL. Для подключения используется имя входа SQL-сервера UserDB с паролем Pass123456.
На сервере размещена база данных с именем TestDB. В базе имеется таблица с именем Table_1, в которой 3 столбца:
Изначально таблица пустая:
У пользователя UserDB есть права на чтение и запись в базу данных TestDB. В данном случае пользователь является владельцем указанной базы данных.
Требуется научиться записывать в базу данных и читать из базы данных из 1С при помощи прямых запросов к SQL-серверу.
2. Подключение к SQL-серверу
Весь приведенный ниже код может работать как на клиенте, так и на сервере. Главное чтобы был доступен COM-объект «ADODB» (подробнее о данной библиотеке можно прочитать, например, здесь). Также с клиента (или с сервера, смотря где выполняется код) должен быть доступен указанный SQL-сервер (настроено правило в Брандмауере для возможности внешнего подключения). Код приводится совсем простой, для понимания с чего вообще начинать разработчику, который раньше с этим не сталкивался.
Итак, для подключения необходимо создать COM-объект «ADODB». Для этого выполняется код 1С:
Результат работы в 1С:Предприятии:
Теперь, в общем то, можно выполнять любой запрос SQL через данный COM-объект. Посмотрим как это делать на самых распространенных примерах.
3. Добавление записей в таблицу
Теперь добавим новую строку в нашу пока еще пустую таблицу. Для этого необходимо выполнить код:
Смотрим результат и видим, что строка появилась в таблице:
4. Обновление записей в таблице
Теперь попробуем обновить все записи в таблице со значением C_Numeric=123456. Для этого выполняем код:
Проверяем, что запись обновилась:
5. Просмотр выборки из таблицы
Писать и обновлять записи в таблице мы научились. Теперь посмотрим как просматривать выборку из запроса с SQL-сервера:
Результат в предприятии:
6. Удаление записей из таблицы
Для удаления всех записей в таблице со значением C_Numeric=123456 выполняем код:
Проверяем, что записей в таблице не осталось:
7. Закрытие соединения
Ну и после выполнения всех необходимых действий необходимо закрыть соединение с SQL-сервером. Для этого достаточно вызвать метод Close() созданного COM-объекта:
8. Общий текст процедуры
Общий текст всей процедуры получился следующий:
Результат работы в 1С:Предприятии:
Смотрите также:
В данном вебинаре я расскажу о применяемых в нашей компании правилах и приемах доработки типовых конфигураций 1С для облегчения их дальнейшей поддержки и обновления. В видео использованы материалы…
Официально, платформа 1С:Предприятие 7.7 работает только с MS SQL Server 2000. Но с помощью небольших манипуляций можно организовать стабильную работу и с последней, на момент написания статьи, версий Microsoft SQL…
Небольшая зарисовка на тему, какие были бы сливные трубы, если бы их делали 1С-ники.
В данной статье я расскажу о том как добавлять новые или уже существующие базы данных на сервер «1С:Предприятия» 8.3 ( для других версий платформы — 8.1 и 8.2 действия аналогичны). Будут рассмотрены варианты добавления информационной базы как из окна запуска 1С, так и через программу администрирования серверов «1С:Предприятия» (в ОС семейства Windows). А также затронуты некоторые вопросы администрирования информационных баз в кластере серверов «1С:Предприятия».
0. Оглавление
1. Добавление информационной базы из окна запуска «1С:Предприятие»
Создадим новую базу данных на сервере «1С:Предприятия» из установленного ранее шаблона типовой конфигурации. Для этого запустим «1С:Предприятие» и в окне запуска нажмем «Добавить…» для добавления информационной базы.
Запуститься мастер добавления информационной базы, выберем пункт «Создание новый информационной базы» установив соответствующий переключатель и нажмем «Далее».
В списке установленных шаблонов конфигураций выберем необходимый нам шаблон и снова нажмем «Далее».
Введем имя базы данных, как она будет отображаться в списке информационных баз, тип расположения укажем «На сервере 1С:Предприятие» и нажимаем «Далее».
На следующей странице необходимо указать параметры создаваемой информационной базы, а именно:
(В данном примере параметры выбраны в соответствии с параметрами установки сервера «1С:Предприятия», принятыми в статье Установка сервера «1С:Предприятие» 8 на MS SQL Server 2012 / 2008 (R2))
- Имя кластера серверов 1С:Предприятия — как правило, совпадает с сетевым именем компьютера, где установлен сервер «1С:Предприятия» (центральный кластер сервера);
- Имя создаваемой базы в кластере — имя по которому будет происходить обращаться к информационной базе. Должно быть уникальным в пределах данного кластера;
- Защищенное соединение — по умолчанию отключаем;
- Тип СУБД на которой будет храниться база данных — в данном примере MS SQL Server;
- Имя сервера базы данных — как правило, состоит из сетевого именем компьютера, где установлен сервер баз данных и имени экземпляра сервера (если есть), разделенными знаком «\»;
- Имя базы данных на сервере баз данных — для удобства будем придерживаться правила, что имя базы данных должно совпадать с именем информационной базы в кластере. Кроме того, в случае использования MS SQL Server, первый символ в имени базы данных может быть только буквой латинского алфавита или символом «_», последующие символы могут быть только буковой латинского алфавита, цифрой или символами «_» и «&», имя должно быть уникальным в пределах данного экземпляра сервера баз данных и не превышать 63 символов. Если база данных уже существует на сервере, будет использоваться текущая база, если нет и установлен флаг «Создать базу данных в случае ее отсутствия», произойдет добавление новой базы на сервер баз данных.
- Пользователь базы данных — пользователь СУБД, который станет владельцем базы на сервере в случае создания новой базы данных или имеющий права для работы с существующей;
- Пароль пользователя — пароль пользователя от лица которого будет осуществляться доступ к базе данных;
- Смещение дат — 0 или 2000. Данный параметр определяет число лет, которое будет прибавляться к датам при их сохранении в базе данных Microsoft SQL Server и вычитаться при их извлечении. Дело в том, что тип DATATIME, используемый Microsoft SQL Server, позволяет хранить даты в диапазоне с 1 января 1753 года по 31 декабря 9999 года. Если при работе с информационной базой может возникнуть необходимость хранения дат, предшествующих нижней границе данного диапазона, смещение дат следует выбрать 2000. Кроме того, если в прикладном решении используются регистры накопления или регистры бухгалтерии (а скорее всего так оно и будет) также в «поле смещение» дат необходимо установить значение 2000.
- Установить блокировку регламентных заданий — установка флага позволяет запретить выполнения регламентных заданий на сервере для данной информационной базы. Следует устанавливать в случае создания тестовых информационных баз, где выполнение регламентных заданий не несет никакой практической нагрузки.
Установив все параметры информационной базы нажимаем «Далее».
Ну и наконец, указываем параметры запуска для создаваемой базы и нажимаем «Готово» для запуска процесса создания новой информационной базы. При этом будет создана новая информационная база на на сервере «1С:Предприятия», в случае необходимости, создана новая база данных на сервере баз данных, а также произойдет загрузка данных из шаблона конфигурации.
Если все вышеперечисленные действия завершились успешно, мастер завершит свою работу, а мы увидим только что созданную базу и в списке информационных баз в окне запуска «1С:Предприятие».
2. Добавление информационной базы из консоли администрирования серверов «1С:Предприятия»
Теперь добавим еще одну информационную базу в кластер серверов, но уже через оснастку «Администрирование серверов 1С:Предприятия» (предварительно должна быть установлена). Найти ее можно:
Ну и в любом случае оснастку можно запустить выполнив файл «1CV8 Servers.msc» располагающийся в каталоге установки «1С:Предприятие» в подкаталоге «common».
Если оснастка «Администрирование серверов 1С Предприятия» запускается на том же самом компьютере, где установлен сервер «1С:Предприятия», то в дереве слева, в ветке с сетевым именем текущего компьютера, мы должны увидеть данный кластер серверов под названием «Локальный кластер». Раскрыв вкладку «Информационные базы» увидим все информационные базы в данном кластере серверов (например базу данных созданную через окно запуска «1С:Предприятие» на предыдущем шаге). Для добавления новой информационной базы кликнем правой кнопкой мыши по данной вкладке, в контекстном меню выберем «Создать» — «Информационная база».
Откроется окно параметров создаваемой информационной базы. Список параметров тот же самый, что был описан выше в п.1 данной инструкции. Заполнив все параметры нажимаем «ОК» для запуска процесса создания новой информационной базы. При этом будет создана новая информационная база на на сервере «1С:Предприятия» и, в случае необходимости, создана новая база данных на сервере баз данных.
Если все вышеперечисленные действия завершились успешно, окно параметров закроется, а мы увидим только что созданную базу данных в списке информационных баз текущего кластера.
А если зайти в программу «Среда SQL Server Management Studio » и подключиться к текущему экземпляру MS SQL Server, можно увидеть созданные на предыдущих шагах базы данных.
3. Свойства информационной базы
Чтобы просмотреть или изменить параметры конкретной информационной базы необходимо в оснастке «Администрирование серверов 1С Предприятия», в списке информационных баз кликнуть по ней правой кнопкой мыши и в контекстном меню выбрать «Свойства». Для аутентификации в консоли администрирования необходимо использовать администраторов в соответствующих информационных базах. Другими словами данная проверка аналогична аутентификации при подключении к информационной базе через клиента «1С:Предприятие».
Как видно, к списку уже знакомых нам параметров добавились:
- Блокировка начала сеансов включена — флаг, позволяющий включить блокировку начала сеансов с информационной базой, если флаг установлен, то:
- Существующие сеансы могут продолжать работу, устанавливать новые соединения, а также запускать фоновые задания;
- Установка новых сеансов и соединений с информационной базой запрещено.
Изменив необходимые параметры нажимаем «Применить» для сохранения изменений или «ОК» для сохранения и закрытия окна свойств информационной базы.
4. Добавление существующей информационной базы в список информационных базы окна запуска «1С:Предприятие»
Ну и наконец, нам осталось только добавить созданную с помощью оснастки «Администрирование серверов 1С Предприятия» информационную базу в список информационных баз окна запуска «1С:Предприятие». Для чего в данном окне нажимаем «Добавить…» и в запустившемся мастере добавления информационной базы/группы выбираем соответствующий пункт и нажимаем «Далее».
Вводим имя информационной базы, как она будет отображаться в списке, тип расположения информационной базы выбираем «На сервере 1С:Предприятия» и снова жмем «Далее».
Вводим адрес кластера серверов «1С:Предприятия» и имя информационной базы, как оно задано в данном кластере. Нажимаем «Далее».
Ну и наконец задаем параметры запуска информационной базы и нажимаем «Готово» для завершения работы мастера.
Наша база появилась в списке информационных баз. Надо понимать, что это пустая (чистая) база данных, и далее следует загрузить в нее данные из шаблона, или из файла предварительно выгруженных данных.
Смотрите также:
В ситуации когда необходимо перенести базу данных SQL с одного экземпляра MS SQL Server на другой, или изменить каталог хранения файлов базы данных, помогут операции отсоединения (Detach) и присоединения (Attach) баз данных MS SQL Server.…
При запуске клиент «1С:Предприятие» выполняет поиск клиентской лицензии. Алгоритм поиска лицензии не столь тривиален. Ниже приведен данный алгоритм для различных режимов запуска «1С:Предприятие», а также алгоритм поиска лицензии при запуске сервера «1С:Предприятие», для версии «1С:Предприятие»…
При запуске клиент «1С:Предприятие» выполняет поиск клиентской лицензии. Алгоритм поиска лицензии не столь тривиален. Ниже приведен данный алгоритм для различных режимов запуска «1С:Предприятие», а также алгоритм поиска лицензии при запуске сервера «1С:Предприятие», для версии «1С:Предприятие»…
В данной статье приводится подробная пошаговая инструкция по установке сервера системы «1С:Предприятия» 8.3 (в версиях 8.1 и 8.2 набор действий аналогичен) в операционных системах семейства Windows (Windows Server 2008 (R2) или Windows Server 2012) на СУБД MS SQL Server (Microsoft SQL Server 2008 R2 или Microsoft SQL Server 2012).
0. Оглавление
1. Начальные сведения
Система «1С:Предприятие» помимо файлового варианта может работать с информационными базами и в клиент-серверном варианте. В последнем случае понимается архитектура, состоящая из нескольких программных уровней, схематично изображенных на рисунке ниже.
- Клиентские приложения, тонкие клиенты и веб-клиенты — это и есть «1С:Предприятие» в различных режимах запуска, с которыми работает конечный пользователь. Для клиентских приложений и тонких клиентов требуется установка клиента «1С:Предприятия» на компьютеры пользователей (или на сервер терминалов), для веб-клиента достаточно веб-браузера.
- Кластер серверов «1С:Предприятие» представляет собой совокупность рабочих процессов, функционирующих на одном или нескольких компьютерах и списка информационных баз, которые размещены в этом кластере. В кластере серверов выполняется вся работа прикладных объектов, выполняется подготовка к отображению форм (чтение объектов информационной базы, заполнение данных форм, расположение элементов и т.д.) и командного интерфейса, формируются отчеты, выполняются фоновые задания. На клиентах происходит лишь отображение информации, подготовленной в кластере серверов. Кроме того на сервере кластера «1С:Предприятия» хранятся служебные файлы, а также журнал регистрации информационных баз.
- Сервер баз данных — на сервере баз данных происходит непосредственное хранение и работа с данными, обеспечиваемое одной из следующих, поддерживаемых системой «1С:Предприятие», систем управления базами данными (СУБД):
- Microsoft SQL Server начиная с версии Microsoft SQL Server 2000 и выше;
- PostgrageSQL начиная с версии 8.1;
- IBM DB2 начиная с версии 9.1;
- Oracle Database начиная с версии 10g Release 2.
Стоит также отметить что не обязательно каждый программный уровень должен располагаться на отдельном физическом компьютере. Кластер серверов может располагаться на одном компьютере с сервером баз данных, веб-сервером и т. д. Например, нередко в небольших организациях встречается следующая структура работы:
В данной статье я буду описывать установку сервера «1С:Предприятия» версии 8.3.4.389 (для других версий платформы «1С:Предприятие» 8.1, 8.2 и 8.3 действия аналогичны) на один компьютер под управлением Windows Server 2008 (R2) или Windows Server 2012 (R2). В качестве СУБД будет рассматриваться Microsoft SQL Server 2008 (R2) или Microsoft SQL Server 2012. Для этого нам понадобится:
- Компьютер, отвечающий системным требованиям для установки сервера «1С:Предприятия» и с установленной на данный компьютер ОС Windows Server 2008 (R2) или Windows Server 2012.
- Компьютер для сервера баз данных, также под управлением ОС Windows Server 2008 (R2) или Windows Server 2012 (может быть компьютером из п.1).
- Права локального администратора на обоих компьютерах. сервера «1С:Предприятия» 8.
- Программная лицензия или ключ защиты HASP4 Net для сервера «1С:Предприятия».
- Дистрибутив для установки Microsoft SQL Server 2008 (R2) или Microsoft SQL Server 2012.
2. Установка СУБД MS SQL Server
Устанавливаем СУБД MS SQL Server на компьютер, служащий сервером баз данных. Для работы системы «1С:Предприятие» достаточно установки компонент:
- Службы компонента Database Engine (Database Engine Services)
- Средства управления — основные (Management Tools — Basic)
- Средства управления — полный набор (Management Tools — Complete).
Параметры сортировки выбираем « Cyrillic_General_CI_AS ». Подробно про установку систем
- Microsoft SQL Server 2008 (R2) я писал здесь.
- Microsoft SQL Server 2012 я писал здесь.
3. Настройка Брандмауэра Windows для работы СУБД
Если сервер баз данных и сервер кластера «1С:Предприятия» находятся на разных физических компьютерах, необходимо на сервере баз данных настроить Брандмауэр Windows таким образом, чтобы сервер «1С:Предприятия» мог работать с СУБД, а именно открыть входящие подключения по порту 1433 (для экземпляра SQL Server по умолчанию).
- Подробно про настройку Брандмауэра Windows для работы Microsoft SQL Server 2008 (R2) / 2012 я писал здесь.
4. Добавление пользователя в MS SQL Server
Далее добавим в MS SQL Server отдельного пользователя, под которым будут подключаться базы данных сервера «1С:Предприятия». Этот пользователь будет также владельцем этих баз данных. Добавляемый пользователь должен авторизовываться на сервере с помощью пароля и обладать набором ролей: dbcreator, processadmin, public. Подробно про добавление пользователя на
- Microsoft SQL Server 2008 (R2) я писал здесь.
- Microsoft SQL Server 2012 я писал здесь.
5. Установка сервера «1С:Предприятия»
Теперь переходим к установке файлов сервера «1С:Предприятия» и запуску соответствующей службы. Для установки требуется дистрибутив технологической платформы «1С:Предприятия». Из перечня поставляемых дистрибутивов подойдут следующие:
-
— позволяет установку 32-разрядного сервера «1С:Предприятия» — позволяет установку как 32-разрядного, так и 64-разрядного сервера «1С:Предприятия»
(Также существует и расширенная версия КОРП сервера 1С:Предприятия 8.3, подробности можно посмотреть на сайте 1С)
Открываем каталог с файлами установки сервера «1С:Предприятия» и запускаем файл setup.exe.
Запуститься помощник установки системы «1С:Предприятия». На первой странице жмем «Далее».
На следующей странице необходимо выбрать те компоненты, которые будут устанавливаться, нам требуются компоненты:
- Сервер 1С:Предприятия — компоненты сервера «1С:Предприятия»
- Администрирование сервера 1С:Предприятия 8 — дополнительные компоненты для администрирования кластера серверов «1С:Предприятия»
Остальные компоненты (перечень компонент может зависеть от конкретного дистрибутива), в зависимости от необходимости, также могут быть установлены на данный компьютер. Сделав выбор жмем «Далее».
Выберем язык интерфейса, который будет использоваться по умолчанию, и нажмем «Далее».
Если сервер «1С:Предприятия» устанавливается как служба Windows (а так в большинстве случаев и следует его устанавливать) рекомендую сразу создать отдельного пользователя, из под которого будет запускаться создаваемая служба. Для этого
- Оставляем включенным флаг «Установить сервер 1С:Предприятие как сервис Windows (рекомендуется)»;
- Переводим соответствующий переключатель в «Создать пользователя USR1CV8».
- Вводим 2 раза пароль для создаваемого пользователя. По умолчанию пароль должен отвечать политики паролей Windows. Подробнее об этом можно прочитать:
- Для Microsoft Windows Server 2008 (R2) — здесь;
- Для Microsoft Windows Server 2012 — здесь.
Можно также и выбрать существующего пользователя для запуска сервера «1С:Предприятия». В этом случае выбранный пользователь должен обладать правами:
Также пользователю обязательно следует дать необходимые права на каталог служебных файлов сервера (по умолчанию C:\Program Files\1cv8\srvinfo для 64-х разрядного и C:\Program Files (x86)\1cv8\srvinfo для 32-х разрядного сервера).
Созданный автоматически пользователь USR1CV8 будет обладать всеми перечисленными правами.
Заполнив соответствующие параметры, жмем «Далее».
Ну и наконец нажимаем «Установить» для того чтобы начать установку. При этом будет произведено копирование файлов выбранных компонент, создание конфигурационных файлов, регистрация компонентов программы, создание ярлыков, а также запуск службы сервера «1С:Предприятия».
По завершении установки помощник предложит установить драйвер защиты — HASP Device Driver. Если используется программная лицензия на сервер «1С:Предприятия», производить установку драйвера нет необходимости. Оставляем или снимаем флаг «Установить драйвер защиты» и жмем «Далее».
Если установка завершена успешно, откроется последняя страница помощника установки. Нажимаем «Готово» для завершения работы мастера.
Убедимся также что появилась и запущена соответствующая служба.
6. Настройка Брандмауэра Windows для работы сервера «1С:Предприятие»
Если к серверу «1С:Предприятия» будут подключаться пользователи через толстый и тонкий клиенты с других компьютеров в сети (а так скорее всего и будет), необходимо позаботиться, чтобы на компьютере, где запущен сервер «1С:Предприятия» были разрешены входящие подключения для портов 1541, 1560—1591. О том как добавить разрешающее правило в Брандмауэр Windows я писал
- Для Microsoft Windows Server 2008 (R2) — здесь;
- Для Microsoft Windows Server 2012 — здесь.
7. Установка лицензий
Теперь пришло время установки программной лицензии на сервер «1С:Предприятия», либо настройка серверного ключа защиты HASP Net 4.
- Подробно, про систему программного лицензирования «1С:Предприятие» 8 я писал здесь. Про первичную установку программных лицензий — здесь.
- Про назначение, установку и администрирование ключей защиты HASP4 Net для «1С:Предприятие» 8 можно прочитать здесь.
8. Заключение
На этом установка кластера серверов «1С:Предприятие» на СУБД MS SQL Server завершена. Теперь можно переходить к следующим этапам развертывания инфраструктуры «1С:Предприятия», таким как:
Смотрите также:
Если к службе Microsoft SQL Server должны подключаться программы с других компьютеров в сети, то необходимо чтобы правильным образом был настроен Брандмауэр Windows на сервере, где запущена служба. А именно разрешены…
Может случиться так, что в процессе установки MS SQL Server 2012 были установлены компоненты, необходимость в которых со временем отпала (или были установлены по ошибке). В этом случае, в целях…
В данной статье я подробно опишу процесс установки Microsoft SQL Server 2008 R2 в Windows Server 2008 R2 (для других ОС семейства Windows процесс аналогичен). Во время установки будут выбраны…
Запись опубликована в рубрике 1С 8 с метками 1Сv8, SQL, Windows Server 2008, Windows Server 2012 R2. Добавьте в закладки постоянную ссылку.
После установки 1С необходимо убедиться что сервер 1С запущен. Автор обычно запускает сервер вручную. Но если вы уверены что сервер 1С запущен, то этот шаг делать не надо.
1.2. Зарегистрировать кластер 1С
Запустить утилиту администрирования серверов 1С:
В открывшемся окне зарегистрировать новый центральный сервер 1С предприятия:
В появившемся окне ввести сетевое имя компьютера, на котором запущен 1С Сервер (или его IP-адрес):
1.3. Зарегистрировать базу 1С на сервере SQL
Для начала регистрации базы необходимо запустить приложение 1С. В появившемся окне "Запуск 1С:Предприятия" регистрируем новую базу нажатием на кнопку "добавить":
Выбираем "Создание новой информационной базы":
В появившемся окне есть возможность создать базу из шаблона, или создать новую пустую базу (в последствии можно будет загрузить базу, загрузить конфигурацию или создать свою конфигурацию):Жмем кнопку далее, вводим название базы и тип расположения базы на сервере:
жмем далее и заполняем поля:
При этом необходимо заметить, что поле "Имя базы данных" - это названия базы на SQL сервере. А поле "Имя информационной базы" - название базы на сервере 1С.
После чего выбираем вариант аутентефикации в 1С (Выбирать автоматически) и жмем кнопку "Готово":
1.4. Загрузить или создать конфигурацию 1С
Запустить конфигуратор с базой:
Загрузить ранее выгруженную информационную базу:
2. Настройка IIS на сервере
2.1. Проверка установленных компонент IIS
Для работы веб-клиента 1С:Предприятия необходимы службы IIS, которые небыли установлены по умолчанию при установке Windows 8.1 x64.
Для их установки следует перейти "Пуск - Панель управления - Программы и компоненты - Включение или отключение компонентов Windows". В появившемся дереве, в ветке "Службы IIS – Службы интернета - Компоненты разработки приложений" отметить все компоненты, как показано на рисунке. Затем нажать кнопку "Ок":
2.2. Разрешение 32-разрядных приложений в пуле приложений
Веб-клиент 1С:Предприятия 8.3 является 32-разрядным приложением. Поэтому для 64-разрядной ОС необходимо разрешить работу оных в пуле приложений сервера IIS. Для этого необходимо перейти "Пуск - Панель управления – Администрирование – Диспетчер служб IIS". В диспетчере служб выбрать "Пулы приложений – DefaultAppPool – Дополнительные параметры". В списке дополнительных параметров переменной "Разрешены 32-разрядные приложения" установить значение "True":
Установить значение в True для параметра "Разрешены 32-разрядные приложения":
2.3. Установка удостоверения пула приложений в качестве удостоверения анонимного пользователя
По умолчанию в качестве анонимного пользователя установлен пользователь IUSR, которого нет в системе. Дабы не создавать оного можно просто включить удостоверение пула приложений в качестве удостоверения анонимного пользователя. Для этого необходимо перейти "Пуск - Панель управления – Администрирование – Диспетчер служб IIS". В диспетчере служб перейти в "Проверка подлинности:
На пункте "Анонимная проверка подлинности" вызвав контекстное меню "изменить":
В открывшемся диалоге отметить "Удостоверение пула приложений". Закрыть диалог, нажав кнопку "ОК".3. Публикация WEB-приложения из 1С
Для публикации приложения необходимо иметь полный доступ на папку проектов IIS. Есть 2 способа публикации приложения из 1С. 1 - сначала создать необходимую папку в каталоге "C:\inetpub\wwwroot\" в нашем случае это папка с названием "Base1C" и дать права текущему пользователю на полный доступ на эту папку. 2 способ зайти в 1С из под администратора а потом дать необходимые права на папку уже опубликованного приложения. В э статье описан второй путь.
3.1. Для публикации конфигурации на сервере IIS необходимо запустить 1С из под администратора:
Вызываем контекстное меню на ярлыке 1С и выбераем "Запуск от имени администратора"
Выбираем базу и запускаем 1С в режиме конфигуратора:
3.2. Запустить публикацию на web-сервере
Для начала публикации переходим в меню "Администрирование - Публикация на веб-сервере":
В появившемся окне указать имя публикации, указать веб-сервер и указать путь на веб-сервере.
1С позволяет публиковать на любой доступный веб-сервер в сети с помощью утиллиты webinst. В статье использовался пример публикации на локальный компьютер:Более подробную информацию по пунктам в окне публикации можно получить из 1С конфигуратора нажав на кнопку F1.
4. Настройка библиотек для работы в 64-х разрядной ОС
После публикации на веб-сервере из конфигуратора, в случае использования 64-х разрядной операционной системы на компьютере который используется в качестве сервера IIS, необходимо настроить работу с библиотеками 1С. Это делается каждый раз после публикации на веб-сервере.
Для настройки библиотек необходимо выполнить следующие действия.
Открываем через Панель Управления - Администрирование Диспетчер служб IIS.
В открывшемся окне раскрываем группу "Сайты" и наш сайт (в примере Base1C).
Нажимаем на "Сопоставление обработчиков" в группе IIS:
В открывшемся окне ищем строку с именем "ISAPI-dll" и нажимаем пункт меню в действиях "Добавить сопоставление сценария. "
В открытом окне "Добавление сопоставления сценария" в поле "Путь запроса" ввести символ * (звездочка, т.е. все). В поле "Исполняемый файл" выбрать библиотеку wsisapi.dll с каталога установленной 32-х разрядной версии 1С. В поле "Имя" можно задать любое имя (в примере Имя = 1С):Некоторые специалисты в других статьях указывают что надо отключить ограничение сопоставления запроса. Автор не нашел зависимости работы этой отметки для программы 1С. Данная информация приводиться информативно, может быть кому то понадобиться.
Настроить ограничения запроса можно нажав на кнопку "Ограничение запроса" в окне Добавление сопоставления сценария. В открывшемся окне убрать отметку с "Вызывать обработчик только при сопоставлении запроса с:":Нажать кнопку Ok.
На появившейся вопрос ответить "Да":
После чего необходимо перезапустить службу IIS. Для этого необходимо перейти в корень панели "Подключения" (на название сервера) и в меню действия справа выбрать "Перезапустить":После чего можем проверить, работает ли подключенная библиотека. Для этого переходим в "Ограничения ISAPI и CGI":
И посмотреть, есть ли ссылки для необходимых обработчиков (dll):Еще раз следует отметить, что данную процедуру настройки библиотек следует делать каждый раз после публикации приложения из 1С.
5. Настройка прав доступа на папки и Брандмауэра Windows
5.1. Настройка доступов к папкам
Для правильной работы всех пользователей, а не только администраторов с опубликованным веб-приложениям необходимо настроить некоторые права на папки.
Для настройки прав на пакпи необходимо в проводнике Windows вызвать контекстное меню для необходимой папки и выбрать в контекстном меню пункт "Свойства" и перейти на закладку "Безопасность"В данном случае речь идет о правах на 3 папки:
1. "C:\Program Files (x86)\1cv8\8.3.5.1088\bin\" (в этой папке находится библиотека wsisapi.dll) (номер релиза "8.3.5.1088" может быть другой)
2. C:\inetpub\wwwroot\Base1C (это созданная нами папка которая будет использоваться для доступа из интернет)
3. КаталогБазы (это база 1С, если используется файловый тип базы), в нашем примере база храниться на SQL сервере, поэтому каталога базы нет и доступа на него давать не надо.
Для всех папок (Пункты: 1,2,3) необходимо для пользователя IIS_IUSRS установить доступ "Полный доступ":
Для папки с нашей базой (Пункт 3) данных для пользователя Users, установить доступ "Изменение".5.2. Настройка доступов к портам в Брандмауэре Windows
Если планируется использовать web-доступ не только локально, то необходимо настроить Брандмауэр Windows для доступа с внешних ресурсов, указав порт доступа 80. Автор не использовал настроек брандмауэра, а просто отключил его:
6. Доступ к опубликованной информационной базе
Для доступа к информационной базе надо зайти в обозреватель интернет (поддерживающий HTML5, например "многими любимый" Internet Explorer) и ввести в адресную строку:7. Используемые ресурсы
Читайте также: