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