Alexey Alekseev willkommen in meinem gemütlichen kleinen Blog. Veröffentlichen von Apache und IIS Apache 2.4 1s Enterprise 8.3

Obwohl 1C die Verwendung eines Webservers im Dateimodus (sondern nur im Servermodus) nicht empfiehlt, sollten kleine Unternehmen mit 2-3 Buchhaltern bei neuen Konfigurationen mit "verwalteten Formularen" (Buchhaltung 3.0, Gehalt 3.0, usw.) - ermöglicht Ihnen die Organisation schneller Zugriff an die Basis von Netzwerkcomputern, auch wenn es sich im Wesentlichen um alte Schrottcomputer handelt. Wichtig ist nur, dass der Hauptrechner mit den Datenbanken und dem Webserver ordentlich ist (zum Beispiel Core I3, 8 GB RAM und ein SSD-Laufwerk).

Schritt-für-Schritt-Anleitung zum Einrichten eines 1C-Webservers auf Apache (einschließlich der Dateiversion von Datenbanken)

1. Laden Sie das Apache-Installationsprogramm herunter

Aus irgendeinem Grund wurden alle neuen Versionen (z. B. 2.4.25) von Apache nicht mehr als selbstextrahierende Distribution hochgeladen. Es ist für uns durchaus akzeptabel, eine nicht aktuelle 2.2.25-Distribution zu verwenden - was es uns ermöglicht, ein bequemes Installationsprogramm zu erhalten und zusätzliche Manipulationen zu vermeiden.

Ich mache Sie darauf aufmerksam - es ist praktisch für uns, das * .msi-Installationsprogramm zu verwenden

Auf Empfehlung des Benutzers (Danke, Vladimir) poste ich einen Link zu Apache Version 2.4 (www.apachelounge.com). In seinen Worten: Wenn Sie x64 herunterladen, dann seien Sie darauf vorbereitet, eine ähnliche x64 1c-Plattform zu installieren und die Zeile LoadModule _1cws_module "C:/Program Files/1cv8/8.3.9.2016/bin/wsap24.dll" in httpd.conf zu bearbeiten.
Ich selbst empfehle jedoch nicht, 64-Bit-1C zu verwenden, da mit hoher Wahrscheinlichkeit beim Anschluss von Handelsgeräten oder einigen anderen Bibliotheken von Drittanbietern gigantische Schwierigkeiten auftreten werden.

Wir wählen das Distributionskit „no ssl“, wenn die Datenbanken nur innerhalb unseres geöffnet werden lokales Netzwerk oder „ssl“-Distribution, wenn die Datenbank im Internet geöffnet werden soll. Mehr über die Einrichtung von SSL erfahren Sie im Infostart-Artikel.

In unserem Beispiel konfigurieren wir den Server ohne SSL nur für die Verwendung innerhalb des lokalen Netzwerks.

2. Führen Sie das heruntergeladene Installationsprogramm aus

Füllen Sie Netzwerkdomäne: Localhost, Servername: Localhost aus

Drückt NEXT, Setup-Typ: Typische NEXT, NEXT, INSTALL

3. Überprüfen Sie, ob der Webserver gestartet wurde

Öffnen Sie dazu einen beliebigen Browser und geben Sie die Seitenadresse http://localhost an

Wir sollten eine Seite mit der Aufschrift It Works! sehen.

Finden Sie die IP-Adresse unseres Computers im lokalen Netzwerk heraus. Dazu finden wir in der unteren rechten Ecke (neben der Uhr) das lokale Netzwerksymbol, klicken mit der rechten Maustaste darauf und öffnen das "Netzwerk- und Freigabecenter".

Auswahl unseres Netzwerks

Und klicken Sie auf die Schaltfläche "Details".

In meinem Fall lautet die Adresse des Computers im lokalen Netzwerk 192.168.0.189

Jetzt kehren wir zum Browser zurück und prüfen die Verfügbarkeit der It Works-Seite unter der IP-Adresse http://192.168.0.189 (in Ihrem Fall sind die Zahlen anders)

Wenn Sie wieder die vertraute It Works-Seite sehen, ist alles in Ordnung,

4. Überprüfen Sie die Verfügbarkeit der Seite von anderen Computern und konfigurieren Sie die Firewall

Wieder versuchen wir, die bekannte Seite http://192.168.0.189 (Sie haben andere Nummern) zu öffnen, aber von jedem anderen Computer im lokalen Netzwerk.

Wenn Sie anstelle einer vertrauten Seite „Zugriff auf die Website nicht möglich“ oder eine ähnliche Meldung sehen, konfigurieren Sie die Firewall. Kehren Sie dazu zu dem Computer zurück, auf dem Apache installiert ist, gehen Sie zu "Systemsteuerung" - "System und Sicherheit" - " Windows-Firewall“ und klicken Sie auf der linken Seite des Bildschirms auf „Erweiterte Optionen“.

Klicken Sie auf den Abschnitt "Regeln für eingehende Verbindungen", dann auf der rechten Seite des Fensters auf "Regel erstellen".

Setzen Sie alle drei Kontrollkästchen

Geben Sie einen beliebigen Namen an, zum Beispiel „Webserver 80 Port für 1C“. Bereit.

Wieder gehen wir zu anderen Rechnern und vergewissern uns, dass der Browser nun unter der IP-Adresse http://192.168.0.189 die uns bekannte Seite anzeigt Es klappt

5. Wir veröffentlichen unsere Basis auf einem Webserver.

Wir öffnen den Konfigurator unserer Datenbank (Running 1C ist im Auftrag des Administrators obligatorisch)

Ich habe kürzlich einen Apache-Webserver in Verbindung mit 1C eingerichtet. Außerdem befand sich der Webserver auf einem separaten Linux-Host innerhalb des Docker-Containers. Ich werde meine Erfahrungen teilen und Schritt-für-Schritt-Anleitungen geben.

Dieser Artikel wurde im April 2018 geschrieben und auf der 1C-Plattformversion 8.3.11.3034 getestet. Als nächstes erwäge ich, eine Verbindung zur 1C-Infobase in der Serverversion herzustellen, nicht in der Dateiversion.

