1с подключение к другой базе через web
Настройка веб-сервера IIS
Большинство пользователей при работе в тонком или веб-клиенте используют в основном публикацию информационных баз на основании протокола HTTP. С одной стороны — это простой и быстрый способ дать доступ к информационной базе пользователю, у которого нет дистрибутива тонкого клиента, и он может работать только в веб-клиенте или у пользователя нет прямого доступа к серверу "1С:Предприятие". С другой стороны – информационные базы, опубликованным таким образом, категорически не рекомендуются публиковать в глобальной сети Интернет, так как в таком случае используется незащищенный канал, данные по которому могут быть перехвачены злоумышленниками. Например, распространенные виды атак это:
Внимание! В статье не рассматривается выпуск и получение сертификата проверенных поставщиков. Этот пункт должен быть выполнен самостоятельно на основании предпочтений выбора провайдера услуг. В статье предполагается что, пропуская шаг выпуска самоподписанных сертификатов, у пользователя или администратора он имеется в наличие и будет подставлен в настроечные файлы, вместо указанных в статье самоподписанных сертификатов.
План работ:
Включение компонент веб-сервера.
Windows Server 2012 R2, 2016 и 2019.
Выпуск самоподписанного сертификата (Необязательно).
1. Включение компонент веб-сервера
По умолчанию в операционной среде Windows компоненты веб-сервера не установлены. В зависимости от версии установка может несущественно различаться. Мы будем рассматривать два варианта – это распространенный дистрибутив Windows 10, если планируются использовать для пробного включения шифрования протокола и Windows Server 2016/2018, если уже планируется непосредственное разворачивание публикации в продуктивной зоне.
1.1. Windows 10
Включение компонентов веб-сервера IIS в операционной системе Windows 10 выполняется достаточно просто. Для начала нужно открыть раздел "Программы и компоненты" ("Programs and Features") в панели управления (Control panel). Сделать можно это несколькими способами:
Нажать сочетание клавиш Win + R и в открывшемся окне ввести "appwiz.cpl" и нажать ОК.
Открыть панель управления (Control panel) и выбрать пункт меню Программы – Программы и компоненты (Programs – Programs and features).
В окне "Программы и компоненты" ("Programs and Features") нажмите на кнопку "Включение и отключение компонентов Windows" ("Turn Windows features on or off").
Когда откроется окно "Компоненты Windows" ("Windows features") в нем необходимо будет проставить флажки для следующих элементов:
Компоненты разработки приложений
Средства управления веб-сайтом
Консоль управления IIS
После этого нажимайте на кнопку "OK" и дождитесь завершения выполнения операции. После того как включение компонент будет выполнено, можно переходить к пункту "2. Публикация информационной базы".
1.2 Windows Server 2012 R2, 2016 и 2019
Настройка компонент для Windows Server 2012 R2, Windows Server 2016 и Windows Server 2019 одинаковая и все настройки производятся в диспетчере серверов (Server Manager).
Откройте диспетчер серверов (Server Manager) и нажмите Управление – Добавить роли и компоненты (Manage – Add Roles and Features).
В ответ на нажатие откроется окно мастера добавления ролей и компонентов (Add Roles and Features).
В этом окне нажмите два раза "Далее" ("Next") пока мастер не переключится на страницу ролей сервера (Server Roles).
Во вкладке роли сервера (Server Roles) установите флажок "Web Server IIS". Так как эта роль зависит от другой роли ([Tools] IIS Management Console), то будет предложено установить ее дополнительно. Это можно сделать с помощью нажатия кнопки "Добавить компоненты" (Add Features) в открывшемся окне. После чего нажимаем кнопку "Далее" ("Next") пока мастер не дойдет до вкладки "Роль веб-сервера IIS" ("Web Server Role IIS"). На этой вкладке нажимайте кнопку "Далее" ("Next") и попадете на вкладку "Службу ролей" ("Role Services"). Во вкладке нужно найти пункт "Application Development" и выбрать в нем с помощью флажков пункты "ISAPI Extensions" и "ISAPI Filters". Как только закончите с установкой флажков нажимайте "Далее" ("Next") и "Установить" ("Install").
На этом установка веб-сервера завершена. Можно переходить к настройкам сертификатов.
2. Выпуск самоподписанного сертификата
Выпуск самоподписанного сертификата для веб-сервера IIS максимально простой.
Для реальных систем не рекомендуем использовать самоподписанный сертификат.
Для начала процедуры выпуска откройте окно Диспетчера служб IIS (Internet Information Services (IIS) Manager) и выделите сервер в списке Подключений (Connections) . После этого нажмите на ссылку "Сертификаты сервера" ("Server Certificates") .
Откроется окно доступных сертификатов сервера (Server Certificates) в котором нужно нажать "Создать самозаверенный сертификат…" ("Create Self-Signed Certificate…").
В окне мастера создания самоподписанного сертификата остается указать только произвольное название сертификата. В большинстве случаев, во избежание путаницы лучше явно указывать в качестве значения "Полное имя сертификата" ("Specify a friendly name for the certificate") адрес сервера, на котором расположен сервер IIS. Как только имя сертификата будет задано нажимайте на кнопку OK и переходите к пункту привязки сертификата.
3. Привязка сертификата
Предполагается, что сертификат получен и добавлен в список сертификатов сервера. Если сертификат получен с помощью распространенного сертифицирующего центра, то его нужно предварительно импортировать в окне "Сертификаты сервера" ("Server Certificates").
Как только сертификат появится в списке, переходим непосредственно к его привязки к публикации сайта. Для этого выделяем "Default Web Site" и в окне "Действия" ("Actions") нажимаем на пункт "Привязки…" ("Binding…").
В этом окне можно увидеть, что публикация работает только на порту 80, который относится к незащищенному протоколу HTTP. Чтобы его расширить, нажмите кнопку Добавить… (Add…) слева от списка привязок сайта и в открывшемся окне выберите Тип (Type) в качестве значения "https". Завершением настройки будет выбор ранее импортированного сертификата в списке "SSL-сертификат" ("SSL certificate"). Нажимаем кнопку OK и закрываем мастер привязок сайта.
Можно переходить к публикации информационной и проверки его работоспособности.
4. Проверка публикации
Для публикации информационной базы нужно открыть конфигуратор конкретной базы от имени администратора и перейти в пункт меню "Администрирование". После этого выбрать "Публикация информационной базы".
В окне публикации указать имя публикации и по желанию определить каталог, где будут находиться настройки публикации. Его также можно оставить по умолчанию.
После этого требуется нажать кнопку "Опубликовать" и дождаться окончания операции.
Для проверки корректной работы нужно открыть страницу в браузере и перейти по ссылке, которая состоит из двух частей:
После установки 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
Для их установки следует перейти "Пуск - Панель управления - Программы и компоненты - Включение или отключение компонентов 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. Автор не использовал настроек брандмауэра, а просто отключил его:
Обмен данными с конфигурацией через веб-сервисы
Внимание! Данный функционал доступен в "Библиотеке стандартных подсистем", начиная с версии 2.3.1.62.
Для обмена данными через формат EnterpriseData у конфигураций, использующих "Библиотеку стандартных подсистем", есть два веб-сервиса:
- EnterpriseDataUpload – упрощенный вариант для загрузки данных в информационную базу из сторонних приложений. Не требует специальных настроек на стороне конфигурации (кроме развертывания собственно веб-сервиса); однонаправленный обмен данными – ТОЛЬКО импорт данных в информационную базу.
- EnterpriseDataExchange – для двустороннего обмена данными между конфигурацией и сторонним приложением. Для работы с ним необходима настройка обмена данными на стороне конфигурации.
Собственно задача обмена данными включает в себя две подзадачи:
- Составление корректного XML-файла в формате EnterpriseData,
- Вызов веб-методов в правильной последовательности.
Особенности работы методов веб-сервисов
Большинство методов обоих веб-сервисов имеют выходной параметр – строку ErrorMessage. В случае если внутри конфигурации произошла ошибка, связанная с бизнес-логикой – в эту строку будет записана информация об этой ошибке. Если ошибок в процессе работы метода не было – в строку ErrorMessage будет помещена пустая строка. Если же в процессе работы метода возникла системная ошибка (например, на стороне конфигурации не удалось разархивировать полученный архив) – веб-метод сгенерирует исключение (exception).
Большинство методов обоих веб-сервисов возвращают строки, но в текущей версии возвращаемые строки всегда пустые (кроме EnterpriseDataUpload.PutDataActionResult – он возвращает статус обработки данных на стороне конфигурации – “Active”, “Completed” либо “Failed”).
Что нужно для работы
На стороне конфигурации
На стороне конфигурации должны быть развернуты веб-сервисы EnterpriseDataUpload и EnterpriseDataExchange соответствующих версий (в данном случае была использована версия 1.0.1.1). При открытии этих двух URL-адресов в браузере (нужно подставить правильное для вашей инсталляции «1С:Предприятия» имя веб-сервера и публикации):
должны выводиться WSDL-описания сервисов:
- В Solution Explorer в контекстном меню узла References выбрать команду Add Service Reference.
- В нижнем левом углу появившегося диалога нажать кнопку Advanced.
- В нижнем левом углу появившегося диалога нажать кнопку Add Web Reference.
Использовалась среда разработки Eclipse 4.4.2. Для генерации кода по WSDL файлов веб-сервисов применялась утилита wsdl2java из фреймворка Apache CXF 2.7.16.
Простой обмен данными с конфигурациями с помощью формата EnterpriseData
Объект может содержать в себе ссылки на другие объекты (например, документ «Акт выполненных работ» может содержать в себе одну или несколько ссылок на номенклатуру). В этом случае, если мы импортируем данные в информационную базу, все объекты, на которые мы ссылаемся из «родительского» объекта, должны либо уже существовать в системе, либо их описание должно содержаться в том же XML файле.
Если нам необходимо удалить какой-то объект, в коллекцию Body надо добавить элемент типа «УдалениеОбъекта», и в этом элементе сослаться на удаляемый объект (см. описание типа «УдалениеОбъекта» в схеме EnterpriseData_X_Y_Z.xsd).
С помощью формата EnterpriseData нам доступны операции создания, обновления и удаления объектов. На данный момент для корректной загрузки данных в типовые решения все объекты должны содержать заполненный элемент «Ссылка» из элемента «Ключевые свойства» (GUID в форме строки). Это первичный ключ объекта. Конфигурации ведут себя следующим образом:
- Если в системе нет объекта с ключом из поля «Ссылка» - создается новый объект.
- Если в системе уже есть объект с ключом из поля «Ссылка» - существующий объект обновляется новыми данными, пришедшими в XML.
- Если пришел элемент типа «УдалениеОбъекта» - объект с соответствующим ключом удаляется из системы.
Веб-сервис EnterpriseDataUpload
EnterpriseDataUpload – интерфейс исключительно для импорта данных в формате EnterpriseData в конфигурацию из сторонних приложений. Условия задачи: у нас есть XML файл с данными в формате EnterpriseData, надо передать его в конфигурацию и убедиться в том, что на стороне конфигурации данные успешно получены.
Алгоритм работы следующий:
Итак, у нас есть архив с данными в формате EnterpriseData (один или несколько файлов). Не будем описывать, как в программе создать архив и разбить его на несколько файлов, чтобы сэкономить время – желающие смогут легко найти примеры подобного кода, используя поисковые сервера и соответствующие запросы.
Реализуем функцию, которая принимает такие входные параметры:
- URL Веб-сервиса,
- Имя пользователя для соединения с Веб-сервисом,
- Пароль.
Путь до архивированного файла с данными. Если архив умещается в одном файле – это имя файла с полным путем, включая расширение (например, “C:\Exchange\data.zip”). Если же архив разбит на несколько частей, то это будет имя любого из файлов без расширения и точки (например, “C:\Exchange\data”). Предполагается, что это последовательность файлов с расширениями “.001”, “.002” и т.д.
Реализация функции (в виде статического метода) в листинге ниже. Диагностическая информация выводится в консоль.
Если пользователю будет необходим нетиповой обмен между базами и публикация баз будет возможна (установлен WEB-сервер), то можно воспользоваться механизмом WEB-сервисов.
Определение WEB-сервиса — реализация абсолютно четких интерфейсов обмена данными между различными приложениями, которые написаны не только на разных языках, но и распределены на разных узлах сети. Но в нашем примере мы разберем обмен между двумя базами 1С.
В базе-источнике требуется создать объект конфигурации: WEB-сервисы
В базе приемнике создаем объект конфигурации: WS-ссылки
WS-ссылка содержит описание WEB-сервиса из базы-источника. Этот объект конфигурации не имеет программного кода и представляет собой только модель данных и описание операций созданного в базе-источнике WEB-сервиса.
Пример описания WS-ссылки (рис.1)
Рис. 1 – описание WS-ссылки
Важным параметром является то, что данную ссылку мы можем открыть в браузере и посмотреть текстовое описание WEB-сервиса (рис.2). Если в браузере WEB-сервис не открывается, то и созданная WS-ссылка работать не будет
Рис. 2 – описание WEB-сервиса
Если мы откроем WS-ссылку, которая корректно загружена, то увидим вот такую картину (рис.3)
Пакеты, которые автоматически подключаются (ветка пакеты)
Сам WEB-сервис, к которому идет обращение и его операции, которые описаны в базе-источнике.
Операции WEB-сервиса описываются функциями встроенного языка. То есть – любая операция веб-сервиса должна возвратить какое-либо значение. Тип возвращаемого значения можно указать в описании операции WEB_сервиса (рис 4.2).
Типы возвращаемых значений мы указываем в свойстве непосредственно WEB-сервиса «Пакеты XDTO». Механизм XDTO позволяет определять объекты переноса данных, которые могут образовывать строгую иерархию и могут сериализоваться в XML. Эти свойства позволили использовать объекты XDTO в качестве параметров и возвращаемых значений операций web-сервисов.
Рис. 4.1 – описание WEB-сервиса
Рис. 4.2 – описание операции WEB-сервиса
После того, как мы описали функцию WEB-сервиса, которая будет вызываться из базы-приемника (в задаче: база приемник инициализирует обращение к базе-источнику, но этот механизм можно построить и наоборот, что база-источник будет отдавать данные в базу-приемник, тогда нам следует описывать WEB-сервис в базе-приемнике, а в базе-источнике будет WS-ссылка на него. Все зависит от конкретной задачи)
Описание вызова WEB-сервиса (Листинг 1)
Указать сертификат ssl
Организовать обращение к WS-ссылке с использованием метода: СоздатьWSПрокси – в методе прописывается
URL-пространство имен, (*) – описывается в Web-сервисе (см. рис 4.1),
имя сервиса (*)– описывается в Web-сервисе (см. рис 4.1),
имя порта (*) – описывается в WS-ссылке, см
использование аутентификации WINDOWS
Описание создания защищенного ssl-соединения (синтаксис-помощник 1С; листинг 2)
Листинг 2 - Возможные описания объекта защищенного соединения OpenSSL (1С помощник)
Объект защищенного соединения OpenSSL.
Используемый клиентский сертификат должен быть самоподписанным или проходить валидацию через сертификаты удостоверяющих центров, заданные в свойстве "СертификатыУдостоверяющихЦентров"
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Листинг 2 – описание возможных описаний объекта защищенного соединения OpenSSL
Выбор корректного описания зависит напрямую от того, с каким сертификатом работает организация.
Если все корректно, то в переменную «ответ» (листинг 3) вернется значение из базы-источника. Так же тут указываем сразу параметры, которые требуются для передачи в операцию WEB-сервиса
Листинг 3 – Строка обращения к операции WEB-сервиса
Обрабатываем полученные результаты. И тут может быть два варианта.
Мы получили сразу объект того типа, который указывали в выходных параметрах. Нам его нужно просто обработать средствами встроенного языка – извлечь из него требуемые данные (если это таблица значений, структура или хранилище значений, как в нашем случае).
WEB-сервер нам возвращает закодированный ответ в виде строки BASE64. Этот случай опишем подробнее.
Если WEB-сервер нам возвратил закодированную строчку, то требуется выполнить преобразование ее в объекты 1С. Для этого нам следует сделать несколько преобразований:
BASE64 в двоичные данные (используем функцию встроенного языка 1С:
ДвоичныеДанные = Base64Значение(Ответ); (где ответ – это значение, которое возвращено WEB-сервером)
Используем фабрику XDTO для представления двоичных данных в объекте 1С (листинг 4)
Фабрика типов XDTO: Содержит определения всех типов, позволяет осуществлять чтения/запись данных XDTO в XML и JSON (материал Синтаксис-помощника).
Листинг 4 – использование фабрики XDTO для преобразования двоичных данных в объект 1С -
Создаем значение XDTO по лексическому представлению значения. Лексическое представление значения должно удовлетворять ограничениям, определяемым данным типом значения XDTO. Тип нашего XDTO (параметр 1 – является обязательным) должен совпадать с типом выходного параметра функции WEB-сервиса (см. Рис 4.2). Описываем пространство имен (URIПространстваИмен (NamespaceURI)) и БазовыйТип (BaseType). Вторым параметром в функцию подставляем наши двоичные данные (без преобразования их в объекты). Если все выполнено корректно, то наше выходное значение из WEB-сервиса будет содержаться в реквизите: телоXDTO.Значение, того типа, который мы указали в выходном параметре ("ValueStorage" – хранилище значения).
Работа непосредственно с получением данных через WEB-сервис на этом заканчивается.
Использование веб-сервисов 1С при обмене 1С – 1С позволяет быстро передавать достаточно большие объемы данных из базы-источника в базу-приемник в объектах языка 1С.
Данный метод обмена может применяться при бесшовной интеграции между двумя базами 1С, но требует определенной серверной инфраструктуры (установленного и настроенного WEB-сервера).
Так же этот вариант применим при необходимости получать данные из одной базы в другую (пример – получение остатка бюджета из одной базы (источник) при заведении нового счета на оплату (в сторонней базе)).
Настраиваем веб-доступ для 1С:Предприятия в файловом режиме
Современные условия, с широким распространением мобильных устройств и доступного интернета предъявляет новые требования к информационным системам даже небольших фирм. Если еще несколько лет назад удаленный доступ был уделом крупных организаций, то сегодня возможность доступа к информации из любого места воспринимается как нечто само собой разумеющееся. Сегодня мы расскажем, как быстро и без лишних затрат организовать веб-доступ к базам 1С:Предприятия работающих в файловом режиме.
Традиционная схема работы с 1С:Предприятием в файловом режиме подразумевает общий доступ к файлам информационной базы посредством протокола SMB (сети Microsoft). При этом один из компьютеров выступает в качестве файлового сервера, а другие работают с размещенной в общем доступе информационной базой.
Однако данная схема имеет ряд существенных недостатков. На скорость работы существенное влияние оказывает как пропускная способность сети, так и вычислительные мощности клиентских компьютеров. Более подробно этот вопрос мы разбирали в нашем материале Почему тормозит 1С. Файловый режим. Особенно это проявляется после перехода на конфигурации на основе управляемого приложения, которые гораздо более требовательны к ресурсам, нежели конфигурации предыдущего поколения.
Также остро стоит вопрос с удаленным доступом, если для удаленных компьютеров еще можно организовать удаленный доступ посредством RDP, что, кстати, не всегда доступно для небольших фирм, не имеющих выделенного сервера, то с мобильными устройствами все довольно печально.
Вместе с тем управляемое приложение предоставляет новые возможности, такие как веб-доступ к информационной базе, в том числе работающей в файловом режиме. Это позволяет качественным образом изменить работу с информационной системой практически без дополнительных затрат.
На компьютере с информационной базой поднимается дополнительная роль веб-сервера, на котором происходит публикация информационной базы. После чего с ней можно продолжать работать как в файловом режиме, так и в режиме веб-сервера.
При этом не обязательно использование для работы браузера, получать доступ к базе через веб-сервер может также и платформа в режиме тонкого клиента. Эта возможность позволяет организовать доступ не только для удаленных и мобильных клиентов, но и улучшить работу на недостаточно производительных машинах в офисе, так как все основные вычисления будут выполняться на стороне сервера и передаваемый по сети трафик будет сведен к минимуму, как и нагрузка на компьютер клиента.
Ну и, конечно, появляются практически неограниченные возможности удаленного доступа к базе: из любого места, с любого устройства, был бы браузер.
Ниже мы рассмотрим возможные конфигурации для организации веб-доступа к небольшим базам, работающим в файловом режиме на базе клиентских операционных систем.
На настоящий момент поддерживаются два основных веб-сервера Apache и IIS, также на машине с веб-сервером должна быть обязательно установлена платформа и модули расширения веб-сервера. Их всегда можно установить дополнительно, просто запустив еще раз программу установки платформы:
Windows и IIS
Internet Information Services (IIS) по непонятным причинам не пользуется популярностью у администраторов и 1С-ников. А зря, игнорировать штатное решение в пользу некоторого стороннего ПО, пусть даже и неплохого, выглядит по крайней мере странно.
Для установки IIS на клиентской ОС, в нашем случае Windows 7 x64, перейдите в Панель управления - Программы и компоненты - Включение и отключение компонентов Windows.
В открывшемся окне выберите Службы IIS, затем, развернув список, перейдите в Службы интернета - Компоненты разработки приложений и установите флажок напротив Расширения ISAPI, остальные параметры можно оставить по умолчанию.
После установки IIS перейдем к его настройке, для этого откройте Панель управления - Администрирование - Диспетчер служб IIS.
В дереве слева выбираем Пулы приложений, щелкаем правой кнопкой мыши на DefaultAppPool - Дополнительные параметры и разрешаем 32-разрядные приложения, установив соответствующую опцию в True.
Теперь выставим необходимые права для групп IUSR и IIS_IUSRS. На папку с информационной базой выдаем права Изменение и Чтение и выполнение:
На папку bin платформы - Чтение и выполнение:
Затем запускаем 1С:Предприятие от имени администратора и загружаем нужную информационную базу в режим конфигуратора.
В меню Администрирование выбираем Публикация на веб-сервере. 1С:Предприятие автоматически определит веб-сервер (IIS) и предложит разместить веб-приложение в корне веб-сервера в каталоге с именем папки информационной базы, которое также будет являться именем публикации, при необходимости можете изменить эти параметры.
После чего нажимаем Опубликоватьи утвердительно отвечаем на предложение перезапустить веб-сервер.
Также можно настроить базу для работы с ней посредством платформы, для этого в диалоге добавления новой информационной базы указываете размещение на веб-сервере:
Следующим шагом вводите адрес подключения:
После запуска информационной базы можете убедиться, что работает она именно в режиме веб-сервера, а не файловом:
Windows и Apache 2.2
Если вы по каким-либо причинам не хотите использовать IIS, можно настроить работу 1С с другим популярным веб-сервером Apache. К сожалению разработчики Apache перестали публиковать бинарные сборки для Windows, предлагая обратиться к своим партнерам, поэтому перейдем на сайт Apache Haus и скачаем сборку 2.2.х архитектуры x86, даже если у вас 64-разрядная операционная система.
Внимание! Для получения сборки Apache следует пользоваться только надежными источниками, которые указаны на сайте проекта. От этого зависит безопасность вашего веб-сервера и ваших данных!
Также вам потребуется установить Распространяемый пакет Microsoft Visual C++ 2008, который нужен для нормальной работы сборки Apache.
Затем распакуем скачанный архив Apache в произвольную директорию, например, C:\Apache22, из всего множества папок нас интересуют папки bin и htdocs, в первой расположены исполняемые файлы веб-сервера, во второй следует располагать веб-содержимое.
Откроем командную строку с правами администратора и перейдем в директорию bin веб-сервера:
Теперь установим Apache как службу:
На предупреждения не обращаем внимания, для целей использования с 1С подойдет конфигурация Apache по умолчанию.
Так как служба работает от имени системной учетной записи выставлять права на папки с базой и платформой не надо.
Затем точно также запускаем 1С от имени администратора в режиме конфигуратора и переходим к публикации на веб-сервере. В отличии от IIS, в данном случае платформа сама не может указать путь и создать папку, поэтому делаем это вручную. Папка должна быть создана внутри каталога htdocs и ее имя должно совпадать с именем публикации:
В нашем случае это C:\Apache22\htdocs\Acc30\, кстати, создать нужный каталог можно прямо в диалоге выбора папки. После чего публикуем информационную базу.
Следующий момент, 1С не умеет перезапускать данную сборку Apache, поэтому сделаем это вручную через оснастку Службы:
После перезапуска веб-сервера опубликованная база станет доступна по тому же самому, как и в случае с IIS, адресу, точно также ничем не будет отличаться и работа с ней.
Читайте также: