Обновление тонких клиентов через 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)

Тестовая база обновлена через все ключевые релизы, всё протестировано, остатки сведены, вы готовы обновить «боевую» базу, но…по замерам для этого потребуется целая неделя, а у вас есть всего пара выходных. Знакомая ситуация? Расскажем, как увеличить скорость отработки промежуточных конфигураций!

18.06.2025    994    1c-izh    12    

7

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

Наша компания перманентно занимаемся обновлением «старых» и, к тому же, сильно нетиповых конфигураций. Хочется поделиться опытом по работе с важным этапом подобных проектов — поиску и оптимизации промежуточных конфигураций 1С. Первый материал будет полезен начинающим специалистам 1С, а в последующих, надеемся, найдется интересная информация и для матерых разработчиков.

04.06.2025    2778    1c-izh    6    

16

Обновление 1С Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Добавление в Справочник "Статьи затрат" отсутствующих предопределённых элементов.

1 стартмани

23.05.2025    292    0    qrw    0    

0

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

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

29.04.2025    2015    krasnoshchekovpavel    7    

17

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

Методика, описанная в статье, выработана при переезде с 1С:ДО 2.1 на 1С:ДО 3.0. Может также применяться при переходе с 1С:УПП на 1C:ERP, 1C:ERP на 1C:ERP УХ и т. п. Учтены все необходимые доработки при переезде на новую конфигурацию и предупреждены возможные ошибки.

21.04.2025    2259    PROSTO-1C    4    

4

Обновление 1С Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1C:ERP Абонемент ($m)

Внешняя обработка для обновления расширений и дополнительных обработок 1С из GitHub. Поддерживает как публичные, так и приватные репозитории, фильтрацию релизов по версии конфигурации, скачивание .cfe, .epf, .erf.

1 стартмани

15.04.2025    1863    7    Aleksandr    0    

21

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

Скрипт для загрузки конфигурации в 1С, обновления базы и архивации файла с логированием.

1 стартмани

02.04.2025    974    3    DoubleT    8    

5

Обновление 1С Linux Системный администратор Программист Бесплатно (free)

Пошаговая инструкция для обновления платформы 1С на сервере Linux Debian.

28.03.2025    1768    California_Dreaming    2    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. senshib 20.08.24 16:54 Сейчас в теме
Добрый день. Чем этот метод для Проф не устроил?
https://infostart.ru/1c/articles/1536904/
2. MikeSh 57 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 57 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 57 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 57 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 57 12.09.24 16:18 Сейчас в теме
(9) А, вы про то, что надо всегда публиковать http://99.88.77.55/files/client-win-64.zip, тогда у внешних будет всё нормально, а для внутренних вопрос будет решать роутер. Ну, наверное да, это имеет право на жизнь.
Правда тут не рассматривается ситуация, когда разным пользователям надо разные версии клиента (имею ввиду не 32 и 64, а 23.1548 и 24.1667), но для одной организации, тем более при наличии сервера 1с это не актуально.
Хорошо, что разобрались, а то как то меня терзало недопонимание.
Оставьте свое сообщение