Warum genau Apache, genau unter Linux und genau in Docker? Ich werde diese Frage außerhalb des Rahmens dieses Artikels lassen.

Wahrscheinlich hat jeder von Apache und Linux gehört. Aber über Docker, das in letzter Zeit immer beliebter wird, werde ich zum allgemeinen Verständnis eine kurze Anleitung auf Russisch teilen: http://guides.hexlet.io/docker/

Interaktion zwischen Apache und 1C-Server

Lassen Sie mich kurz an das Schema der Interaktion zwischen dem Apache-Webserver und dem 1C-Server erinnern, das in der 1C-Dokumentation und einer Million ähnlicher Artikel perfekt beschrieben ist.

Wir installieren den Apache-Webserver und fügen ihn seinen Einstellungen hinzu (in die Datei httpd.conf) Sondermodul wsap24.so. Dieses Modul wurde von 1C entwickelt und ist in der 1C-Serverdistribution für Linux verfügbar.

Außerdem weisen wir den Webserver in derselben httpd.conf an, dass alle Anfragen, die mit einem bestimmten Pfad (z. B. /BuhBase) beginnen, mit einem speziellen Handler verarbeitet werden sollen 1c-Anwendung, implementiert im Modul wsap24.so.

Dementsprechend, wenn der Apache-Webserver eine eingehende HTTP-Anfrage passend zum angegebenen Pfad, z.B. http:// /BuhBase/ kommt der Handler ins Spiel 1c-Anwendung. Es schaut wiederum in eine bestimmte .vrd-Datei, in der sich Verbindungseinstellungen für 1C befinden sollten.

Normalerweise wird die vrd-Datei während des Vorgangs „Veröffentlichen auf dem Webserver“ aus dem Konfigurator oder mithilfe des Konsolendienstprogramms generiert webinst. In diesem Fall hilft uns der Konfigurator nicht weiter, da wir planen, den Apache-Webserver auf einem völlig anderen Host als den 1C-Server und sogar innerhalb des Docker-Containers auszuführen. Wir werden auch das Dienstprogramm der Webinst-Konsole nicht berühren, wir werden die Datei beschreiben default.vrd manuell, da in der Minimalversion nur wenige Zeilen benötigt werden, macht es keinen Sinn, irgendetwas zusätzlich zu starten.

Wenn also eine default.vrd-Datei vorhanden ist und diese die richtigen Einstellungen für die Verbindung zum 1C-Server enthält, stellt das in Apache ausgeführte Modul über TCP eine Verbindung zum 1C-Server her.

Gleichzeitig kann sich der 1C-Server selbst auf einem völlig anderen Computer und auf einem anderen Betriebssystem befinden. Das ist nicht wichtig, Hauptsache, Apache kann den 1C-Server über TCP erreichen.

Lassen Sie uns Schritt für Schritt die gesamte Konfiguration zusammenstellen

Schritt 1.

Installieren Sie Docker auf dem lokalen Computer des Entwicklers (um das Testen und Debuggen zu erleichtern) und auf dem Ziel Linux-Maschine, wo wir eigentlich den Webserver starten wollen.

Docker funktioniert unter Linux, macOS und Windows. Höchstwahrscheinlich läuft auf dem Computer des Entwicklers (Ihrem Computer) Windows. Ich habe die unten beschriebenen Schritte nicht persönlich unter Windows getestet, theoretisch sollte alles funktionieren, aber irgendwas geht schief, man kann nicht seine Energie und Nerven verschwenden und alles direkt weiter machen Linux-Server e oder in lokal virtuelle Maschine(z. B. mit VirtualBox).

Vergessen Sie dies bei der Installation unter Linux nicht wichtiger Schritt, die auf beschrieben wird separate Seite in Dokumentation: https://docs.docker.com/install/linux/linux-postinstall/

Schritt 2

Erstellen wir ein Verzeichnis für unser Projekt und laden Sie die Distribution 1C Server für Linux herunter: https://releases.1c.ru -> Technologische Plattform 8.3 -> 1C:Enterprise Server (64-Bit) für DEB-basierte Linux-Systeme

Holen Sie sich die Datei deb64.tar.gz, lass es erstmal so wie es ist.

Schritt 3

Lassen Sie uns eine Datei mit Verbindungseinstellungen für 1C erstellen: default.vrd

Ich gebe ein Beispiel für eine minimale vrd-Datei, in der standardmäßig alle Webdienste, alle http-Dienste und eine Standard-REST-Schnittstelle (OData) veröffentlicht werden.

Achten Sie auf die Verbindungszeichenfolge, ersetzen Sie den 1C-Servernamen (Serv1C) und den Infobase-Namen (BuhBase) durch Ihren eigenen.

Wenn Sie Ihre Datenbank bisher auf einem Webserver veröffentlicht haben (egal auf welchem: IIS oder Apache, Windows oder Linux, über den Konfigurator oder über Webinst), sollten Sie auf jeden Fall eine .vrd-Datei haben, schauen Sie in den öffentlichen Verzeichnissen nach des Webservers und verwenden Sie es.

Schritt 4

