Внешний регламент для 1С
Текущая версия - 1.7   
Актуальный состав
Внешний регламент сделан для тех, кто ценит свое время и время заказчика.
После одноразового встраивания в конфигурацию, внешний регламент на лету позволяет добавлять,
изменять внешние модули, которые могут выполнятся как регламентные задачи с указанным интервалом или запускаться в ручном режиме.
Внешний регламент не привязан к типовым, он не использует БСП, его можно встроить в любую нетиповую конфигурацию.
Все модули (внешние обработки) находятся и выполняются на стороне сервера, что позволяет исключить подмену алгоритмов со стороны клиента.
Кому и зачем это надо
Внешний регламент понравится тем, кто работает на результат, а не ради пыли в глаза.
Больше уже не надо подключаться по два часа к хранилищу и постоянно обновлять конфигурации ради изменения двух строчек кода.
Вы сможете вести разработку, как все нормальные программисты, с помощью небольших файлов-модулей,
после записи модуля он уже работает в базе как обновленный (даже не надо просить пользователя переокрыть форму).
Для хранения версий и для просмотра изменений можно использовать GitHub, а для простого контроля версий подойдет программа Defy.
Ну и наконец Вы забудете про эту кашу в коде и в голове конструкций НаКлиенте-НаСервере.
Все модули (внешние обработки) находятся и выполняются на стороне сервера, что позволяет исключить подмену алгоритмов со стороны клиента.
Если Вы напишите свой интересный модуль, присылайте на почту, я вставлю в состав модулей внешнего регламента.
Как встроить в конфигурацию внешний регламент
1. В конфигураторе нажимаем "Конфигурация -> Поддержка -> Настройка поддержки -> Включить возможность поддержки". Выбираем "Объект поставщика редактируется с сохранением поддержки"
2. В конфигураторе нажимаем "Конфигурация -> Сравнить, объединить с конфигурацией из файла". Выбираем файл "ВнешнийРегламент.cf"
3. Снимаем все флажки в окне сравнения. Выбираем внизу фильтр "Показывать присутствующие только в файле". Включаем все флажки. Нажимаем "Выполнить". Сохраняем изменения в конфигурации.
В самой конфигурации будут добавлены метаданные:
ОбщийМодуль.ВнешнийРегламент
ОбщийМодуль.ВнешниеКоманды
ОбщийМодуль.ВнешниеКомандыКлиент
ОбщаяФорма.ГрупповоеИзменениеСсылок
ОбщаяФорма.ГрупповоеИзменениеРеквизитовДляЗаданныхОбъектов
ОбщаяФорма.ВыгрузкаЗагрузкаДанныхЧерезТекст
ОбщаяФорма.ГрупповаяРегистрацияВПланахОбмена
РегламентноеЗадание.ВнешнийРегламент
РегистрСведений.ЖурналВнешнегоРегламента
Справочник.ВнешнийРегламент
Справочник.ВнешнийРегламентНастройки
Подсистема.ВнешнийРегламент
4. У пользователя, который будет настраивать внешний регламент убираем флаг "Защита от опасных действий".
5. Запускаем Предприятие и переходим в справочник "Внешний регламент". Нажимаем кнопку "Настройка". Настраиваем каталог внешних модулей и запускаем "Использование регламента".
6. Переходим в справочник "Внешний регламент" и нажимаем кнопку "Определить обработки". В списке должны появиться все возможные обработки, которые можно использовать в фоновом режиме или выполнять в ручном режиме.
Как добавить расширение "ВнешнийРегламент" для типовых
1. Расширение можно сделать только для платформы версии 14 и выше.
2. В конфигураторе нажимаем "Конфигурация -> Расширения конфигурации -> Добавить (Имя=ВнешнийРегламент,Префикс=ВР_,Назначение=Дополнение)"
3. В строке с новым расширением снять флажки "Безопасный режим" и "Защита от опасных действий"
4. Потом в окне расширений нажимаем "Конфигурация -> Загрузить конфигурацию из файла". Выбираем файл "ВнешнийРегламент.cfe", который находится в скаченном архиве
5. Внешний регламент замещает только функцию общего модуля ОчередьЗаданийСлужебный.ПланированиеОбработкиЗаданий
6. Запускаем Предприятие и переходим в справочник "Внешний регламент (настройки)". Для типовых конфигураций меняем "ИмяВнешнегоРегламента" на "ПланированиеОбработкиЗаданий".
7. Переходим в справочник "Внешний регламент". Нажимаем кнопку "Настройка". Настраиваем каталог внешних модулей и запускаем "Использование регламента".
8. Переходим в справочник "Внешний регламент" и нажимаем кнопку "Определить обработки". В списке должны появиться все возможные обработки, которые можно использовать в фоновом режиме или выполнять в ручном режиме.
Требования к внешней обработке для использования во внешнем регламенте
1. Обязательный реквизит ПараметрЗапуска (Строка.0).
2. Обязательные экспортные фунции:
Инициализация() - должна вернуть пустую строку если все хорошо, или строку с описанием ошибки.
Выполнение() - должна вернуть строку с результатом выполнения (если в строке есть слово 'Ошибка', то попадает в ошибки иначе в комментарий) или структуру с полями:
Комментарий
Ошибка
ДополнительныйТекст
ДополнительнаяТаблица,
которые будут записаны в аналогичные поля новой записи в регистре сведений ЖурналВнешнегоРегламента.
(Если есть потребность добавить несколько таблиц, то ДополнительнаяТаблица должна иметь две колонки Имя и ТЗ)
3. Необязательные экспортные функции:
ПодготовитьВариантыПараметровЗапуска(Варианты) - Варианты есть список значений
ПодготовитьВариантыДополнительныхДействий(Варианты) - Варианты есть список значений
ВыполнитьДополнительноеДействие(ИмяДействия)
4. В качестве шаблона можно использовать обработки "СтатистикаУвеличенияДанных.epf" или "ОбновлениеКурсовВалют.epf"
Пример использования внешнего регламента
Есть 10 копий баз БП разных клиентов (базы немного различны и по конфе и по платформе).
Вы занимаетесь поддержкой и частой доработкой при помощи удаленных программистов, которым закрыт доступ к данным.
1. Вам программист 1с из российской глубинки присылает обработку, которую надо проверить на всех базах (обработка возможно делается много времени в фоне), результат обработки автоматом отправляется на почту.
2. И вот после всех проверок (а итераций вы-программист-вы(как проверяющий) может быть много) Вы получаете законченную обработку.
3. Вам теперь новую версию обработки надо выложить в рабочие базы на разных серверах в разных городах (и доступ вам дали на какую-нить сетевую папку).
Пункт 1-2-3 - это и есть постоянное изменение-поддержка в нашей трудовой деятельности.
Пункт 2 в данной задачи с типовыми решения будет выполняться в 10 раз дольше, так как во все базы надо зайти и обновить новую версию обработки.
Во внешнем регламенте, если во всех 10 базах в Спр.ВнешнийРегламентНастройки.КаталогВнешнихМодулей прописать один путь, надо только в одно место положить новую версию обработки.
фоновое задание его подхватит и вышлет на почту результат нового алгоритма.
Пункт 3 при типовом подходе так же будет дольше, а при использовании внешнего регламента заказчику надо подбросить только файл на определенный сетевой ресурс.