Мязин Пётр

130
Рейтинг

petr.myazin
Пётр Мязин



  •   Регистрация: 30.03.2018 (6 лет назад)

  •   Был(а) на сайте: 17.04.2024

Друзья
  • Дмитрий Малышев
  • Евгений Комиссаров
  • Виталий Ангелов
Подписчики 9

Группы

Профессиональный разработчик

Компания


Форвард-Транс
forward-hkg.com

ООО «Форвард-Транс» - российская транспортно-экспедиторская компания, предоставляющих услуги по перевозке грузов с 2008 года.

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

Сквозные интермодальные перевозки
Международные автотранспортные перевозки
Контейнерные морские перевозки
Ж/Д перевозки

22.06.2022    749   

Рейтинг 130

Запуск Apache 2.4 с модулем 1С внутри Docker контейнера

Статья Системный администратор Программист Платформа 1С v8.3 Linux Бесплатно (free) Нет файла Администрирование веб-серверов

Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе. Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии. Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.

04.04.2018    39934    petr.myazin    42       

130

Комментарии

ОбменFlutter плюс 1С#35 07.08.23 7:45
Порекомендую вместо самописных http сервисов использовать стандартный 1С REST интерфейс, который уже встроен в платформу. По сути фирма 1С уже написала половину этой задачи за вас, все http ручки предоставляются из коробки, остаётся только UI на flutter написать.
https://v8.1c.ru/platforma/rest-interfeys/
УчетОплата счетов в 1С:Бухгалтерии: выставлено и оплачено#1 20.05.23 15:16
Отличная статья, спасибо.

Сразу возник вопрос: как заполняется регистр сведений «Статусы документов»? Он заполняется автоматически при внесении банковских выписок?
А если я потом вручную у счёта изменю статус, то могу получить противоречивую ситуацию, когда судя по банковской выписке счёт оплачен, а вручную я поставил «не оплачен» - такая ситуация возможна в программе? А если потом перепровести банковскую выписку, то информация в этом регистре сведений обновится и мои ручные правки будут заменены на актуальный статус по выписке?
ОбменoData: получить проводки Результат проведения документа - Бухгалтерский и налоговоый учет#1 12.04.21 18:38
опрос к пользователям oData: в Бухгалтерии 2.0 на экране документа «Реализация товаров и услуг» есть кнопочка «Дт/Кт», которая открывает окно «Результат проведения документа - Бухгалтерский и налоговый учет»


Вопрос: как получить эти проводки для конкретного документа (зная его guid) с помощью REST oData интерфейса?

Подозреваю что мне нужен запрос типа /odata/standard.odata/AccountingRegister... ??? а дальше что?

Прикрепленные файлы:

1.png
2.png
УчетПереход на "Зарплату и управление персоналом 3.1"#24 08.02.19 8:21
Выполнили переход с 2.5 на 3.1 в начале января 2019.

Возникли вопросы, например, п.8 из статьи "Проверяем, чтобы корректно перенеслись остатки отпусков и стажи работы" - как проверить?

Бухгалтер, открыв ЗУП 3.1, говорит "не вижу никаких начислений, ничего не перенеслось, катастрофа". Где смотреть эти остатки никто не знает.

Вторая проблема: не перенеслись сотрудники уволившиеся в середине 2018 года, но по ним нужно сдать отчёт ПРФ СТАЖ. Выходит, этот отчёт не получится сдать из ЗУП 3.1? Но, говорят, поменялись формы, так что из старого ЗУП 2.5 тоже не получится сдать?

Нам точно требуется консультант-внедренец, своими силами ничего не понятно.
ОбменПеренос данных по стажу для ЗУП 3.1.8#3 31.01.19 12:13
(2) Только что решил проблему: закрыл ЗУП, открыл заново, повторил операцию "Перенос данных..." - на этот раз данные загрузились! Видимо, после добавления расширения нужно было перезапустить само приложение 1С (в моём случае это толстый клиент с файловой базой).

