Когда бизнесу нужна доработка 1С, важно выбрать решение, которое не усложнит поддержку системы в будущем. В статье разбираем, как дополнительные отчеты и обработки позволяют добавлять печатные формы, отчеты, регламентные задания и другой функционал без изменения типовой конфигурации.
Что выбрать: доработка, расширение или дополнительные обработки в 1С
При необходимости доработки 1С бизнес обычно рассматривает два варианта:
- изменение типовой конфигурации
- использование расширений 1С
Однако существует третий подход — дополнительные отчеты и обработки в 1С, который позволяет внедрять функциональность без изменения конфигурации и без снятия системы с поддержки.
Этот механизм особенно актуален для компаний, которые хотят:
- сохранить типовую конфигурацию
- упростить обновление 1С
- снизить стоимость поддержки
Что такое дополнительные отчеты и обработки в 1С
Дополнительные отчеты и обработки — это встроенный механизм (на базе БСП), который позволяет расширять функциональность системы без изменения ее структуры.
С его помощью можно:
- добавлять печатные формы в 1С
- создавать внешние отчеты 1С
- реализовывать регламентные задания 1С
- настраивать шаблоны сообщений и рассылки
- добавлять пользовательские команды и обработчики
Ключевое преимущество — вся логика описана вне основной конфигурации.
Когда стоит использовать дополнительные обработки
Этот подход особенно эффективен в следующих задачах:
- разработка нестандартных печатных форм
- создание отчетов на СКД без изменения конфигурации
- автоматизация процессов через регламентные задания
- расширение логики без вмешательства в типовую систему
Печатные формы можно привязать к конкретным объектам и встроить в стандартный раздел «Печать». Отчеты можно размещать как отдельные элементы подсистем или внутри форм объектов.
Преимущества дополнительных отчетов и обработок
- Сохранение типовой конфигурации 1С, не требуется снятие с поддержки, а обновления проходят без конфликтов.
- Быстрое внедрение, без перезапуска системы и минимальные трудозатраты.
- Гибкость - настройка по пользователям, ролям и времени
- Универсальность - работа на разных версиях конфигурации.
- Безопасность - разграничение прав и безопасный режим выполнения
Как реализовать дополнительные обработки в 1С
Описать функцию СведенияОВнешнейОбработке(). Эта функция создана для регистрации информации об обработке и её назначении, в ней можно указать расположение команды, если это необходимо.
Определить виды обработки и типы команд. Для этого следует пользоваться функциями общего модуля ДополнительныеОтчетыИОбработкиКлиентСервер. Это позволит избежать проблем при изменении внутренней логики работы механизма.
Для печатной формы с типом команды «ВызовСерверногоМетода» необходимо определить экспортную функцию модуля объекта Печать(). В эту функцию придёт информация об объектах, для которых вызван метод печати. От разработчика требуется описать макет и метод получения/вывода данных.
Внедрение такой печатной формы просто. Необходимо в разделе «Печатные формы, отчеты и обработки» добавить полученную обработку. Печатная форма появится при следующем открытии формы, для которой она была назначена без необходимости для пользователя перезаходить в базу.
Для дополнительной обработки вместо функции Печать() необходимо определить экспортную функцию ВыполнитьКоманду(). В ней описывается логика выполнения команды. В обработку могут быть переданы данные, например, для выполнения фоновой задачи или можно описать её как изолированную единицу, например, для использования алгоритма в роли регламентного задания.
Для дополнительного отчета можно просто описать схему компоновки данных. После этого отчет будет открываться, но возможна и более детальная проработка. Из модуля объекта отчета можно влиять на события открытия формы отчета. В отчет при открытии передаётся массив объектов, для которых отчет был вызван, что позволяет открывать отчет сразу с отборами.
Стоит отметить, что разработка отчетов и обработок как внешних требует внимательного и осмотрительного подхода. В случае правильного использования механизм даст несколько значимых преимуществ.
Первое из них - изоляция кода. Дополнительная обработка хранится вне основной конфигурации — в базе данных как отдельный объект или в виде файла (*.epf). Разработчик не изменяет ни строчки кода типовой конфигурации. Конфигурация остается на поддержке. Обновление типовой базы происходит «в один клик», без снятия с поддержки и без ручного сравнения.
Второе преимущество - гибкость внедрения. В отличие от расширений или доработок, дополнительную обработку можно подключить точечно по пользователю или времени.
При точечном подключении по пользователям: можно назначить конкретную кнопку или функционал только для определенного сотрудника или отдела, не загромождая интерфейс остальных. Под точечным подключением по времени понимается то, что обработку можно включать и отключать «на лету» без перезапуска приложения.
Универсальность – третье преимущество. Одна и та же дополнительная обработка может работать без изменений на разных версиях типовой конфигурации, если она написана с использованием стандартных интерфейсов.
Важным преимуществом станет безопасность и контроль версий. Механизм «Дополнительные отчеты и обработки» встроен в БСП. Он позволяет хранить историю изменений обработок, ограничивать доступ на уровне прав, использовать механизм «Безопасный режим», который ограничивает опасный код для ненадежных обработок.
И наконец, такая обработка проста во внедрении и тестировании.
Ограничения механизма дополнительных обработок
Внедрение дополнительных обработок и отчетов не является универсальным решением проблем. За гибкость, изоляцию и безопасность обновлений приходится платить необходимостью строго следовать стандартам и постоянным контролем за изменениями. Рассмотрим основные сложности, которые возникают при использовании этого механизма в промышленной эксплуатации.
Первая сложность – обработка является внешним кодом и не отслеживается внутри конфигурации. Изменения в вызываемом коде или структурах данных, к которым обращается обработка, приведёт к необходимости вручную проверить все обработки на предмет необходимости доработки.
Вторая сложность – механизм привязан не к 1С как к платформе, а к БСП. В случае конфигураций, разработанных без БСП механизм использовать не получится. В случае наличия БСП от разработчика требуется знание структуры внешней обработки.
Третье ограничение - невозможность изменения структуры данных. Дополнительная обработка работает с существующими объектами метаданных. Она не может создавать новые объекты без изменения основной конфигурации или расширения.
Сложность отладки возникает ввиду того, что обработка является внешним кодом. Отладка: Отладчик работает с обработкой, только если она открыта как файл (*.epf) и запущена из режима «1С:Предприятие» с ключом отладки. Если обработка хранится в базе данных (в справочнике «ДополнительныеОтчетыИОбработки»), отлаживать её сложнее — приходится выгружать её в файл, править, загружать обратно.
Кроме того, команде следует внимательно контролировать количество и используемость внешних обработок, чтобы не хранить ненужные и актуализировать используемые обработки своевременно.
Механизм дополнительных обработок — это зрелый и мощный инструмент, но требующий высокой квалификации команды и строгого соблюдения архитектурной дисциплины. Его применение оправдано, когда разработка ведется с использованием БСП, четко разделены зоны ответственности: дополнительные обработки решают задачи пользовательского интерфейса и бизнес-логики, не затрагивая структуру данных и настроены процессы контроля версий и регламент обновления обработок.
Игнорирование же описанных сложностей приводит к тому, что вместо гибкой системы можно получить неуправляемую совокупность разнородных кусков кода, которая по совокупности затрат на поддержку превзойдет классическую «модифицированную» конфигурацию.
Примеры использования на реальных кейсах Диалог ИТ
1. 7 печатных форм за 2 дня без изменения конфигурации. Возникла потребность в нетиповых формах печати для документов приема на работу. У клиента нет расширений, значимо меняющих конфигурацию и конфигурация не изменена.
РЕШЕНИЕ - были разработаны 7 печатных форм за 2 дня при помощи механизма внешних отчетов и обработок. Важным фактом является то, что новые печатные формы сразу (без изменений механизма) смогли участвовать в обмене со внешней системой, выгружающей документы в формате pdf. Печатные формы связаны со стандартными механизмами получения данных и могут быть распространены на конфигурации, поддерживающие их.
2. Нестандартная рассылка менее чем за день. Возникла потребность рассылать сообщения на определённом этапе по документу сотрудникам по данным, не предоставляемым стандартными шаблонами сообщений механизма рассылок. Сама рассылка является комплексным механизмом и уже способна рассылать сообщения на выбранном этапе, но не предоставляет возможности получить нужные данные.
РЕШЕНИЕ - Внешняя обработка с видом «шаблон сообщений» позволила решить задачу менее чем за день.
3. Регламентная выгрузка JSON без доработки системы. У клиента возникла задача выгрузки данных по регламенту из нетиповой конфигурации на базе БСП в файл формата json.
РЕШЕНИЕ - Вместо изменения конфигурации была создана дополнительная обработка – регламентное задание.
4. Отчет в документе за 1 день. У клиента на типовой поддерживаемой базе без расширений возникла потребность внедрения нетипового отчёта в документ. Отчёт легко описывается на СКД.
РЕШЕНИЕ - Благодаря механизму дополнительных отчётов и обработок конфигурация осталась неизменной и отчет был размещён в группу «Печать» документа за 1 день.
Главные заключения
- Дополнительные обработки — это архитектурный инструмент, а не просто «печатные формы». Они закрывают широкий круг задач: от простых печатных форм до регламентных заданий. При грамотном использовании позволяют сохранить типовую конфигурацию в неизменном виде.
- Ключевое условие эффективности — наличие БСП и строгое следование ее стандартам. Механизм не является встроенным в платформу; он реализован в библиотеке стандартных подсистем. Без БСП или при нарушении соглашений обработки либо не работают, либо становятся ненадежными.
- Механизм не заменяет расширения и доработки, а дополняет их. Он не подходит для изменения структуры данных (добавления новых объектов метаданных) и имеет ограничения по контексту выполнения. Выбор инструмента (обработка, расширение, доработка) должен определяться на этапе проектирования исходя из того, что нужно изменить.
Главные преимущества — изоляция кода и гибкость внедрения. Возможность подключать функционал точечно (пользователи, время) без перезапуска приложения и без снятия конфигурации с поддержки существенно снижает стоимость владения и риски при обновлениях.
Слабая сторона — сложность отладки, версионирования и контроля. Хранение обработок в базе данных затрудняет использование систем контроля версий, а отсутствие встроенного механизма обновления требует от команды высокой дисциплины. Без регламента управления внешними обработками легко получить хаотичную совокупность кода, поддержка которой обходится дороже, чем классическая модификация.
Рекомендация от аналитика
Использовать дополнительные обработки целесообразно при наличии БСП, четком разделении ответственности между обработками и другими механизмами, а также при внедрении процессов контроля версий и периодического аудита используемых обработок. В таких условиях механизм становится надежным и гибким инструментом развития системы без потери поддержки типовой конфигурации.
Статья была полезной?
Еще больше новостей в нашем Telegram-канале t.me/dialog_it - анонс вебинаров, бизнес-новости, лайфхаки по 1С
Для того, чтобы купить, установить, настроить 1С:Управляющий и 1С, а также по всем вопросам позвоните нам по номеру +7 (812) 704-80-93 или напишите it@dialogit.ru