1с для линукс аналог

Обновлено: 07.07.2024

Установка Платформы «1С:Предприятие» в ОС Linux

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

  • Сервер «1С:Предпритие» 64-bit версии 8.3.13.1644. Пакеты для установки доступны здесь:
  • Если для сервера использоваться ключи аппаратной защиты HASP, то необходимо установить на сервер драйвер защиты HASP. Последние версии для различных операционных систем можно скачать:

Если в дальнейшем работа с сервером «1С:Предприятие» на Linux и управление будет осуществляться c других машин, необходимо убедиться в том, что ip-адрес компьютера, на котором расположен сервер, будет корректно разрешаться в его hostname. Откроем консоль сервера от имени пользователя root и получим адрес компьютера:

Имя компьютера можно получить так:

Теперь данные о соответствии ip-адреса и имени необходимо внести в файлы hosts тех машин, откуда будут устанавливаться соединения с кластером серверов:

Для Windows он расположен обычно:

В противном случае при установке клиентского соединения с рабочим процессом кластера будет возникать ошибка.

Установка платформы в Debian-системах на примере Ubuntu Server 16.04

  1. Откроем консоль сервера от имени пользователя root.
  2. Создадим директорию, куда поместим (любым удобным образом) архив с Deb-пакетами для установки Сервера 1С:Предприятие, скачанный предварительно.
  1. Войдем в каталог /1c/soft/1с:

Распакуем архив (при помощи команды tar xzf):

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

Устанавливаем сервер «1С:Предприятие»:

Последние три nls-пакета содержат языковые файлы и требуют обязательной установки только в том случае, если будут использоваться языки, отличные от русского и английского.

Установка будет осуществлена в директорию /opt/1C/v8.3/x86_64.

  1. Для корректной работы приложений необходимо установить шрифты из состава Microsoft Core Fonts:

Для того, чтобы система «увидела» установленные шрифты, нужно выполнить команду:

  1. Устанавливаем дополнительные внешние библиотеки:
  1. Запускаем службу:

Проверить статус работы можно при помощи команды:

Будет выполнена проверка, запущен ли сервис (Starting 1C:Enterprise 8.3 server: OK), и выведено детальное состояние сервиса.

Проверить, запущены ли процессы кластера, можно при помощи команды:

Перейдем к установке драйвера HASP. Для данного примера скачиваем драйвер по адресу:

Для установки драйвера выполняем следующие действия:

  1. Создадим каталог /1c/soft/hasp:
  1. В этот каталог любым удобным образом поместим скачанный пакет установки драйвера и перейдем в него:
  1. Поскольку драйвер использует 32-битные библиотеки, устанавливаем их:
  1. Устанавливаем драйвер:
  1. Запускаем драйвер защиты HASP:

Проверить статус можно так:

Установка платформы в RPMS на примере CentOS 7

  1. Откроем консоль от имени root.
  2. Создадим директорию, куда поместим (любым удобным образом) архив с RPM-пакетами для установки Сервера 1С:Предприятие, скачанный предварительно.
  1. Перейдем в директорию /1c/soft/1с

tar xzf rpm64_8_3_13_1644.tar.gz

В данном примере будут установлены все пакеты, но, если в вашей системе не планируется использовать языки, отличные от русского и английского, nls-пакеты вы можете не устанавливать - они содержат только языковые файлы.

Для пакетов x86_64 установка будет осуществлена в директорию /opt/1C/v8.3/x86_64.

  1. Для корректной работы приложений необходимо установить шрифты из состава Microsoft Core Fonts.
  • Скачиваем любым удобным образом (например, при помощи wget) файлы пакета с сервера SourceForge:

Надо скачать все .exe-файлы, кроме wd97vwr32.exe.

  • Переименовываем все скачанные .exe-файлы, присвоив им расширение .zip, после чего распакуем их и удалим все, кроме имеющих расширение .ttf – это файлы шрифтов.
  • Файлы шрифтов (.ttf-файлы) копируем в каталог /usr/share/fonts/truetype/

Для того, чтобы система «увидела» установленные шрифты, нужно выполнить команду:

  1. Устаналиваем дополнительные внешние библиотеки:
  1. Запускаем службу:

Проверить статус работы можно при помощи команды:

Будет выполнена проверка, запущен ли сервис (Starting 1C:Enterprise 8.3 server: OK), и выведено детальное состояние сервиса.

Проверить, запущены ли процессы кластера, можно при помощи команды:

Перейдем установке драйвера HASP. Для данного примера скачиваем драйвер по адресу :

Для установки драйвера выполняем следующие действия:

  1. Создадим каталог /1c/soft/hasp:
  1. В этот каталог любым удобным образом поместим скачанный пакет установки драйвера и перейдем в него:
  1. Поскольку драйвер использует 32-битные библиотеки, устанавливаем их:
  1. Устанавливаем драйвер:
  1. Запускаем драйвер защиты HASP:

