Обновление тонких клиентов через 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 1С:ERP. Управление холдингом Абонемент ($m)

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

10 стартмани

18.02.2025    327    PetrovAnton    2    

2

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

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

10 стартмани

18.02.2025    402    1    kalyaka    0    

5

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

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

1 стартмани

17.02.2025    188    0    slavik27    0    

3

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

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

2 стартмани

06.02.2025    1543    8    XilDen    24    

34

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

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

05.02.2025    1220    Nonik    10    

17

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

Обновление для конфигурации Управление торговлей 10.3.88.3 добавляет поддержку ставок НДС 5% и 7%, обеспечивает корректную печать этих ставок на актуальных моделях торгового оборудования (АТОЛ, ШТРИХ, ревизия 4004), содержит актуальные правила обмена с конфигурацией "Бухгалтерия предприятия 3.0" для передачи новых ставок. Новые ставки НДС поддерживается в печатных формах УПД, ТТН и т.д. В состав дистрибутива включены обработки для обслуживания торгового оборудования ККТ нового формата (Штрих-М и АТОЛ)

5 стартмани

31.01.2025    1877    30    karpik666    28    

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