Как использовать обработку самой последней версии всегда. Один из методов

Публикация № 560512

Программирование - Инструментарий

обработка обновление самообновление

20
Заставим внешнюю обработку саму себя обновлять по согласованию с пользователем или без него :)

Доброго времени суток!

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

Один из методов, как решить эту проблему - это вшить в саму обработку механизм обновления. Действительно, почему бы не заставить саму обработку скачать новую версию и проверить на совпадение со старой версией? А если не совпадает, то предложим пользователю  вопрос об обновлении. Так дружественно к пользователю и поступим. Добавим вишенку на тортик - после обновления переоткроем обрабтку.  Все как в лучших домах...

Для тестирования обработки расположим ее в Интернете (в бложике) и каждый сможет убедиться в ее работоспособности.

Сделаем две обработки:

Для классических форм: 4 функции

Для Управляемых форм: 9 функций (полная немодальность :)  и немного БСП (ПолучитьФайлИзИнтернета - если БСП есть в конфигурации)

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

file2 = ПолучитьИмяВременногоФайла("epf");
КопироватьФайл(file, file2);
НоваяФорма = ВнешниеОбработки.ПолучитьФорму(file2);
НоваяФорма.Открыть();

Р.S. Данный метод используется в проекте Виджеты в 1С

20

Скачать файлы

Наименование Файл Версия Размер
Обработка для классических форм
.epf 8,85Kb
08.11.16
5
.epf 8,85Kb 5 Скачать
Обработка для управляемых форм
.epf 9,98Kb
08.11.16
6
.epf 9,98Kb 6 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Uejova 10.11.16 19:08 Сейчас в теме
Подскажите, пожалуйста, как пользоваться Вашей обработкой? Видимо, она предназначена для чего-то специализированного.... ничего у меня не получается. И даже вопрос обновить ли обработку, и тот не высвечивается.
2. sikuda 577 10.11.16 21:09 Сейчас в теме
(1) Uejova, Просто код надо вставить внутрь своей обработки или отчета. Внутри обработки есть переменные srv - сервер res - ресурс - откуда будет скачиваться она.
У меня это sikuda.ru и /1c/SeftUpdateClassic.epf как тестовая обработка.
3. h00k 37 10.11.16 21:44 Сейчас в теме
Для тестирования обработки расположим ее в Интернете (в бложике) и каждый сможет убедиться в ее работоспособности.

Заменить "бложик" на GitHub/ BitBucket - и вполне рабочее решение для масс :)
the1; artbear; sikuda; +3 Ответить
4. artbear 1134 16.11.16 11:55 Сейчас в теме
Поделюсь своим опытом:
В текущей публикации юзаются элементы управления жизненным циклом продуктом, например, релизное управление и т.п.
Соответственно, нужно решать вопросы:
  • Всегда ли нужно обновлять на последнюю версию?
  • нужны ли последние изменения продукта в развернутой системе?
  • Как разбираться с ошибками в новой версии?
  • Как откатиться на старую версию?
  • Автоматически обновляемся или все-таки вручную?
  • и т.п. и т.д.

От ошибок никто не застрахован, поэтому по опыту - ради стабильности проще пользоваться релизами и осознанным обновлением релизов, чем обязательным обновлением на новую версию.
5. artbear 1134 16.11.16 11:56 Сейчас в теме
Ну и вместо бложика, конечно, лучше системы управлениями версиями - Git + облачные гит-хранилища (Github, Bitbucket)
6. ture 557 16.11.16 12:10 Сейчас в теме
(5) О! я тоже заценил все прелести Git. Весьма просто + хранилище полезняшек.
7. sikuda 577 17.11.16 10:57 Сейчас в теме
(5) Здесь речь немного о другом. Данная задача возникла в процессе развития проекта Виджеты в 1С Обработки используемые в этом проекте постоянно обновлялись, и если вы скачали какую-либо версию и стали ее использовать нет гарантии того что это последняя версия. Заставлять пользователя заходить каждый раз и скачивать новую версию продукта не очень дружелюбно. А разбираться в управлениями версиями должны только мы программисты - пользователю все это не нужно. Поэтому и явилось простое и эффективное решение.

А по поводу сделать Git хранилище - работы уже ведутся https://github.com/sikuda/widget
Оставьте свое сообщение