Navigation




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

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

Скриншоты

Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Актуальный состав внешнего регламента

ОбновлениеМодулейВнешнегоРегламента
НапоминаниеОДняхРождения
ОбновлениеИндексаПолнотекстногоПоиска
ОбновлениеКурсовВалют
ОчисткаСведений
ПоискИЗамена
ПроверкаИИсправлениеДанных
ПроверкаУникальностиСправочников
СтатистикаУвеличенияДанных
ТестВнешнегоРегламента
УдалениеПомеченныхНаУдаление

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

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