- Обновляем платформу 1С на сервере под управлением Linux
- Проблематика
- Окружение
- Инструкция по обновлению
- Заключение, благодарности.
- Установка патчей
- Тема: как ломануть 1C 8.3 for Linux
- Re: как ломануть 1C 8.3 for Linux
- Re: как ломануть 1C 8.3 for Linux
- Re: как ломануть 1C 8.3 for Linux
- Re: как ломануть 1C 8.3 for Linux
- Re: как ломануть 1C 8.3 for Linux
Обновляем платформу 1С на сервере под управлением Linux
Здравствуйте, меня зовут Шилин Никита и в прошлом я довольно много работал разработчиком 1С, а так же выполнял сопутствующие задачи. В настоящий момент я всё больше занимаюсь управлением командой и исполняю функции CTO на производственном предприятии. Команда у нас небольшая, отдельного девопса нет, а системный администратор не должен заниматься настройкой сервера 1С используется для других целей. Одной из задач на текущий момент для меня является администрирование сервера 1С на базе Ubuntu и его окружения.
Данная статья является, по сути, моей методичкой, которую я написал, собрав опыт настройки сервера под Linux с различных статей, официальной документации и просто покопавшись руками «вот в этом вот всем». Так как я ни разу не системный администратор и уж тем более под Linux, мне это далось с трудом, пришлось дополнительно много с чем разобраться. А мне ещё и делегировать это.
Действуя по этой методичке вы сможете обновить свою платформу в конце 2022 года, включить отладку на сервере и обновить свой веб-сервер. В отличие от большинства гайдов, работать будем с подсистемой systemd, вместо описанных везде init.d.
Проблематика
В последних дистрибутивах платформы 1С поменяла философию работы как с установочными файлами, так и с самими настройками сервера, поэтому первое с чем вы столкнетесь — это огромный ворох статей пятилетней давности, неактуальной документацией на its и множеством вопросов в духе «Почему не работает, я же все сделал по инструкции?». Плюс информация довольно сильно размазана и некоторые шаги я делал интуитивно, складывая, по аналогии, информацию из нескольких статей и пытаясь «изменить-сохранить-перезапустить» без малейшего понимания что я делаю, зачем, и надежды на то что оно вообще заработает. Спойлер: заработало.
Надеюсь, эта статья здорово сократит вам путь и снимет с вас головную боль от мысли что надо обновить платформу до последней версии, отладка отвалится, интеграции прилягут, а утром пользователи начнут звонить к вам в кровать.
Окружение
Мы используем Ubuntu 20.04.2 LTS (x64) для сервера 1С.
Вторую такую же машину для веб-сервера + Apache 2.4 для самописной интеграции с Битрикс24 (веб-хуки) и публикаций / внутренних сервисов компании.
Так же терминальный сервер для пользователей под Windows Server 2019 Standard.
Все настройки будут происходить по SSH/WinSCP. Все команды, выполняемые в консоли выполняются от имени пользователя с полными правами (root).
Больше никакой воды, переходим к инструкции.
Инструкция по обновлению
- Сделаем архивы всех боевых баз. Надеюсь, вы еще и проверяете что они работают. Мы проверяем.
- Скачаем нужный дистрибутив с сайта users.v8.1c. Когда перейдёте на страницу для выбора варианта своего дистрибутива вас неприветливо встретят 34 ссылки с вариантами клиентов и прочей информацией. Я прочитал и разобрался в них за вас: Выбираем «Технологическая платформа 1С:Предприятия (64-bit) для Linux».
- Создадим на сервере папку через WinSCP, загрузим в неё дистрибутив и распакуем через WinSCP.
- Идём в SSH-клиент, подключаемся к серверу 1С, переходим в папку с распакованным дистрибутивом, запускаем единый установочный файл:
./setup-full-8.3.22.1709-x86_64.run
Останавливаем службу:
systemctl stop srv1cv8-8.3.22.1709@default.service
Идём туда, где лежит файл конфигурации:
сd /opt/1cv8/x86_64/8.3.22.1709/
Открываем его:
nano srv1cv8-8.3.22.1709@.service
Ищем строку Environment=SRV1CV8_DEBUG= и добавляем в конец -http чтобы получилось:
Environment=SRV1CV8_DEBUG=-http
Тут стоит уточнить: вы можете использовать флаг -tcp вместо -http , но у нас стоит NAT и добиться отладки по tcp мне пока не удалось.
Сохраняем, выходим.
Перечитываем новую конфигурацию:
systemctl daemon-reload
Запускаем службу:
systemctl start srv1cv8-8.3.22.1709@default.service
Проверяем статус
systemctl status srv1cv8-8.3.22.1709@default.service
Должны увидеть следующее:
CGroup: /system.slice/system-srv1cv8\x2d8.3.22.1709.slice/srv1cv8-8.3.22.1709@default.service
├─3266 /opt/1cv8/x86_64/8.3.22.1709/ragent -d /home/usr1cv8/.1cv8/1C/1cv8 -port 1540 -regport 1541 -range 1560:1591 -seclev 0 -pingPeriod 1000 -pingTimeout 5000 -http ├─3296 /opt/1cv8/x86_64/8.3.22.1709/rmngr -port 1541 -host server1c.local -range 1560:1591 -d /home/usr1cv8/.1cv8/1C/1cv8/ -debug -http -clstid bd0a303e-c762-417f-b310-dc3aa2e80fca ├─3400 /opt/1cv8/x86_64/8.3.22.1709/dbgs —port=1550 └─3401 /opt/1cv8/x86_64/8.3.22.1709/rphost -range 1560:1591 -reghost server1c.local -regport 1541 -pid decb62bb-5dbe-42b7-a6c6-bd08c442d996 -debug -http
Вот и всё! Можно возвращаться к работе.
Заключение, благодарности.
Для подготовки я использовал материалы следующих статей:
Выражаю благодарность авторам, за то что они собрали информацию по работе с подсистемой systemd, так как большинство мануалов, в том числе официальных, написано для традиционной подсистемы init.
Дополнения и уточнения в комментариях приветствуются.
Установка патчей
Для учета постоянных изменений законодательства фирма 1С выпускает обновления конфигураций баз 1С. В промежутке между этими обновлениями выпускаются исправление (патчи). Чаще всего они срочно решают возникшие проблемы. Рассмотрим установку исправлений (патчей) на примере конфигурации «Бухгалтерии предприятия» версии 3.0.
1 Перед установкой патчей необходимо сделать выгрузку базы 1С при помощи «Конфигуратора». У пользователя должны быть права администратора:
После загрузки «Конфигуратора»:
- заходим в меню «Администрирование»;
- выбираем пункт «Выгрузить информационную базу»;
- указываем каталог, в который нужно выгрузить базу данных.
Перед выгрузкой необходимо проверить, чтобы в каталоге было больше свободного места, чем размер самой базы.
Время выгрузки может быть достаточно продолжительным и зависит от объема данных. В результате выгрузки вы получите файл с названием 1Cv8.dt. Дождитесь появления сообщения:
2 Для установки исправлений (патчей) требуется пользователь с правами «Администратор».
В базе должна быть подключена действующая «Интернет-поддержка».
Зайдите в меню «Администрирование» — «Интернет-поддержка и сервисы».
В пункте «Настройки Интернет-поддержки» вы можете проверить включена она или нет.
В пункте «Обновление версии программы» нажмите «Обновление программы»
3 Раскройте пункт «Подробнее» и установите «галочку» в пункте «Исправление (патчи). Две другие «галочки» (если они есть) снимите.
На рисунке показаны три возможных обновления: конфигурации, патчей и платформы.
«Обновление платформы 1С предприятие» требует при установке прав администратора компьютера (не только базы 1С). Уточните у вашего администратора эту информацию, прежде чем обновлять платформу.
После нажатия далее начинается процесс скачивания и установки патчей
4 После скачивания и обновления перезапустите базу, чтобы изменения вступили в силу
Если у Вас возникли вопросы, вы всегда можете обратиться в службу поддержки по телефону 8-800-505-37-68. Мы работаем 24/7
Тема: как ломануть 1C 8.3 for Linux
Re: как ломануть 1C 8.3 for Linux
через веб просит ключ (( даже х32 1с, есть пропаченый файлик у кого, у меня версия 8.3.5.1625 спецом старенькие и то не пачется или другая версия с патчам
Пришел за помощью
Регистрация 28.09.2016 Сообщений 20 Сказал(а) спасибо 1 Поблагодарили 9 раз(а) в 6 сообщениях
Re: как ломануть 1C 8.3 for Linux
Тоже очень интересно, как заставить работать web-клиент с сервером 1с установленном на линуксе. Пробовал патчить с помощью 1с8_uni3patch файлик backbus.so, он патчится но web-клиент все равно просит ключик.
У меня ubuntu server крутится на виртуальной машинке и я пока просто реализовал проброс в нее юсб порта через usbip. Но как-то не очень стабильно этот проброс работает и периодически 1с перестает видеть ключ.
Гость форума
Регистрация 29.07.2017 Сообщений 1 Сказал(а) спасибо 0 Поблагодарили 0 раз(а) в 0 сообщениях
Re: как ломануть 1C 8.3 for Linux
Добрый день! Для Windows10 х64 кто-нибудь может скинуть ломалку, дабы обойти всплывающее окно лицензии. Установлена платформа 1С 8.3 Бухгалтерия предприятия версия 8.3.10.2505. Файл delic мне не помог или что-то не так я возможно делал
Гость форума
Регистрация 05.05.2017 Сообщений 1 Сказал(а) спасибо 0 Поблагодарили 0 раз(а) в 0 сообщениях
Re: как ломануть 1C 8.3 for Linux
Интересует специалист, который сможет за вознаграждение решить проблему с лицензиями для Linux (Debian) сервера 8.3
4468618@gmail.com
+7 707 060 10 28
Оплата WU или как скажите
Пришел за помощью
Регистрация 08.02.2010 Сообщений 20 Сказал(а) спасибо 0 Поблагодарили 15 раз(а) в 1 сообщении
Re: как ломануть 1C 8.3 for Linux
Сделал сборку 1С сервера в контейнере docker.
Что работает:
1. Можно подключаться удаленно к рабочему столу через VNC и Веб браузер без плагинов! При достаточной скорости подключения даже нормально работает YouTube.
2. Полностью готовая связка 1С Клиент + 1С сервер + Apache2 + Postgres одной командой
3. Использование i386 версии 1С + postgres x64 на любой версии линукса, главное что бы был Docker. Это актуально для зоопарка.
4. Возможно использовать 1С клиента без удаленных рабочих столов пробросив X в контейнер
docker run $it —rm —user=user -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v v8-client-data:/home/user/ \
-v $HOME/1C:/home/user/1C \
v8i386 $cmd
Можно подключаться через браузер как на удаленный рабочий стол в контейнере так и к веб клиенту 1С, если расшарить порты сервера то можно использовать обычные клиенты.
Внутри контейнера можно развернуть несколько баз.
Для сборки используется i386/ubuntu:14.04 и 1С для i386.
Её можно пропатчить или же использовать софтовую лицензию.
Еще один вариант развернуть кластер и вынести сервер лицензирования на отдельную ноду где стоит ключ.
Сейчас переделываю сборку на два разных слоя, базовый и второй будет пользовательский с бинарниками 1С из-за лицензионных ограничений.
Это позволит мне опубликовать базовый образ публично и останется только поставить внутри него свою версию 1С (патченную или нет)
Следите за репозитарием https://hub.docker.com/u/quickes/ там выложу то что получилось.
Пример готовой конфигурации выглядит так.
запускается готовая сборка так
docker-compose -p demo1 up -d
можно поднять сколько угодно связок и в любой комбинации просто используя другое имя проекта (для знающих Docker это и так понятно)
docker-compose -p demo2 up -d
docker-compose -p demo3 up -d
docker-compose.yml
version: «2»
services:
server:
image: v8i386
hostname: server
volumes:
— v8home:/home
— apache:/etc/apache2
links:
— db:db
depends_on:
— db
command: ragent
web:
image: v8i386
hostname: web
volumes:
— v8home:/home
— apache:/etc/apache2
links:
— db:db
— server:server
depends_on:
— db
— server
ports:
— 8877:80
— 8878:443
command: apache
vnc:
image: v8i386
hostname: vnc
volumes:
— v8home:/home
— apache:/etc/apache2
— /home/user/share:/home/user/share
— /home/user/1C:/home/user/1C
links:
— server:server
environment:
— VNC_PW=123456
ports:
— 5911:5901
— 5912:6901
user: user
command: vnc
db:
image: pg1c:9.6.3
environment:
— DEBUG=false
— PG_TRUST_LOCALNET=true
— PG_PASSWORD=admin
volumes:
— pg-data:/var/lib/postgresql
— pg-run:/run/postgresql
command: >
-c temp_buffers=256MB
-c shared_buffers=512MB
-c effective_cache_size=512MB
-c effective_io_concurrency=1
-c autovacuum=on
-c synchronous_commit=off
-c commit_delay=1000
-c row_security=off
-c standard_conforming_strings=off
-c escape_string_warning=off
pgadmin:
image: fenglc/pgadmin4:1.5
ports:
— 5050:5050
links:
— db:db
environment:
— DEFAULT_USER=admin@gmail.com
— DEFAULT_PASSWORD=admin
volumes:
— pg-admin:/var/lib/pgadmin4
volumes:
pg-data:
pg-run:
v8home:
apache:
pg-admin:
ADD ./debs/ /opt/v8/debs
# install 1c
RUN dpkg -i /opt/v8/debs/1c-enterprise83-common_*.deb \
/opt/v8/debs/1c-enterprise83-server_*.deb \
/opt/v8/debs/1c-enterprise83-client_*.deb \
/opt/v8/debs/1c-enterprise83-ws_*.deb \
/opt/v8/debs/1c-enterprise83-crs_*.deb
# hasp здесь может быть ваш патч для x32
В создании контейнера использованы наработки других авторов, я их упростил и объединил в готовый набор.
По завершении работ исходники будут доступны на github