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

20.08.24

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

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

Файлы

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

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Добрый день.

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

За основу взята информация из статьи на ИТС. Я реализовал это у себя на стенде, в целом всё работает, однако для этой задачи платформа 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 Россия Абонемент ($m)

Внешняя обработка "Запуск процедур обновления" предназначена для запуска процедур обновления в типовых конфигурациях, а также в конфигурациях, где поддерживается типовой механизм обновления по подсистемам. Это может быть полезно тем, кто разрабатывает и поддерживает свои подсистемы на базе типового механизма. Тестировщики, разработчики.

1 стартмани

16.07.2025    500    4    lastpioneer    0    

9

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

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

02.07.2025    2771    1c-izh    9    

13

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

Продолжаем делиться опытом ICL SOFT – в этой статье рассказываем о сложном обновлении сильно доработанной конфигурации "1С:ERP Управление холдингом с версии 3.1.8.15" до актуальной версии редакции 3.2. Публикации о сложных обновлениях, которые можно найти в открытых источниках, содержат мало подробной информации об использованных инструментах и решениях. Часто в них отсутствует информация о том, что находится под капотом этих решений. Будем рады, если наша статья окажется полезной

1 стартмани

01.07.2025    1658    vladimir_iclsoft    1    

19

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

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

18.06.2025    3154    1c-izh    14    

10

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

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

04.06.2025    3657    1c-izh    13    

17

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

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

1 стартмани

23.05.2025    541    0    qrw    0    

0

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

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

29.04.2025    2821    krasnoshchekovpavel    7    

19
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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с это не актуально.
Хорошо, что разобрались, а то как то меня терзало недопонимание.
Оставьте свое сообщение