Проверить статус можно так:

Основные проблемы и вопросы по установке Платформы «1С:Предприятие» в Linu x

1. При работе возникают ошибки «Не найдена библиотека …»

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

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

2. Как запустить сервер в режиме отладки?

Для того, чтобы на сервере была доступна отладка, необходимо запустить его в ключом –debug. Для этого сначала остановим сервер "1С:Предприятие":

ВАЖНО! Не редактируйте параметры запуска сервера в процессе его работы, это может привести к ошибкам при его перезапуске.

Теперь необходимо отредактировать параметры его запуска в конфигурационном файле srv1cv83 (в данном примере с использованием редактора vim):

Сохраняем изменения и выходим из файла.

Перезапускаем сервер «1С:Предприятия 8»:

3. Где находится каталог данных кластера серверов и как его изменить?

По умолчанию каталог кластера находится в директории пользователя, от имени которого запущен сервер 1С:Предприятие - $HOMEDIR/.1cv83/1C/1Cv83, например:

Для того, чтобы изменить место изменить место расположения, необходимо, по аналогии с п. 1, изменить параметр SRV1CV8_DATA запуска в конфигурационном файле /etc/sysconfig/srv1cv83.

ВАЖНО! Не забудьте убедиться в наличии прав на директорию данных кластера у пользователя, от имени которого запущен сервер. Увидеть права можно при помощи команды:

Предоставить права можно так:

В конфигурационном файле /etc/sysconfig/srv1cv83 также задаются порты, на которых будут работать процессы кластера, и другие параметры запуска.

4. Как настроить технологический журнал сервера в Linux ?

На сервере создадим каталоги, в который будут помещаться файлы журнала:

Создадим каталог для настроек журнала /opt/1C/v8.3/x86_64/conf:

Поместим в этот каталог файл logcfg.xml со следующим (например) содержимым:

В данном случае собирается полный технологический журнал (не стоит делать так на постоянной основе в продуктиве), срок хранения файлов журналов - 24 часа, находиться они будут в директории /var/log/1c/logs.

ВАЖНО! Необходимо предоставить пользователю, от имени которого работает сервер 1С:Предприятие, права на запись в каталог логов. Например, так:

Одним из недостатком Native API является то, что мы не можем возвратить ВК и передать параметры ВК в метод ВК. Поэтому пришлось возвращать ссылку на объект в виде строки. И создавать методы для обертки ВК над строкой.

Не буду описывать внутренности ВК. Описание и исходники можно посмотреть

Там же можно скачать и исходники.

Сначала определим вспомогательные методы для создания объектоа типов и обертки.

Я создал каталог, в который положил библиотеки

AddInNetObjectToNative.dll это сама ВК

Заодно проверим передаваемые типы.

Ух ты, и это работает!

Еще одна особенность Native API в том, что мы можем получить двоичные данные, но вот передать их в параметры метода метода ВК нет.

Дальше идет проверка вызова сторонней библиотеки и работа с двоичными данными.

Самое главное, что мы можем использовать сторонние библиотеки, которые должны лежать рядом с NetObjectToNative.dll

К сожалению, в отличие от COM в .Native ВК мы не можем использовать энумераторы

Поэтому для упрощения использования массивов и списков создана функция ПолучитьЭнумератор

Теперь перейдем к более грустному.
В этой статье был тест скорости, время вызова которого составляло более 300 000 вызовов в секунду.

Проведем аналогичный тест на 1С:

То есть скорость вызова уменьшилась до 20 000 вызовов в секунду.
Но и этого достаточно, так обычно вызываются более тяжелые методы.


Добавил поддержку IDynamicMetaObjectProvider (DynamicObject,ExpandoObject). В исходниках есть примеры. Это важно при использовании различного рода парсеров


Теперь стоит поговорить о недостатках 1С реализации Технологии Внешних Компонент.

1. Абсолютно не нужны методы FindMethod, FindProp, IsPropReadable, IsPropWritable, GetNParams, HasRetVal, GetParamDefValue

Так как у методов

bool SetPropVal и bool GetPropVal есть возвращаемое значение об успешном выполнении

Информация об ошибке возвращается через AddError.

Да и вызов по индексу это анахронизм от IDiapatch, где было описание диспинтерфейсов для увеличения скорости вызова.

2. При возвращении методами SetPropVal и GetPropVal исключение не вызывается

3. Зачем-то происходит установка свойств там, где в коде этого не требуется.

4. Вызывается метод как функция там, где метод вызывается как процедура.