Спасибо большое за расширение и инструкцию!
ОбменПеренос данных по стажу для ЗУП 3.1.8#1 31.01.19 12:01
Делал всё по инструкции, но после нажатия кнопки "Загрузить" получил ошибку (см. скриншоты).
Версия ЗУП 3.1.8.137, платформа 8.3.13.1644.

Поможете? Вопрос очень актуальный, буду весьма благодарен!

Прикрепленные файлы:

Снимок экрана 2019-01-31 в 11.56.48.png
Снимок экрана 2019-01-31 в 11.57.02.png
Снимок экрана 2019-01-31 в 11.57.16.png
Снимок экрана 2019-01-31 в 11.58.02.png
ПубликацииЗапуск Apache 2.4 с модулем 1С внутри Docker контейнера#21 05.04.18 21:52
(17) Проверил сейчас на своём ноутбуке: при изменении только vrd сборка происходит чуть больше 2 секунд (измерял командой time docker build .)

Если же обновлять дистрибутив 1С на новую версию, то тут дольше, т.к. происходит установка deb пакетов, у меня сейчас вышло 17 секунд.

Размер папки проект по сути равен размеру дистрибутива 1С deb64.tar.gz (240Мб), остальные файлы это просто текстовые файлы конфигурации Dockerfile, docker-compose.yml, default.vrd, httpd.conf - они занимают считанные килобайты.

А вот когда образ собран, он уже занимает 1Gb (посмотреть можно командой docker images).

Контейнер стартует меньше чем за секунду.
В статье я приводил пример команды для пересборки и перезапуска: docker-compose down && docker-compose up -d --build
это в худшем случае (при обновлении дистрибутива 1С) даст downtime в 17 секунд. Но можно уменьшить downtime, если сначала сделать сборку нового образа, а потом уже остановить старый контейнер и запустить новый на основе нового образа, тогда downtime будет около секунды.

>Какова разница в производительности между контейнером и обычной системой, виртуальной машиной?

Я не измерял, тут лучше погуглить, думаю зависит от профиля нагрузки. В разных статьях пишут про разницу в единицы процентов между запуском приложения на голой системе и внутри docker контейнера.
ПубликацииЗапуск Apache 2.4 с модулем 1С внутри Docker контейнера#19 05.04.18 21:36
(18) Про SSL кратко упомянул в конце статьи разделе "Что осталось за кадром?" - в целом тема установки SSL для Apache известная, не раз описанная, не стал углубляться, в этой статье сделал фокус в первую очередь на описании взаимодействия с Docker.
ПубликацииЗапуск Apache 2.4 с модулем 1С внутри Docker контейнера#16 05.04.18 18:37
(15) Про добавление/удаление информационных баз и обновление платформы - это я описал в статье, хоть и кратко, посмотрите последние две глав "Что с обновлениями платформы 1С?" и "А если несколько информационных баз?".

Насчёт live migration хороший вопрос, не озадачивался, не знаю.
ПубликацииЗапуск Apache 2.4 с модулем 1С внутри Docker контейнера#13 05.04.18 16:41
(10) Моя цель использования Docker была в унификации способа запуска различных частей инфраструктуры. Помимо веб-сервисов 1С, в эксплуатации находятся ещё десяток других систем и сервисов (не связанных с 1С): для каких-то приложений нужен PHP с определённым набором модулей, для других Python на сервере. Есть просто статически скомпилированные бинарники (приложения на Go) и для их запуска не хочется настраивать systemd.

Docker в моём случае просто спасение! Я один раз разобрался с форматом Dockerfile и docker-compose.yml, завернул все приложения в образы, сохранил все конфиги в репозиториях. Если нужно что-то перенести на другой сервер (перераспределить нагрузку или вообще какой-то сервер умирает/устарел, требуется переустановка) мне не нужно вспоминать, что и как устанавливать и с какими зависимостями, всё уже упаковано и готово к запуску в две команды: git clone ... и docker-compose up -d

Есть и другие аргументы "за", так и аргументы "против", у каждого своя история, не претендую на роль евангелиста Docker'а. Ниже в комментариях привёл несколько ссылок на статьи отвечающие на вопрос "зачем и в каких случаях полезен Docker?".

В данном материале сознательно делаю фокус исключительно на технической стороне вопроса.