Navigation




Внешний регламент для 1С

Текущая версия - 1.3

Внешний регламент сделан для тех, кто ценит свое время и время заказчика. После одноразового встраивания в конфигурацию, внешний регламент на лету позволяет добавлять, изменять внешние модули, которые могут выполнятся как регламентные задачи с указанным интервалом или запускаться в ручном режиме.
Внешний регламент не привязан к типовым, он не использует БСП, его можно встроить в любую нетиповую конфигурацию.
Все модули (внешние обработки) находятся и выполняются на стороне сервера, что позволяет исключить подмену алгоритмов со стороны клиента.

Скриншоты

Скачать

Кому и зачем это надо

Внешний регламент понравится тем, кто работает на результат, а не ради пыли в глаза. Больше уже не надо подключаться по два часа к хранилищу и постоянно обновлять конфигурации ради изменения двух строчек кода.
Вы сможете вести разработку, как все нормальные программисты, с помощью небольших файлов-модулей, после записи модуля он уже работает в базе как обновленный (даже не надо просить пользователя переокрыть форму).
Для хранения версий и для просмотра изменений можно использовать GitHub, а для простого контроля версий подойдет программа Defy.
Ну и наконец Вы забудете про эту кашу в коде и в голове конструкций НаКлиенте-НаСервере.
Все модули (внешние обработки) находятся и выполняются на стороне сервера, что позволяет исключить подмену алгоритмов со стороны клиента.
Если Вы напишите свой интересный модуль, присылайте на почту, я вставлю в состав модулей внешнего регламента.

Как встроить в конфигурацию внешний регламент

1. В конфигураторе нажимаем "Конфигурация -> Поддержка -> Настройка поддержки -> Включить возможность поддержки". Выбираем "Объект поставщика редактируется с сохранением поддержки"

2. В конфигураторе нажимаем "Конфигурация -> Сравнить, объединить с конфигурацией из файла". Выбираем файл "ВнешнийРегламент.cf"

3. Снимаем все флажки в окне сравнения. Выбираем внизу фильтр "Показывать присутствующие только в файле". Включаем все флажки. Нажимаем "Выполнить". Сохраняем изменения в конфигурации.
В самой конфигурации будут добавлены метаданные:
ОбщийМодуль.ВнешнийРегламент
ОбщийМодуль.ВнешниеКоманды
ОбщийМодуль.ВнешниеКомандыКлиент
ОбщаяФорма.ГрупповоеИзменениеСсылок
ОбщаяФорма.ГрупповоеИзменениеРеквизитовДляЗаданныхОбъектов
ОбщаяФорма.ВыгрузкаЗагрузкаДанныхЧерезТекст
ОбщаяФорма.ГрупповаяРегистрацияВПланахОбмена
РегламентноеЗадание.ВнешнийРегламент
РегистрСведений.ЖурналВнешнегоРегламента
Справочник.ВнешнийРегламент
Справочник.ВнешнийРегламентНастройки
Подсистема.ВнешнийРегламент

4. У пользователя, который будет настраивать внешний регламент убираем флаг "Защита от опасных действий".

5. Запускаем Предприятие и переходим в справочник "Внешний регламент". Нажимаем кнопку "Настройка". Настраиваем каталог внешних модулей и запускаем "Использование регламента".

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

Как сделать расширение внешний регламент

1. Расширение можно сделать только для платформы версии 14 и выше.

2. В конфигураторе нажимаем "Конфигурация -> Расширения конфигурации -> Добавить (Имя=ВнешнийРегламент,Префикс=ВР_,Назначение=Дополнение)"

3. В строке с новым расширением снять флажки "Безопасный режим" и "Защита от опасных действий"

4. Потом в окне расширений нажимаем "Конфигурация -> Загрузить конфигурацию из файла". Выбираем файл "ВнешнийРегламент.cfe"

5. Внешний регламент замещает только функцию общего модуля ОчередьЗаданийСлужебный.ПланированиеОбработкиЗаданий

6. Запускаем Предприятие и переходим в справочник "Внешний регламент". Нажимаем кнопку "Настройка". Настраиваем каталог внешних модулей и запускаем "Использование регламента".

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

Требования к внешней обработке для использования во внешнем регламенте

1. Обязательный реквизит ПараметрЗапуска (Строка.0).

2. Обязательные экспортные фунции:
Инициализация() - должна вернуть пустую строку если все хорошо, или строку с описанием ошибки.
Выполнение() - должна вернуть строку с результатом выполнения (если в строке есть слово 'Ошибка', то попадает в ошибки иначе в комментарий) или структуру с полями:
Комментарий
Ошибка
ДополнительныйТекст
ДополнительнаяТаблица
,
которые будут записаны в аналогичные поля новой записи в регистре сведений ЖурналВнешнегоРегламента.

3. Необязательные экспортные функции:
ПодготовитьВариантыПараметровЗапуска(Варианты) - Варианты есть список значений ПодготовитьВариантыДополнительныхДействий(Варианты) - Варианты есть список значений ВыполнитьДополнительноеДействие(ИмяДействия)

4. В качестве шаблона можно использовать обработки "СтатистикаУвеличенияДанных.epf" или "ОбновлениеКурсовВалют.epf"

Пример использования внешнего регламента

Есть 10 копий баз БП разных клиентов (базы немного различны и по конфе и по платформе). Вы занимаетесь поддержкой и частой доработкой при помощи удаленных программистов, которым закрыт доступ к данным.
1. Вам программист 1с из российской глубинки присылает обработку, которую надо проверить на всех базах (обработка возможно делается много времени в фоне), результат обработки автоматом отправляется на почту.
2. И вот после всех проверок (а итераций вы-программист-вы(как проверяющий) может быть много) Вы получаете законченную обработку.
3. Вам теперь новую версию обработки надо выложить в рабочие базы на разных серверах в разных городах (и доступ вам дали на какую-нить сетевую папку).
Пункт 1-2-3 - это и есть постоянное изменение-поддержка в нашей трудовой деятельности.
Пункт 2 в данной задачи с типовыми решения будет выполняться в 10 раз дольше, так как во все базы надо зайти и обновить новую версию обработки.
Во внешнем регламенте, если во всех 10 базах в Спр.ВнешнийРегламентНастройки.КаталогВнешнихМодулей прописать один путь, надо только в одно место положить новую версию обработки. фоновое задание его подхватит и вышлет на почту результат нового алгоритма.
Пункт 3 при типовом подходе так же будет дольше, а при использовании внешнего регламента заказчику надо подбросить только файл на определенный сетевой ресурс.