5. Один из основных - это нельзя вернуть и передать экземпляр ВК из методов ВК.

Я лично не вижу никаких проблем. Определить значение для такого типа и установить ссылку в поле pInterfaceVal.

Подсчет ссылок происходит на стороне 1С. Передавать можно в том числе и объекты 1С только на время вызова метода.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Скажите, а таки чем вы руководствуетесь когда называете функции "Ъ", "Ъновый" и "Ътип" . Чтобы было сокращенно и было созвучно с Новый , а Ътип из той же оперы.
Мне лично, так код удобнее читать. Плюс за старания. Но по опыту скажу, если совмещать высокую нагрузку с внешними компонентами, до добра это не доводит.

(3) pbazeliuk,
Проблема тут не в самой компоненте, а интерфейсе, что 1С предоставляет.

Например практически все программисты 1С используют ComОбъект.

По моей методе можно использовать
NetОбъект,NetТип
JavaОбъект,JavaТип

И эти объявления будут реально кроссплатформенны.
При это различия с ComОбъект минимальны. Имя класса равноценно комовскому ProgID. При этом нет ограничений на используемые типы.
Ты можешь написать свою библиотеку поместить в определенное место и использовать её вместо COM. Без регистрации итд. Расширять возможности 1С станет легче.

При этом например нетовская библиотека весит всего 65 мегабайт, которую можно включить в дистрибутив и главное это кроссплатформенное решение. Причем нет ничего сложного передавать в параметрах и объекты 1С которые поддерживают аналогичный интерфейс. Можно пойти по пути подсчета ссылок в 1С, а доступ к объектам 1С только на время вызова метода ВК.

Veizdem --> Veizdem



Просмотр профиля

Ищу аналоги COM объектов для загрузки/выгрузки XML, работы с XSD файлами, а так же аналог COMConnector под ОС Linux. Необходимо все делать без использования wine или windows. Кто что знает по данному поводу?

Сервер 1С на Debian, сервер БД PostgreSQL на CentOS, все клиенты на Kubuntu.

Vofka --> Vofka



Просмотр профиля Технология COM - это технология самой Windows. Если мы говорим о том, что есть какой-то COM объект - это само собой подразумевает то, что речь идет про Windows. Veizdem --> Veizdem



Просмотр профиля Технология COM - это технология самой Windows. Если мы говорим о том, что есть какой-то COM объект - это само собой подразумевает то, что речь идет про Windows.

То, что COM это сугубо плюшка Windows я знаю, меня интересует как те же действия выполнять на Linux, где нет COM объектов.

Вот нашел пример записи XML файла без использования COM:

И пример чтения XML файла без того же COM:

А такая же реализация но для COMConnector есть?

Так же не нашел, как работать с XSD.

Vofka --> Vofka



Просмотр профиля

COMConnector-а под Линуксом нету.


Потому что то, что вы выше привели - это делается средствами платформы. А платформа на 90+% (мне так кажется) работает одинаково и в Виндовсе и в Линуксе. С XSD платформа сама работать не умеет. Veizdem --> Veizdem



Просмотр профиля

Работать с xml можно двумя способами получается - COM и внутренними средствами платформы, а что-то внутреннее по аналогии для COMConnector не придумано? Идиотизм какой-то. В очередной раз убеждаюсь, что проще было вместо 1С самостоятельно что-то написать.

Получается что для Linux только галочку на сайте разработали, а толку от этого никакого нет.

Petre --> Petre



Просмотр профиля Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія". Veizdem --> Veizdem



Просмотр профиля
А как мне их применять, чтобы работая в одной ИБ получить данные из другой ИБ, если они обе физически на одной машине лежат на одном сервере БД и одном сервере 1с? Или как мне это применить чтобы выгнать всех из 1С обработкой? Petre --> Petre



Просмотр профиля Не пойму, какие ограничения могут накладывать "если они обе физически на одной машине лежат на одном сервере БД и одном сервере 1с". Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія". Veizdem --> Veizdem



Просмотр профиля Не пойму, какие ограничения могут накладывать "если они обе физически на одной машине лежат на одном сервере БД и одном сервере 1с".
Ну в этом случае я спрашивал что мне с этим делать, так как еще ни разу с этим дела не имел. Извините, если не совсем понятно выразился. Vofka --> Vofka



Просмотр профиля Ну в этом случае я спрашивал что мне с этим делать, так как еще ни разу с этим дела не имел. Извините, если не совсем понятно выразился.
Ну так цель озвучьте, пора уже. Вы задали вопрос про COM в Linux - вам сказали, что такого нету. Что вы собираетесь сделать - никому кроме вас из здесь присутствующих неизвестно. Veizdem --> Veizdem



