Хранение модулей во внешних обработках. Меняем код без обновления конфигурации

24.01.19

Разработка - Инструментарий разработчика

Пример конфигурации, которая позволяет хранить код общих модулей в обработках, а обработки в справочнике. Такой подход позволяет изменить логику работы программы без необходимости обновления конфигурации и прерывания работы пользователей.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
База с возможностью хранения кода во внешних обработках
.dt 45,91Kb ver:1
7
7 Скачать (1 SM) Купить за 1 850 руб.

Идея не новая, но мало где есть примеры такого подхода. Конфигурация имеет минимально необходимый функционал, который может быть значительно расширен.

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

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

Можно менять процедуры, функции, тексты запросов, схемы СКД, формы. В приложенной базе есть пример хранения функций в модуле обработки и обращение к ним из встроенной в конфигурацию обработки. Остальной функционал довольно просто можно прикрутить к существующему механизму.

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

Предусмотрен режим отладки (который должен быть доступен только разработчику), позволяющий отлаживать код подключаемых обработок.

Практическое применение данного механизма:

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

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

3. В распределенной базе отпадает необходимость обновления в каждом узле. Изменения кода придут с обменом.

4. Когда заказчик сам не знает что хочет и каждый час просит что-то добавить или убрать. Появляется возможность неограниченное количество раз за день вносить изменения и демонстрировать результат.

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

и т.д.

Тестировалось на платформе 8.3.12.1685

хранение кода в обработках

См. также

SALE! %

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 10000 руб.

02.09.2020    165832    920    403    

893

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    10150    84    36    

92

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    25382    83    48    

129

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    16341    39    9    

75

SALE! %

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 10000 руб.

10.11.2023    11097    40    27    

66

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    189642    1146    0    

916

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

2220 руб.

21.02.2023    8386    8    38    

24

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    103628    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 3649 24.01.19 15:59 Сейчас в теме
БСП: Дополнительные обработки и отчеты?
vladimirmatancev; +1 Ответить
4. arslanov.rr 29 24.01.19 17:50 Сейчас в теме
(1) Не совсем. Я показал лишь основу, которую можно расширить для своих задач. БСП намного сложнее и объемнее
2. tjurikov_ivan 215 24.01.19 16:05 Сейчас в теме
А чем не устраивают расширения?
vladimirmatancev; +1 Ответить
3. arslanov.rr 29 24.01.19 17:35 Сейчас в теме
(2) Не у всех стоят последние версии платформы. Необходимость этого инструмента как раз появилась из-за невозможности использования расширений. Он не заменяет расширения, но какую-то часть их возможностей реализует
VyacheslavShilov; +1 Ответить
5. AnderWonder 27 24.01.19 18:17 Сейчас в теме
Код внешних обработок из файла загружается один раз при входе в систему или при каждом вызове процедуры/функции?
8. arslanov.rr 29 24.01.19 19:18 Сейчас в теме
(5) при каждом вызове. Поэтому любые ее изменения применяются сразу без необходимости перезапуска
VyacheslavShilov; +1 Ответить
10. AnderWonder 27 24.01.19 23:22 Сейчас в теме
(8) т.е. при каждом вызове будет выполнятся сначала чтение файла, затем компиляция модуля? ИМХО, весьма специфическое применение только возможно для такого варианта.
vladimirmatancev; +1 Ответить
12. arslanov.rr 29 25.01.19 05:51 Сейчас в теме
(10) решение предназначено не для увеличения производительности, а для повышения качества разработки на этапе внедрения. Очень неприятно когда до ночи что-то пишешь, встраиваешь в конфу, а с утра вылетает «поле объекта не обнаружено» и рабочий процесс встаёт. Во многих организациях час простоя может быть больше годовой годовой зарплаты и в этот момент уже не имеет значения 0.1 секунды выполняется ваш код или 0.15 из-за внешней обработки. На практике пользователь не видит никакой разницы по времени между выполнением кода из внешней обработки и из конфигурации (модули около 1,5-2 тысяч строк, клиент-серверный вариант). Не претендую на идеальность решения, но многих твой подход может избавить от лишних нервов и штрафов
VyacheslavShilov; +1 Ответить
16. SlavaKron 31.01.19 17:21 Сейчас в теме
(12) Можно использовать модуль с повторным использованием для получения ВнешнейОбработки. В качестве параметра передавать хеш файла или версию элемента справочника. У меня так реализованы внешние формы объектов.
VyacheslavShilov; vasiliy_b; +2 Ответить
6. acsent 1204 24.01.19 18:33 Сейчас в теме
код внешних обработок работает медленнее чем в конфигурации
на итс есть сравнение
9. arslanov.rr 29 24.01.19 19:37 Сейчас в теме
(6) да. Но в момент внедрения нового функционала, когда посреди дня вылезает критическая ошибка, об этих долях секунд производительности думаешь в последнюю очередь. После полной отладки решение можно внедрить в конфигурацию
11. davdykin 25 25.01.19 05:00 Сейчас в теме
(7)Спасибо, не знал, что внешние обработки увеличивают в 1,5 раза время выполнения ). А так этот способ хорош, для низконагруженных механизмов, на распределенной базе, не надо делать постоянные обновления РИБа. Есть правда у этого способа серьезный минус, если вы привыкли быстро что-то искать по кодам модулей объектов (допустим текст ошибки или определение функции), то тут получается засада ))
13. arslanov.rr 29 25.01.19 05:52 Сейчас в теме
(11) согласен ) Ещё нельзя как в истории хранилища посмотреть разницу между обработками в режиме предприятия. Приходится выгружать несколько обработок и сравнивать в конфигураторе
14. Spartan 365 25.01.19 09:05 Сейчас в теме
(11) По внешним обработкам платформа тоже позволяет искать текст, единственное, придется их сначала выгрузить из базы в каталог на диске.
15. arslanov.rr 29 31.01.19 17:10 Сейчас в теме
(14) можете подсказать или скинуть ссылку на то, каким образом это делается?
17. Spartan 365 01.02.19 08:57 Сейчас в теме
(15) Запросто, смотрите скрин.
Прикрепленные файлы:
18. arslanov.rr 29 01.02.19 09:20 Сейчас в теме
(17) Это да, но меня интересовал вопрос можно ли это сделать в режиме предприятия, чтобы сравнивать 2 обработки, которые лежат в элементе справочника ) Похоже стандартных средств для этого нет
19. Spartan 365 01.02.19 13:19 Сейчас в теме
(18) Вот здесь посмотрите + комментарии и переходы по ссылкам. Возможно будет полезно.
Оставьте свое сообщение