Nehmen wir die Standardkonfiguration von Apache (httpd.conf) und fügen am Ende ein paar Zeilen hinzu (vollständiges Beispiel: https://github.com/pqr/docker-apache-1c-example/blob/master/httpd. conf)

LoadModule _1cws_module /opt/1C/v8.3/x86_64/wsap24.so # 1c Veröffentlichung Alias ​​​​"/BuhBase" "/usr/local/apache2/htdocs/BuhBase/" AllowOverride All Options None Erfordert alle erteilten SetHandler 1c-application ManagedApplicationDescriptor „/usr/local/apache2/htdocs/BuhBase/default.vrd“

Damit zeigen wir dem Webserver an, welche Anfragen unterwegs sind /BuhBase muss mit einem Handler (SetHandler) bedient werden 1c-Anwendung.

Es zeigt auch den Pfad zu default.vrd. Zu diesem Zeitpunkt sind alle diese Pfade noch nicht vorhanden (und werden es auch nicht, sie befinden sich im Docker-Container).

Schritt 4

Lassen Sie uns eine Datei mit dem Namen erstellen Dockerfile(ohne Erweiterung) mit folgendem Inhalt:

FROM httpd:2.4 # Dieses Image basiert auf dem Standard-Image von Debian+Apache 2.4: https://store.docker.com/images/httpd # Kopieren Sie die Distribution in das dist-Verzeichnis COPY deb64.tar.gz /dist/deb64. tar.gz # Entpacken Sie die RUN-Distribution tar -xzf /dist/deb64.tar.gz -C /dist \ # und installieren Sie 1C-Pakete im System innerhalb des Containers && dpkg -i /dist/*.deb \ # und löschen Sie sie sofort die Quell-Deb-Dateien der Distribution, die wir nicht mehr benötigen && rm /dist/*.deb # Kopiere die vorgefertigte Config von Apache in den Container COPY httpd.conf /usr/local/apache2/conf/httpd.conf # Kopieren Sie die vorgefertigte Konfiguration im Container mit den Verbindungseinstellungen auf den 1C-Server COPY default.vrd /usr/local/apache2/htdocs/BuhBase/default.vrd

Schritt 5

Wir sammeln das Bild mit dem Befehl:

Docker build -t my-apache-1c .

Möglichkeit -t mein-apache-1c weist dem erstellten Image einen Namen zu, um es später einfacher ausführen zu können. Wenn nicht angegeben -t, dann müssen Sie die generierte eindeutige Bild-ID verwenden, was nicht sehr praktisch ist.

Schritt 6

Wir starten den Container aus dem neu erstellten Image mit dem Befehl:

Docker run --add-host Serv1C:192.168.1.15 --publish 80:80 my-apache-1c

Brechen wir diese Zeile auseinander:

--add-host Serv1C:192.168.1.15- Hier haben wir Docker ausdrücklich den Servernamen mitgeteilt Serv1C die IP-Adresse 192.168.1.15 ist versteckt (ersetzen Sie Ihre eigenen Werte). Wir haben den Servernamen Serv1C oben in default.vrd verwendet. Das ist gleichbedeutend damit, als hätten wir diesen Zusammenhang in der Berühmtheit geschrieben hosts-Datei. Aber innerhalb des Containers können Sie die Hosts-Datei nicht reparieren, Sie müssen über den Befehlszeilenparameter --add-host handeln.

Und warum nicht gleich die IP-Adresse in default.vrd angeben? Ich habe es versucht, aber beim Einchecken im Browser gab die 1C-Plattform einen Fehler aus und ehrlich gesagt habe ich das Problem nicht herausgefunden. Beim Verbinden per Hostname (Serv1C) gab es keine Probleme.

--veröffentlichen 80:80- Wir teilen dem Docker mit, dass Anfragen an den Hostcomputer auf Port 80 an den Container auf Port 80 umgeleitet werden sollen (Apache lauscht im Container). Manchmal ist Port 80 auf dem Host-Rechner bereits belegt, beispielsweise läuft eine Seite auf demselben Linux-Server oder ein lokaler Webserver ist auf dem Rechner des Entwicklers installiert, dann machen wir das: --veröffentlichen<любой свободный порт на хост-машине>:80 , zum Beispiel: --publish 8000:80

Der letzte Parameter ist der Name des Images (my-apache-1c), auf dessen Grundlage der Container gestartet werden soll. Wir haben bereits im vorherigen Schritt ein Image mit diesem Namen erstellt.

Nachdem Sie diesen Befehl ausgeführt haben, werden die Apache-Prozessprotokolle im Terminalfenster angezeigt. Das Terminal ist nicht geschlossen. Wenn geschlossen, wird der Container gestoppt.

Schritt 7

Wir überprüfen.

Zuerst prüfen wir Apache als Ganzes: http://localhost- sollte die Meldung "It Works!"

Warum localhost? Wir befinden uns jetzt auf unserem eigenen Computer (auf dem Computer des Entwicklers), auf dem wir den Docker-Container gestartet haben, sodass er für uns lokal ausgeführt wird.

Wenn alle Experimente sofort auf einem Linux-Server durchgeführt werden, müssen Sie es jeweils unter der Adresse des Linux-Servers versuchen, z. B. http://192.168.1.10 oder http://linux-host

Wenn beim Starten des Containers ein spezieller Port für den Hostcomputer angegeben wurde, müssen Sie ihn überprüfen, z. B. http://localhost:8000

Lassen Sie uns die Standard-REST-Schnittstelle (OData) überprüfen: http://localhost/BuhBase/odata/standard.odata/

Lassen Sie uns einen Webservice ausprobieren (falls es einen solchen in der Konfiguration gibt): http://localhost/BuhBase/ws/MyWebService?wsdl

Alles sollte funktionieren!

Jetzt können Sie den Container stoppen: Strg+C

Schritt 8

Wir haben gerade Apache mit dem 1C-Modul in einem Docker-Container auf dem lokalen Computer (Computer des Entwicklers) bereitgestellt. Eigentlich sollte das alles irgendwo auf einem dedizierten Linux-Server in Form eines Daemons laufen.

Es ist am bequemsten, den Container mit dem Dienstprogramm auf dem Server auszuführen docker-compose. Aber zuerst testen wir dieses Docker-Compose erneut auf dem lokalen Computer.

Alle im selben Projektverzeichnis (wo wir bereits ein Dockerfile, httpd.conf usw. haben) eine Datei erstellen docker-compose.yml:

Version: "3.4" Dienste: Apache-1c: Build: . Neustart: immer Ports: - 80:80 extra_hosts: - "Serv1C:192.168.1.15"

Tatsächlich sind hier dieselben Parameter, die wir an den docker run-Befehl übergeben haben.

Drei Unterschiede:

  1. Wir erfinden oder vergeben keinen Namen mehr für unser Typbild (my-apache-1c), stattdessen verwenden wir den Parameter bauen: ., d.h. docker-compose erstellt das Image basierend auf dem aktuellen Verzeichnis (Erinnern Sie sich an den Kontext?) und startet sofort den Container basierend auf dem erstellten Image
  2. Neustart: immer- Wenn Apache aus irgendeinem Grund abstürzt oder der gesamte Server neu startet, startet Docker den Container automatisch neu
  3. extra_hosts ist dasselbe wie --add-host in den Docker-Run-Befehlsoptionen. Ja, da gibt es einige Ungereimtheiten.

Und wir starten den Container mit einem neuen Befehl für uns:

docker-compose up -d

Der Container sollte starten und gehen Hintergrundmodus(Flagge -d). Wir überprüfen alle Adressen im Browser wie im vorherigen Schritt.

Stoppen Sie den Container (dieser Befehl muss im Terminal ausgeführt werden, da er sich im Projektverzeichnis befindet):

docker-compose down

Schritt 9

Docker-System beschneiden

Schritt 10

Ein wichtiger Bestandteil jedes Projekts ist die Dokumentation! Unbedingt schreiben README.md, etwa so: https://github.com/pqr/docker-apache-1c-example/blob/master/README.md

Stellen Sie alle Dateien außer deb64.tar.gz unter Versionskontrolle git, werden wir es an das Unternehmens-Repository senden, damit es nicht verloren geht.

Schritt 11

Das resultierende Projektverzeichnis kopieren wir auf den Linux-Server, gehen per ssh dorthin und führen im Zielverzeichnis den Befehl aus docker-compose up -d, überprüfen wir im Browser.

Alles ist bereit und läuft auf einem Linux-Server!

Was ist mit 1C-Plattform-Updates?

Laden Sie das neue Distributionskit deb64.tar.gz in das Projektverzeichnis herunter.

Wenn es einen Übergang von Version 8.3 zu Version 8.4 gab, müssen Sie in httpd.conf den Pfad zu wsap24.so korrigieren.

Was ist, wenn es mehrere Infobases gibt?

Möglichkeit A.

Wir müssen also mehrere .vrd-Dateien vorbereiten, Anweisungen zum Kopieren in das Dockerfile hinzufügen und die Pfade für den Webserver in httpd.conf beschreiben: Jede Basis hat ihren eigenen Pfad, ihr eigenes Verzeichnis, ihre eigene .vrd-Datei.

Wir laden das modifizierte Dockerfile, httpd.conf und neue vrd-Dateien auf den Server hoch, stoppen den Container und starten erneut mit dem Flag --build:

docker-compose down && docker-compose up -d --build

Möglichkeit B.

Für jeden Informationsbasis Sie können Ihren eigenen Container heben. Dies bedeutet, dass das Projektverzeichnis mit der Anzahl der Basen multipliziert werden muss, in denen jeweils eigene Einstellungen in der .vrd-Datei vorgenommen werden. Bei diesem Ansatz ist es jedoch nicht möglich, alle Container gleichzeitig auf einem Port auszuführen. Sie müssen Ihre Ports in jeder docker-compose.yml registrieren, z. B. 8001:80 für die erste Basis, 8002:80 für die Zweite Basis usw.

Dieser Ansatz hat übrigens einen anderen nützliche Eigenschaft- in diesen Behältern sein können verschiedene Versionen 1C-Modul (dies ist erforderlich, wenn Sie und 1C-Server mehrere haben verschiedene Versionen Plattformen).

Müssen Sie die Einstellungen für die Verbindung zum 1C-Server in default.vrd ändern?

Ändern Sie .vrd und starten Sie den Docker-Container mit Image Rebuild neu: docker-compose down && docker-compose up -d --build

Was bleibt hinter den Kulissen?

  • Dieser Artikel beschreibt nicht, wie man damit umgeht Dateigrundlagen. Ich habe in den Kommentaren unter dem Artikel ein Entwurfsbeispiel für Einstellungen gegeben, aber tatsächlich habe ich es nicht überprüft.
  • Nach dem Übertragen der Projektdateien vom lokalen Computer auf den Server funktioniert möglicherweise nicht alles. Beispielsweise kann Port 80 auf dem Server geschlossen sein - Sie müssen die Firewall-Regeln, iptables usw. überprüfen. Es kann andere Gründe geben - wie man all dies debuggt und wo man nachschaut (wo sind die Protokolle?) bleibt außerhalb des Rahmens des Artikels
  • Wenn dieser Webserver ins Internet schauen muss, dann brauchen wir unbedingt ein SSL-Zertifikat für die https-Verbindung. Es wurden viele Artikel darüber geschrieben, wie man https in Apache konfiguriert. Bei der Verwendung von Apache innerhalb von Docker ist im Großen und Ganzen alles genau gleich konfiguriert. Oder Sie installieren einen Reverse-Proxy mit SSL-Terminierung, zum Beispiel Træfik oder Nginx. Dieses Docker-Image installiert auch automatisch Zertifikate von Let's Encrypt: https://hub.docker.com/r/umputun/nginx-le/
  • Wir haben das offizielle Debian-basierte httpd als unser Basis-Image verwendet. Sie können versuchen, mit einem helleren Bild herumzuspielen, das auf Alpine basiert.

Quelle

Alle in diesem Artikel beschriebenen Konfigurationsdateien sind im Git-Repository zu finden: https://github.com/pqr/docker-apache-1c-example/ - Pull Requests werden akzeptiert.

Habe Fragen? Schreiben Sie mir, ich ergänze den Artikel gerne, falls etwas nicht klar ist, es Lücken in der Begründung gibt oder einige Schritte bei Ihnen nicht funktioniert haben – wir versuchen es gemeinsam herauszufinden und das Material zu ergänzen.

Mit der Veröffentlichung der 1C 8.2-Plattform wurde es möglich, bei der Arbeit mit 1C einen Webserver zu verwenden, um Ihre Datenbank mit dem weltweiten Netzwerk zu interagieren. In der Zukunft, als 8.3 und seine neuen Releases herauskamen, erweiterten sich die Möglichkeiten der Integration immer mehr. Bereits jetzt für die Kommunikation mit dem Internet, andere Informationssysteme und Bereitstellung des Zugriffs auf die Datenbank über einen Browser, Sie können den Webclient, die ODATA-Schnittstelle verwenden, Webdienste und HTTP-Dienste entwickeln.

In diesem Artikel sehen wir uns an, wie Sie in nur einer Minute den Apache-Webserver installieren und Ihre Infobase darauf veröffentlichen! Dazu haben wir für Sie eine einfache Bedienung mit zwei Tasten entwickelt.

Lassen Sie uns zunächst ein wenig in die Theorie eintauchen. Wenn Sie das alles bereits wissen, können Sie gerne ans Ende des Artikels scrollen und die Verarbeitung herunterladen. Wer in Eigenregie einen Webserver installieren möchte, aber kein 1C-Spezialist ist, dem empfehlen wir die Lektüre dieser Einführung.

Warum sollte ein normaler Benutzer 1C auf einem Webserver veröffentlichen?

Im Rahmen dieses Material Wir werden nicht alle Vorteile und Bequemlichkeiten der Veröffentlichung einer Datenbank auf einem Webserver betrachten. Lassen Sie uns darauf eingehen, was unsere Kunden oft von uns verlangen - Zugriff auf 1C über einen Browser. Sie werden in der Lage sein, mit zu arbeiten 1C von überall auf der Welt ohne eine Plattform zu installieren. Der Vorteil des Arbeitens in einem Browser besteht auch darin, dass Sie Ihr Programm dadurch eingeben können Mobilgerät: Tablet, Smartphone, alle laufen Betriebssystem A: iOS, Android usw. Es reicht aus, diese Option einzustellen Fernzugriff, öffnen Sie einen Browser und zeigen Sie auf die Verbindungssenke. Denken Sie vor allem an die Sicherheit, wenn Sie eine 1C-Datenbank auf einem Server für den Fernzugriff veröffentlichen! Zusätzlich zum Festlegen eines Passworts und anderer Sicherheitsmaßnahmen wird empfohlen, ein VPN zu verwenden, um auf das Netzwerk zuzugreifen, in dem sich die Basis befindet. Dies ist jedoch das Thema eines separaten Artikels, und es ist besser, sich an einen nicht sehr erfahrenen Spezialisten zu wenden.

Lesen Sie einen anderen, um den Fernzugriff direkt auf den Computer zu ermöglichen, auf dem 1C installiert ist, und möglicherweise ohne 1C.

Wie es funktioniert

Um den Zugriff auf 1C über einen Browser zu organisieren, müssen Sie:

  • Jede Konfiguration, die dafür ausgelegt ist verwaltete Formulare
  • Installieren und konfigurieren Sie einen Webserver
  • Veröffentlichen Sie die Datenbank auf dem Webserver

1C unterstützt zwei Webserver:

  • Apache

Der Apache-Webserver ist kostenlos, einfach zu installieren und zu konfigurieren und wird Sie zufrieden stellen Mindestanforderungen, also werden wir es in unserer Verarbeitung verwenden.

Wir nähern uns den interessantesten. Wie das alles geht. Sie können natürlich manuell. Aber um Zeit und Erfahrung zu sparen, können Sie unsere verwenden frei wird bearbeitet. Mit seinem Start kann jeder Benutzer gemäß unseren Anweisungen damit umgehen. Wir betonen noch einmal, dass die Konfiguration auf verwalteten Formularen erfolgen sollte. Modus "Taxi" oder nicht spielt keine Rolle.

Kurzanleitung für Kenner der Fremdverarbeitung:

  1. Wir erstellen eine Kopie (Backup) von IB. Die Verarbeitung ist absolut sicher. Aber es tut nie weh. Lesen Sie, wie es geht.
  2. Verarbeitung herunterladen - Datei
  3. unter Administrator (Computeradministrator). Verwechseln Sie dies nicht damit, die 1C-Konfiguration unter einem Benutzer mit vollständigen (Administrator-)Rechten auszuführen
  4. Im Befehlsmenü Datei - Öffnen. Wählen Sie die Datei InstallWebServer.epf/SetupWebServer.epf (die Version kann abweichen)
  5. Tragen Sie auf dem Formular den gewünschten Namen für die Veröffentlichung auf dem Webserver ein. Beim Start wird es automatisch aus dem Systemheader gefüllt.
  6. Wenn Sie über einen Proxy-Server auf das Internet zugreifen, geben Sie die Proxy-Einstellungen an
  7. Bestätigen Sie den Download des Apache-Webservers aus dem Internet
  8. Warte einige Zeit
  9. Der Webserver wird heruntergeladen und installiert, die Datenbank veröffentlicht und konfiguriert – Sie können sie mit einem Klick auf die Schaltfläche öffnen. Sie können die Adresse auch zu Ihren Favoriten im Browser hinzufügen

Wenn Sie Fragen haben oder nicht alles verstehen, kurze Anleitung lesen Sie ausführlich mit Bildern

  • Verarbeitung herunterladen - Datei

Laden Sie die Datei auf Ihren Computer herunter, von wo aus Sie sie dann von 1C aus öffnen können

  • Geben Sie 1C ein, indem Sie die Plattform starten unter Administrator (Computeradministrator)

Wir öffnen die Plattform (IB-Liste) mit den Rechten des lokalen Administrators des Rechners/Servers. Klicken Sie mit der rechten Maustaste auf die Startverknüpfung und wählen Sie „Als Administrator ausführen“. Dies ist notwendig, weil Der Apache-Dienst wird gestartet.

  • Im Befehlsmenü Datei - Öffnen. Wählen Sie InstallWebServer.epf (Version kann variieren)

Öffnen Sie in jeder Konfiguration auf verwalteten Formularen die Verarbeitung, indem Sie oben links auf „Datei-Öffnen“ klicken. Wir wählen unsere in Schritt 1 heruntergeladene Datei aus.

  • Tragen Sie auf dem Formular den gewünschten Namen der Basis für die Veröffentlichung ein. Beim Start wird es automatisch aus dem Systemheader ausgefüllt.

Die Bearbeitung wird geöffnet. Standardmäßig ist der Name der zu veröffentlichenden Datenbank eingetragen. Sie können den Namen in Ihren eigenen ändern, das Programm wird versuchen, Sie zu korrigieren, wenn Sie ungültige Zeichen schreiben.

Wenn während der Ausführung eine Meldung erscheint, dass keine Erweiterungsmodule installiert sind, lesen Sie, wie Sie es installieren.

  • Wenn Sie über einen Proxy-Server auf das Internet zugreifen, geben Sie die Proxy-Einstellungen an

  • Klicken Sie auf die Schaltfläche "Ausführen".

Nachdem Sie auf die Schaltfläche geklickt haben, erscheint das folgende Fenster, wie im Bild unten. Klicken Sie auf „Zustimmen“.

  • Die Datenbank wird auf dem Webserver publiziert und konfiguriert – Sie können sie mit einem Klick auf die Schaltfläche öffnen. Adresse zu Favoriten im Browser hinzufügen

  • Das Arbeiten mit 1C in einem Browser ist bequem und es ist keine Plattforminstallation erforderlich

Nach der Verarbeitung wird der Apache-Webserver ausgeführt. Sie können sehen, dass es läuft, stoppen und in der Taskleiste (untere rechte Ecke) neu starten.

Ein Rechtsklick auf das Symbol startet den Apache Service Monitor.

Sie können überprüfen, ob der Webserver ordnungsgemäß funktioniert, indem Sie die localhost-Zeichenfolge in einem beliebigen Browser auf dem Computer eingeben, auf dem Apache installiert ist. Wenn alles in Ordnung ist, sollten Sie die Aufschrift sehen - Es funktioniert!

Lassen Sie uns ein paar Worte über die Tatsache sagen, dass die Verarbeitung keine gemeinsamen Module aus 1C-Konfigurationen verwendet, sodass Sie den Webserver auf einer Konfiguration starten und installieren können, die ohne Verwendung des BSP (Library of Standard Subsystems) geschrieben wurde.

Außerdem können Sie die Sicherheit Ihrer Daten gewährleisten, indem Sie eine fast leere Konfiguration veröffentlichen. Es werden keine Verzeichnisse oder Dokumente gelesen oder verändert, Ihre Datenbankdaten werden nirgendwo hingeschickt. Sehen Sie sich das Protokoll an, um sich selbst davon zu überzeugen.

Unten ist ein Bild des Starts und der Ausführung der Verarbeitung auf einer leeren Basis, zu der nur ein Nachschlagewerk "Nomenklatur" hinzugefügt wurde.

Wenn Sie möchten, dass 1C immer zur Hand ist, verwenden Sie die 1C-Vermietung ohne unnötige Manipulationen.

Wenn Sie von einem anderen Netzwerk, von zu Hause, von einer Geschäftsreise oder sogar von einem Resort aus auf 1C zugreifen möchten, benötigen Sie zusätzlich zur Installation eines Webservers eine externe ("weiße" / dedizierte) IP-Adresse und korrekte Porteinstellungen. In diesem Fall sollte der Sicherheit der Basis große Aufmerksamkeit geschenkt werden, daher ist es besser, uns diese Arbeit anzuvertrauen. Nehmen Sie beliebige Einstellungen vor

Es gibt einen Windows-Server mit 1C 8.3 (DB - MSSQL).
Die Aufgabe besteht darin, die Veröffentlichung der Datenbank auf einem Linux-Webserver einzurichten.
Feinheiten - das 1C-Modul für Apache funktioniert nur mit 2.0 und 2.2 und Aktuelle Version in den meisten Distributionen - 2,4+
Ich schreibe mehr für mich, um nichts zu vergessen. Nun, man weiß nie, plötzlich wird jemand anderes nützlich sein - Sie müssen nicht durch die Foren rennen, um nach den richtigen Befehlen zu suchen.

Eisen - gab ein Gigabyte RAM, einen Kern und 20 Gigabyte Festplatte. Es ist nie zu spät, um zu expandieren.
Betriebssystem: Debian Stable, ich bin daran gewöhnt.

Ich habe das Minimum festgelegt, einschließlich des SSH-Servers, aber ohne das Web. Kommen wir darauf zurück.

Nach Installation der Grundeinstellung nach Geschmack stelle ich meistens das Locale auf utf8, setze sudo, mc und vim, den Rest nach Bedarf.
Als nächstes müssen Sie Apache 2.2 installieren. Und es auf die richtige Weise zu tun, und nicht nur durch das Herunterladen des deb-Pakets. :)

Fügen Sie zuerst Zeilen mit einem Link zu /etc/apt/sources.list hinzu vorherige Version Verteilung.
deb http://mirror.yandex.ru/debian/ wheezy main deb-src http://mirror.yandex.ru/debian/ wheezy main
Du kannst natürlich schreiben altstabil- auch im Moment wird richtig sein. Aber nur in der echten, denn früher oder später wird eine neue stabile Version veröffentlicht und in altstabil und dann wird es statt Apache 2.2 2.4 geben. Obwohl ich hoffe, dass 1C bis dahin aktualisiert wird und mit neueren Versionen von Apache funktioniert. Aber wer weiß? :)
Wo mirror.yandex.ru- Dort steht der Name Ihres bevorzugten Servers mit dem Repository.

Dann aktualisieren wir die Indizes - apt-get update- und sehen Sie, was wir hier für Apache mit dem Befehl haben apt-cache showpkg apache2
Es gibt viel Output, aber uns interessiert nur der Anfang des Outputs:
Paket: apache2 Versionen: 2.4.10-10+deb8u3 (/var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages) i386_Packages MD5: Beschreibungssprache: de Datei: /var/lib/apt/lists/mirror. yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5: Beschreibungssprache: de Datei: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5 : 2.4.10-10+deb8u1 (/var/lib/apt/lists/security. debian.org_dists_stable_updates_main_binary-i386_Packages) Sprache: de Datei: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5: Beschreibungssprache: de Datei: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation- de MD5: 2.2.22 -13+deb7u6 (/var/lib/apt/lists/mirror.yandex.ru_deb ian_dists_wheezy_main_binary-i386_Packages) Beschreibungssprache: Datei: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_binary-i386_Packages MD5: Beschreibungssprache: de Datei: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_i18n_Translation : Beschreibungssprache : ru Datei: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_i18n_Translation-ru MD5:

Wir sehen, dass es zusätzlich zu 2.4.10 Version 2.2.22-13+deb7u6 gibt - was Sie brauchen.
Wir stellen: apt-get install apache2=2.2.22-13+deb7u6
Oder genauer: apt-get install apache2=2.2.22-13+deb7u6 apache2-mpm-worker=2.2.22-13+deb7u6 apache2.2-common=2.2.22-13+deb7u6 apache2.2-bin=2.2.22-13 +deb7u6, und die restlichen Abhängigkeiten werden automatisch abgerufen.

Danach haben wir den Apache auf Eis gelegt, um ihn nicht versehentlich zu aktualisieren.

Apt-mark hold apache2 apache2-mpm-worker apache2.2-common apache2.2-bin apache2 ist als festgeschrieben markiert. apache2-mpm-worker ist als festgeschrieben markiert. apache2.2-common ist als festgeschrieben markiert. apache2.2-bin wird als festgeschrieben markiert.
Sie können service apache2 start und telnet an Port 80 ausführen, um zu überprüfen, ob Sie zu faul sind, den Browser zu starten.

telnet localhost 80
Trying::1... Verbunden mit localhost. Das Escape-Zeichen ist "^]". eines 501-Methode nicht implementiert

Methode nicht implementiert

1 bis /index.html wird nicht unterstützt.


Apache/2.2.22 (Debian) Server auf 1cweb Port 80
Verbindung von fremdem Host geschlossen.

Schwört - es bedeutet, dass es funktioniert.

Jetzt setzen wir 1C.
Es werden nur 1C-Webdienste benötigt (Paket 1c-enterprise83-ws). Und 1c-Enterprise83-gemeinsam, die in den Abhängigkeiten registriert ist. Und 1c-enterprise83-server, die nicht in den Abhängigkeiten angegeben ist, aber ohne sie schreibt das Veröffentlichungsdienstprogramm "Segmentierungsfehler".
Im Prinzip wird nur das Modul für Apache benötigt wsap22.so aus dem Paket 1c-enterprise83-ws, und alles andere kann über einen Texteditor erledigt werden. Aber ich bin ein fauler Mensch und gebe lieber ein paar Megabyte für 1C aus, als manuell Zeilen in Konfigurationen zu schreiben. :)

Als nächstes müssen Sie einen Ordner erstellen, um die Einstellungen der veröffentlichten Datenbank 1C zu speichern. Es ist im Webserver-Baum möglich, aber ich mache es besser separat, direkt am Stamm, / 1s.
Danach aus dem Ordner mit den installierten 1C-Dateien ( /opt/1C/v8.3/i386) Führen Sie das Veröffentlichungsdienstprogramm aus webinst mit folgenden Parametern (ich veröffentliche unsere Testdatenbank):
./webinst -apache22 -wsdir testlitupp -dir /1c/testlitupp -connstr "Srvr=10.0.0.4;Ref=testlitupp;" -confPath /etc/apache2/apache2.conf Veröffentlicht