Просмотр профиля Ну так цель озвучьте, пора уже. Вы задали вопрос про COM в Linux - вам сказали, что такого нету. Что вы собираетесь сделать - никому кроме вас из здесь присутствующих неизвестно.
Так цель же вот она - как мне организовать обмен данными между двумя разными базами и как делать выброс всех пользователей, включая зависшие сеансы? Vofka --> Vofka



Просмотр профиля как мне организовать обмен данными между двумя разными базами

XML-ем делайте, либо любым форматом на свое усмотрение, в чем проблема? Так же, как выше писали - веб сервисы.

как делать выброс всех пользователей, включая зависшие сеансы?
Где-то (на диске ИТС кажется) встречал программный java интерфейс для управления сервером 1С. Вот видимо для счастливых обладателей Линукса его и сделали, чтобы через него можно было программно работать с сервером 1С. Veizdem --> Veizdem



Просмотр профиля Где-то (на диске ИТС кажется) встречал программный java интерфейс для управления сервером 1С. Вот видимо для счастливых обладателей Линукса его и сделали, чтобы через него можно было программно работать с сервером 1С.

Порылся на диске, нашел, да есть такая штука на Java, только вот я два дня промучился и не смог даже их пример работать заставить, он мне ошибку "отказ в соединении" выкидывает. И вот как с этим работать?

И ладно бы я не знал что такое Java, но я на ней не один проект сделать успел, до того как пересесть за 1С.

Может быть где-то есть какая-нибудь детальная информация как это все должно работать? JavaDoc предоставляемый в комплекте не дает полного описания того, как это все должно работать.

Vofka --> Vofka



Просмотр профиля

propk.ru

1с Тонкий клиент linux

1c thin-client или 1с тонкий клиент. Устанавливаем в Debian 10 и в дистрибутивах на его основе, использующие deb пакеты.

Уже не первый раз приходится обновлять тонкий клиент 1с на новую версию. Если в операционной системе windows это все сводится к простому нажатию Далее, Далее и ОК, то в системах Linux как правило возникают нюансы.

Порядок установки 1c тонкого клиента

Для установки тонкого клиента в системах Linux использующих deb пакеты как правило необходимо установить два пакета.

Первым ставим пакет самого клиента, а затем ставим языковый пакет. Пакет содержащий переводы, языки отличные от английского.

1с пакеты тонкого клиента и порядок их установки

Хочу напомнить, если вы используете debin 10, то для установки пакета используйте командную строку

команда будет выглядеть так

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

интерфейс программы gdebi

Для этого выберите пункт файл, затем открыть и в открывшемся окне выберите нужный пакет.

Распространенная ошибка с пакетом libwebkitgtk в 1с

Как правило многие столкнутся с ошибкой в зависимостях с пакетом libwebkitgtk на момент написания статьи его версия 3.0 и полное го название libwebkitgtk-3.0

Последняя цифра это, как уже догадались, его версия.

Ошибка выглядит так

1с ошибка связанная с пакетом libwebkitgtk-3.0

Соответственно, чтоб решить эту проблему нужно добавить репозиторий с этим пакетом и установить его.

Первый вариант

Подойдет для дистрибутивов Ubuntu и Mint

Подключаем репозиторий с этим пакетом, для этого в терминале откроем sources.list идобавим его туда.

Открываем файл sources.list командой в терминале, с помощью редактора nano

В конец добавляем строчку нашего репозитория

Выглядеть это будет так

1c добавляем репозиторий libwebkitgtk-3.0

Затем сохраняем сочетанием клавиш Ctrl+O и закрываем Ctrl+x

Далее традиционно обновляемся

Ну и затем ставим пакет

libwebkitgtk-3.0-0 - процесс установки пакета

Просто откройте снова его через терминал в редакторе nano

Не забудьте сохранить файл сочетанием клавиш Ctrl+O и закрываем Ctrl+x

Далее ставим наш клиент 1с, ошибок не должно быть, не забываем про пакет с поддержкой языков.

Вариант второй для Debian 10

Если у вас Debian 10 то добавьте в список репозиториев репозиторий stretch.

Откройте файл репозиториев в терминале при помощи редактора nano

Добавьте в конец репозиторий

Не забываем после изменений сохранить Ctrl+O и закрыть Ctrl+x

Далее традиционно обновимся

sudo apt update

Теперь поставим, недостающий пакет именно из того репозитория который указали

После ставим наш пакет 1с с тонким клиентом и его языковый пакет.

Ошибки со шрифтом 1с

Как правило после установки тонкого клиента многим не нравится шрифт.

Иногда не корректно отображается шрифт.

Для решения этих вопросов необходимо до установить пакеты с нужными шрифтами.

Порядок установки и их название описаны в статье по первоначальным настройкам debian и настройкам debian10.

Читайте также: