Обновление тонких клиентов через Apache + PHP

20.08.24

База данных - Обновление 1С

На ИТС есть статья, в которой поверхностно описан процесс автоматического обновления тонких клиентов. В качестве примера, что логично, представлены методы конфигурации 1С. Но, в отличие от того же управления списками баз, для обновления не требуется хранить информацию, потому я решил переписать код на php, чтобы можно было отвязаться от 1С. Не работает для файловых баз, подключенных как File="ПутьКПапкеБазы"; (а жаль), для опубликованных файловых - работает.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обновление тонких клиентов через Apache + PHP:
.zip 2,15Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

Добрый день.

Задача обновления тонких клиентов стара как мир и имеет множество решений.

За основу взята информация из статьи на ИТС. Я реализовал это у себя на стенде, в целом всё работает, однако для этой задачи платформа 1С не требуется (в отличие от управления списком баз, переписать которое на php тоже можно, но нужно ещё какую-нибудь СУБД поднимать, типа mysql), всё можно сделать на чистом php, что позволяет разворачивать сервис где угодно.

Условия : Windows (проверял на 10), Apache2.4, php 8. Всё из коробки с минимальными настройками.

Требуется некая предварительная настройка Apache для связи с php. Постараюсь перечислить все настройки, но не гарантирую, что ничего не забыл. Обратите внимание на кодировку (UTF-8), на слеши в путях (/) и на то, что после изменения конфига, Apache надо перезапустить.

 
 D:\Apache24\conf\httpd.conf
 
 D:\Apache24\htdocs\Update\.htaccess
 
 D:\Apache24\htdocs\Update\index.php

Собственно, всё.

Осталось прописать строку в Адреса Интернет-сервисов, поменять переменные на свои, правильно расположить и назвать дистрибутивы и пользоваться.

Спасибо за внимание.

Обновление тонких клиентов Apache php

См. также

Обновление 1С Программист Платформа 1С v8.3 Россия Бесплатно (free)

При обновлении релиза конфигурации УТ появилась ошибка "Ошибка формата потока".

21.03.2025    830    Gummi_pr    10    

6

Обновление 1С Программист Платформа 1С v8.3 1С:ERP. Управление холдингом Абонемент ($m)

Описан практический пример обновления через копию конфигурации 1С:ERP. Управление холдингом с версии 3.2.6.6 на версию 3.2.6.7, который можно применять на других конфигурациях и версиях.

10 стартмани

18.02.2025    844    PetrovAnton    6    

5

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

Отчет о сравнении конфигураций представляет собой обширный массив информации. Однако у него есть значительное ограничение: его невозможно настраивать, например, добавлять различные группировки, фильтры или сортировку данных. Тем не менее, если преобразовать этот отчет в таблицу и использовать её в качестве источника данных, это открывает возможность для создания универсального отчета с использованием группировок, отборов и сортировки

10 стартмани

18.02.2025    732    5    kalyaka    0    

7

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

17.02.2025    356    0    slavik27    0    

3

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

2 стартмани

06.02.2025    2001    16    XilDen    26    

35

Групповая разработка (Git, хранилище) Обновление 1С Программист Платформа 1С v8.3 Россия Бесплатно (free)

Внедряем проверку новых версий прямо в расширение. Оповещайте о новых версиях и показывайте пользователям список изменений. Для разработчиков, которые хотят сэкономить время и повысить лояльность клиентов!

05.02.2025    2126    Nonik    10    

17
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. senshib 20.08.24 16:54 Сейчас в теме
Добрый день. Чем этот метод для Проф не устроил?
https://infostart.ru/1c/articles/1536904/
2. MikeSh 56 20.08.24 17:13 Сейчас в теме
(1) Добрый день.
Там предполагается, что куплен и установлен 1С Сервер. (Ну и IIS, с которым в целом не всё просто).
У меня же комплексное решение, независимо от наличия сервера и типа БД.
Главное, чтобы база была опубликована.
Разместить можно в каком-нибудь облаке (или дома с белым ip).
Для обслуживания "разношёрстных" клиентов - вполне себе решение.
Это третий по приоритету вариант поиска обновления. При наличии 1С Сервера и настроенного conf.cfg - будет брать с него.

