Обновление тонких клиентов через 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С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    145646    641    358    

234

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

Те кто объединял конфигурации находящиеся на поддержке, обновлял подсистемы БСП прекрасно помнят упражнение «10000 тысяч кликов мышкой» или, непонятное словесное заклинание, после которого конфигурация снимается с поддержки целиком.

1 стартмани

26.09.2024    337    1    milkers    2    

6

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

Вышел новый релиз для УТ11 5.19.63. На копии базы было выполнено обновление и вылезли проблемы с номенклатурой, подлежащей маркировке. В публикации описаны проблемы, обнаруженные в копии базы конкретной организации.

24.09.2024    467    gull22    1    

7

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

Как исправить медленное сравнение конфигурации с файлом cf, сохраненным из хранилища.

17.09.2024    3889    vatkir    14    

9

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Упрощенное обновление конфигураций 1С (предпочтительно самописных) с помощью батника и Яндекс Диска (по публичной ссылке)

1 стартмани

22.08.2024    424    0    user1694357    0    

3

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

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

05.08.2024    603    NikiforovVA    0    

1

Обновление 1С Программист Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Бесплатно (free)

По нашему опыту, есть 2 ситуации, когда хочется отдать обновление нетиповой 1С кому-то другому. А) Если конфигурация и её доработки отлично знакомы, но не хочется заниматься рутиной. Б) Когда обновление длительно откладывалось, накопился «снежный ком» изменений, а команда, которая их делала, давно и неоднократно менялась.

26.06.2024    1097    1c-izh    4    

5

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

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

1 стартмани

02.05.2024    4411    11    chkurs    30    

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