Apache22 - unsere Version des Webservers
-wsdir testlitupp - Ordner auf dem Webserver, wo die veröffentlichte Datenbank verfügbar sein wird (http://yourserver/testlitupp)
-dir /1c/testlitupp - Ordner, in dem die Datei default.vrd mit den Veröffentlichungseinstellungen gespeichert wird
-connstr "Srvr=10.0.0.4;Ref=testlitupp;" - 1C-Server-IP und veröffentlichter Datenbankname
-confPath /etc/apache2/apache2.conf - Pfad zur Apache-Konfiguration

Wenn dort „Veröffentlicht“ steht, ist alles gut gelaufen. Wenn "Segmentierungsfehler" angezeigt wird, haben Sie höchstwahrscheinlich vergessen, dies anzugeben 1c-enterprise83-server.
Basierend auf den Ergebnissen haben wir die Datei default.vrd

Und ein paar neue Zeilen in der Konfigurationsdatei des Webservers:

LoadModule _1cws_module "/opt/1C/v8.3/i386/wsap22.so" # 1c-Veröffentlichung Alias ​​"/testlitupp" "/1c/testlitupp/" AllowOverride All Options None Order allow,deny Allow from all SetHandler 1c-application ManagedApplicationDescriptor „/1c/testlitupp/default.vrd“
Wir starten Apache neu (service apache2 restart) und sehen uns an, was dort veröffentlicht wurde.
Veröffentlicht, fragt nach einem Passwort.

Und lass ihn in die Basis.

Funktioniert. Zusätzliche Veröffentlichungseinstellungen werden durch Bearbeiten von vrd-Dateien vorgenommen (z. B. Aktivieren des Debuggens), und Ihre 1C-Programmierer sollten an der Fertigstellung der Webclient-Oberfläche beteiligt sein.
Wenn Sie Optionen z. B. mit Verbindungsdiensten manuell hinzufügen, dann vergessen Sie nicht, in der Voreinstellung den letzten Schrägstrich in der Zeile „base="/testlitupp" ib="Srvr=10.0.0.4;Ref=testlitupp;" zu entfernen. vrd-Datei / >“, habe ich lange damit herumgespielt. Wenn man nichts löscht und hinterher etwas hinzufügt, dann fliegt ein „Fehler 500“ ohne Zusatzinformationen raus.
Wie hoch wird die Auslastung des Webservers sein - das weiß ich noch nicht, bei uns läuft er noch im Testmodus und es sind genügend Ressourcen zugeteilt. Das Hinzufügen von Speicher oder Kernen bei steigendem Bedarf ist jedoch kein Problem.

Im Allgemeinen wird in anderen Linux-Distributionen alles auf ähnliche Weise gemacht, die Unterschiede bestehen nur in der Art und Weise, wie die alte Version von Apache installiert wird.

In diesem Artikel erfahren Sie, wie Sie schnell und einfach einen 64-Bit-Apache 2.4.25-Webserver installieren, konfigurieren und einen Webdienst mit 1C-Enterprise 8.3 veröffentlichen.

Seit Version 1C-Enterprise 8.3.8 können wir mit dem Apache 2.4 Server arbeiten. Bedenkt man, dass der Support für Apache 2.2 im Juli 2017 endet, ist die Frage durchaus relevant.

Bevor Sie mit der Installation beginnen, stellen Sie Folgendes sicher:

Wenn also die Anfangsbedingungen erfüllt sind, wird wie folgt vorgegangen:

  1. Laden Sie VC++ 15 Runtime über den Link herunter und installieren Sie es. Wähle eine Datei aus gewünschte Sprache und laden Sie die Datei "vc_redist.x64.exe" herunter. Wir installieren es.
  2. Wir laden die neueste aktuelle Distribution von der Apache Haus-Website herunter, zum Zeitpunkt des Schreibens dieses Artikels ist es 2.4.25 für die x64-Version. Das Distributionskit enthält alle notwendigen Mods, um daran zu arbeiten SSL-Protokoll(OpenSSL-Bibliothek), was für uns ein großes Plus ist.
  3. Wir entpacken das Archiv, es enthält das Verzeichnis "Apache24", kopieren dieses Verzeichnis an den Ort, an dem wir unseren Webserver platzieren möchten.
  4. Suchen Sie die Datei "Apache24/conf/httpd.conf" und bearbeiten Sie sie.
    1. Wenn wir in Punkt 3 in das Stammverzeichnis der Platte kopiert haben, überspringen wir diesen Punkt, ansonsten finden wir die Zeile „Define SRVROOT „/Apache24““ und geben dort den vollständigen Pfad zum Serverordner an.
    2. Suchen und bearbeiten Sie die Zeile „ServerAdmin [E-Mail geschützt] ».
    3. Suchen und bearbeiten Sie die Zeile " ServerName localhost: 80".
    4. Wir speichern die Datei.
  5. Überprüfung der Liste Windows-Dienste für das Vorhandensein des Web Publishing Service (das ist unser Standard-IIS). Auf Client Windows-Versionen es fehlt höchstwahrscheinlich, aber auf dem Server ist es standardmäßig vorhanden. Wir überprüfen, ob dieser Dienst deaktiviert ist. Andernfalls erhalten wir beim Versuch, Apache zu starten, den Fehler " make_sock: Konnte nicht an Adresse 0.0.0.0:80 binden».
  6. Wir starten Befehlszeile( cmd ) und wechseln Sie in das Verzeichnis Apache24/bin. Wir führen einen Testlauf des Servers durch, indem wir den Befehl senden: httpd
  7. Wenn der Windows-Firewall-Dienst ausgeführt wird, erhalten wir eine Meldung darüber Netzwerkaktivität und ein Antrag auf Arbeitserlaubnis Diese Anwendung. Wir erlauben.
  8. Wenn während der Installation und Konfiguration keine Fehler aufgetreten sind, werden keine Meldungen angezeigt, der Textcursor blinkt im Anwendungsmodus, ohne zur Standard-Shell-Eingabeaufforderung zurückzukehren. An dieser Stelle prüfen wir die Funktionalität durch Eintippen Adressleiste Adressbrowser: "http://localhost". Als Ergebnis sollten wir die Standard-Apache-Build-Seite von „Apache Haus“ sehen.
  9. Wir unterbrechen die Serverausführung, indem wir STRG+C drücken, und installieren dann als Dienst, indem wir den Befehl "httpd -k install " ausführen. Wir prüfen und stellen sicher, dass der neue Dienst in der Liste erscheint. Der erste Teil des Marlezon-Balletts war erfolgreich - der Webserver selbst wurde erfolgreich installiert, konfiguriert und funktioniert.
  10. Zum Testen empfehle ich die Verwendung der 8.3-Testdatenbank, die über den Link heruntergeladen werden kann. Wir stellen es als Client-Server bereit, gehen dann ohne Passwort zum 1C-Enterprise-Konfigurator unter dem Benutzer „Admin“ und wählen das Menü „Administration - Auf einem Webdienst veröffentlichen ...“. Der Veröffentlichen-Dialog wird geöffnet, wobei Apache 2.4 im Feld Webdienst in der Auswahlliste verfügbar ist. Wir wählen es aus, markieren, was wir veröffentlichen möchten, und klicken auf die Schaltfläche "Veröffentlichen". Wir lehnen einen Neustart ab. Unten ist ein Beispiel auf einer Testbasis (Sie können die DT-Datei herunterladen).

  11. Öffnen Sie die Konfigurationsdatei „Apache24/conf/httpd.conf“, suchen Sie nach der Zeile „ LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.9.2170/bin/wsap24.dll"", ändere es in " LoadModule _1cws_module "C:/Programme/1cv8/8.3.9.2170/bin/wsap24.dll"". Diese Aktion muss durchgeführt werden, da 1C im Konfigurator standardmäßig immer einen Link zu einer 32-Bit-Bibliothek setzt und wir eine 64-Bit-Bibliothek benötigen. Wir haben also die Wahl – entweder die Datei jedes Mal nach dem Bearbeiten der Publikation zu bearbeiten oder einen separaten Mechanismus zu verwenden – das WebInst-Dienstprogramm. Wir speichern die Konfigurationsdatei und starten den Apache 2.4-Dienst neu.
  12. Wenn alles richtig gemacht ist, erhalten wir zwei funktionsfähige Links:
    • Der Link "http://localhost/webtest/" wird verwendet, um über den Webclient auf die Datenbank zuzugreifen.
    • « http://localhost/webtest/ws/Test?wsdl» - wird verwendet, um den Inhalt des wsdl-Links des in dieser Konfiguration verfügbaren Webdienstes anzuzeigen.
  13. Die ganze Prozedur dauert nicht länger als eine halbe Stunde.