Upd.
При наличии 1С Сервера и публикации баз наружу (например для удалёнщиков) будет проблема, какой именно путь прописывать в конфиге. Как правило, для локалки и интернета они будут отличаться.
(Я говорю о том случае, когда подключение происходит без использования впн в локалку).
Да, можно изгаляться над роутером, прописывать статические dns-имена, менять hosts и прочее, но это гораздо сложнее, чем такое решение.
3. lekseyich 26.08.24 15:35 Сейчас в теме
Проще прописать masquarade для локальных подключений и пользоваться одной ссылкой, независимо, в корпоративной сети клиент, или решил с ноутбуком поработать где то еще.
4. MikeSh 56 26.08.24 17:03 Сейчас в теме
(3) Если не секрет, как это будет выглядеть? (Мне для общего развития)
В конфиге прописано
PublishDistributiveLocationWindows64=http(s)://Server1c.local/files/client-win-64.zip
, подключается он ws="http(s)://my.company.ru/base1c".
Что именно надо прописать и где, чтобы компьютер понял, что server1c.local - это внешний IP my.company.ru?
Напомню, что предполагается подключение без vpn.
5. lekseyich 26.08.24 18:03 Сейчас в теме
Это необходимо настраивать NAT на шлюзе. Пример для микротика:

add action=netmap chain=dstnat dst-address=[my.company.ru] dst-port=80 \
protocol=tcp src-address=[Локальная зона192.168.1.0/24] to-addresses=[server1c.local] \
to-ports=80

тоже самое с 443 портом если используется https
6. MikeSh 56 27.08.24 09:28 Сейчас в теме
(5)
Так, а каким образом без танцев с бубном и прочих исправлений hosts дать понять конечному устройству, что server1c.local = my.company.ru?
(При запросе к http://my.company.ru/Base1 и необходимости обновления, клиента сервер 1с, как и публикация дистрибутива на веб-сервере, выдаст http://Server1c.local/files/client-win-64.zip)
7. lekseyich 06.09.24 18:28 Сейчас в теме
Все остается как в примере что я написал выше. Тут общение по ДНС получим внешний IP который шлюз уже сам переправит.
8. MikeSh 56 09.09.24 08:26 Сейчас в теме
(7) Согласен, что моего кунг-фу с наскоку не хватает для полного удержания картины в голове. И скорее всего такая настройка действительно отрезолвит внешний запрос к my.company.ru в Server1c.local.
Не понятен до конца только момент, как клиент, получивший прямую ссылку http://Server1c.local/files/client-win-64.zip, преобразует её в http://my.company.ru/files/client-win-64.zip, чтобы скачать обновление?
9. lekseyich 09.09.24 10:53 Сейчас в теме
Тут вам лучше почитать как работает днс. В общих чертах - общение идет не по доменному имени а по IP, к которому этот домен привязан, так что http://my.company.ru/files/client-win-64.zip, все равно что http://99.88.77.55/files/client-win-64.zip, главное прописать netmap в шлюзе для локальных подключений. который будет автоматически преобразовывать 99.88.77.55 в адрес сервера в локальной сети.
10. MikeSh 56 12.09.24 16:18 Сейчас в теме
(9) А, вы про то, что надо всегда публиковать http://99.88.77.55/files/client-win-64.zip, тогда у внешних будет всё нормально, а для внутренних вопрос будет решать роутер. Ну, наверное да, это имеет право на жизнь.
Правда тут не рассматривается ситуация, когда разным пользователям надо разные версии клиента (имею ввиду не 32 и 64, а 23.1548 и 24.1667), но для одной организации, тем более при наличии сервера 1с это не актуально.
Хорошо, что разобрались, а то как то меня терзало недопонимание.
Оставьте свое сообщение