Разработка и Конфигурация · 12 мин
Что разрешено разработчикам прикладных решений в системе 1С:Предприятие
Возможности разработчиков прикладных решений 1С:Предприятие: конфигуратор, расширения, внешние отчеты, встроенный язык, ограничения и лицензионные правила.
Система «1С:Предприятие» построена так, что значительная часть логики прикладного решения открыта для изменения. Разработчик может дорабатывать типовую конфигурацию, создавать собственные объекты метаданных, писать код на встроенном языке, подключать внешние отчеты и обработки, а также использовать механизм расширений, не затрагивая исходную конфигурацию. Рамки дозволенного определяются тремя факторами: техническими возможностями платформы, режимом поддержки конфигурации и лицензионным соглашением.
Практический смысл этих правил прост: платформа разрешает почти всё, а вот поставщик конфигурации и лицензия — не всегда. Например, изменить модуль типового документа технически несложно, но это снимет объект с полной поддержки и усложнит обновления. Понимание того, где проходит граница между «можно технически» и «разумно делать», — основная компетенция разработчика прикладных решений.
Ниже разобраны основные инструменты и сценарии: что именно можно менять в конфигураторе, как работать через расширения и внешние механизмы, какие ограничения накладывает лицензия и где проходят границы безопасной доработки.
Какие инструменты разработки доступны из коробки
Основной инструмент — конфигуратор, входящий в поставку платформы. В нём разработчику доступны все объекты метаданных: справочники, документы, регистры сведений и накопления, отчеты, обработки, планы обмена, роли, подсистемы, общие модули. Для каждого объекта можно создавать формы, макеты, команды и писать код в модулях объекта, формы, менеджера.
Помимо конфигуратора, разработчику доступны: встроенный язык (похожий по синтаксису на конструкции высокоуровневых языков с русской или английской нотацией), язык запросов 1С, система компоновки данных (СКД) для отчетов, механизм XDTO-пакетов для обмена данными, работа с HTTP-сервисами и веб-сервисами, а также отладчик с точками останова и замером производительности.
Отдельная возможность — технология внешних компонент (Native API и COM), позволяющая подключать библиотеки, написанные на других языках, например для работы со сканерами, криптографией или специфическим оборудованием. Это легальный и поддерживаемый платформой способ расширить функциональность за пределы встроенного языка.
Что можно менять в типовой конфигурации
Если конфигурация не закрыта поставщиком, разработчик вправе изменять любые её объекты: добавлять реквизиты в документы и справочники, создавать новые роли и права, переписывать процедуры проведения, добавлять собственные отчеты и регистры. Технически платформа не ограничивает глубину изменений — ограничивает только режим поддержки.
Режим поддержки определяет, как конфигурация будет обновляться. При полной поддержке изменения запрещены настройкой «на поддержке — изменения через расширение» либо любое изменение снимает объект с поддержки. При частичной поддержке объекты можно менять, но при обновлении придется выполнять трехстороннее сравнение и вручную разрешать конфликты. Полный снятие с поддержки дает максимальную свободу, но лишает автоматических обновлений.
Практическое правило: прежде чем снимать объект с поддержки, оцените альтернативы. Многие задачи решаются добавлением нового объекта (своего регистра, подписки на событие, общего модуля) без изменения типовых — такие доработки почти не мешают обновлениям.
Расширения конфигурации: доработка без изменения типовой
Расширение — это механизм, позволяющий добавлять и переопределять функциональность, не изменяя саму конфигурацию. В расширении разработчику разрешено: добавлять собственные объекты метаданных, заимствовать типовые объекты и дополнять их реквизитами, формами и командами, перехватывать обработчики событий форм и модулей через аннотации «Вместо», «Перед», «После», а также создавать собственные роли и отчеты.
Главное преимущество — конфигурация остается на полной поддержке, и обновления устанавливаются штатно. После обновления достаточно проверить совместимость расширения: если типовой модуль, из которого заимствован метод, изменился, платформа сообщит об этом при проверке применимости.
Ограничения у расширений тоже есть. Нельзя удалять типовые объекты и реквизиты, изменять типы существующих реквизитов, дорабатывать некоторые системные механизмы (например, часть функциональности планов обмена и критериев отбора), а перехват методов работает только для модулей, доступных расширению. Если задача требует именно удаления или изменения типов — придется снимать конфигурацию с поддержки.
Расширение или изменение конфигурации
Подходит для добавления реквизитов, печатных форм, отчетов и перехвата событий. Сохраняет поддержку, легко отключается. Ограничение: нельзя удалять типовые объекты и менять типы реквизитов.
Подходит для глубокой переработки логики, изменения типов, удаления объектов. Цена — частичная или полная потеря поддержки и ручное сопровождение обновлений.
Подходят для печатных форм, отчетов и сервисных операций, не требующих изменения метаданных. Работают даже на конфигурации без возможности изменения, но не могут добавлять объекты в структуру базы.
Внешние отчеты, обработки и дополнительные механизмы
Разработчику разрешено создавать внешние отчеты (файлы .erf) и внешние обработки (.epf), которые подключаются к базе без изменения конфигурации. В типовых решениях на базе БСП (библиотека стандартных подсистем) есть механизм «Дополнительные отчеты и обработки», позволяющий регистрировать их в интерфейсе, назначать права и расписание выполнения.
Этим же механизмом регистрируются дополнительные печатные формы, заполнение табличных частей и создание связанных объектов. Для пользователя такая доработка выглядит как штатная функция, а для разработчика — это полностью безопасный способ расширить решение, не трогая конфигурацию вообще.
Дополнительно разрешены: подключение внешних компонент, обмен через файлы, HTTP и веб-сервисы, использование COM-соединений между базами 1С, а также работа с расширениями данных в формате поставки. Всё это — документированные возможности платформы, а не обходные пути.
- 1Создайте внешнюю обработку с экспортной функцией Печать в модуле объекта и макетом табличного документа.
- 2Проверьте обработку в файловой копии базы: откройте через Файл — Открыть и выполните печать.
- 3Зарегистрируйте обработку в справочнике «Дополнительные отчеты и обработки», указав вид «Печатная форма» и назначение (документы, для которых она доступна).
- 4Проверьте результат: в форме документа в меню «Печать» должна появиться новая команда, документ печатается без ошибок.
Встроенный язык и запросы: что разрешено в коде
Встроенный язык 1С дает разработчику полный доступ к прикладным данным в рамках прав пользователя и ролей: чтение и запись объектов, выполнение запросов, работа с файловой системой сервера или клиента (в рамках безопасного режима), вызов внешних приложений и библиотек. В клиент-серверном варианте код выполняется на сервере, тонком, веб- или толстом клиенте — с явным разделением контекстов через директивы &НаКлиенте и &НаСервере.
Язык запросов разрешает декларативно выбирать данные из любых таблиц, включая виртуальные таблицы регистров, с соединениями, группировками и итогами. Прямой доступ к СУБД в обход платформы (изменение данных средствами SQL) не относится к разрешенным приемам: он нарушает логику контроля ссылочной целостности и может привести к рассогласованию служебных таблиц. Чтение напрямую из СУБД технически возможно, но поддерживается только чтение — и то с оговорками по структуре таблиц, которая не документируется.
Лицензионные ограничения и границы дозволенного
Лицензионное соглашение фирмы «1С» разрешает пользователю адаптировать программу под свои нужды и поручать это третьим лицам. Разработка собственных конфигураций и их распространение также разрешены — для коммерческого тиражирования решений на платформе существуют партнерские программы и режим «1С:Совместимо», но само создание и продажа прикладных решений запрещено не является.
Запрещено другое: декомпиляция и модификация платформы (исполняемых файлов технологической платформы), обход системы лицензирования и программной защиты, распространение самой платформы без договора, а также использование закрытых конфигураций (поставляемых без исходного кода) способами, выходящими за рамки их лицензии. Некоторые отраслевые решения поставляются с защищенными модулями — их код разработчик читать и изменять не может.
Отдельный случай — конфигурации в режиме «только просмотр» или поставка без исходных текстов модулей. Если модуль закрыт паролем поставщика, его доработка невозможна штатными средствами, и попытки обхода защиты выходят за рамки разрешенного использования.
Как проверить, что доработка сделана правильно
После любой доработки выполните минимальный контроль: обновите конфигурацию базы данных (F7 в конфигураторе), убедитесь, что нет ошибок проверки конфигурации, и прогоните ключевой пользовательский сценарий от начала до конца. Для расширений дополнительно проверьте применимость после каждого обновления типовой конфигурации.
Для командной работы используйте хранилище конфигурации — оно дает историю изменений и возможность отката. Для расширений храните исходники во внешнем репозитории, а в базе фиксируйте версию расширения в его имени или описании — это упрощает диагностику, когда в системе работает несколько доработок одновременно.
Как проверить результат доработки
Нет ошибок, только допустимые предупреждения
Ошибки компиляции модулей или битые ссылки на объекты
Расширение подключается, флажок «Использовать» активен
Расширение отключено платформой из-за изменения контролируемых объектов
Новые объекты доступны под целевыми ролями
Объект виден только администратору, у пользователей ошибка доступа
Штатные сценарии (проведение, закрытие периода) работают как раньше
После доработки ломается типовая логика — признак некорректного перехвата
Часто задаваемые вопросы
Можно ли дорабатывать типовую конфигурацию, не нарушая лицензию?
Да. Лицензионное соглашение прямо разрешает адаптацию программы под нужды пользователя собственными силами или с привлечением третьих лиц. Лицензия ограничивает модификацию платформы и обход защиты, но не доработку конфигурации.
Что выбрать: расширение или изменение конфигурации?
Начинайте с расширения — оно сохраняет поддержку и упрощает обновления. Переходите к изменению конфигурации только если задача требует удаления типовых объектов, изменения типов реквизитов или доработки механизмов, недоступных расширениям.
Можно ли продавать собственную конфигурацию на платформе 1С?
Да, создание и распространение собственных прикладных решений разрешено. Покупателю потребуется лицензия на платформу, а для сертификации решения и использования знака совместимости существуют отдельные партнерские программы.
Что делать, если модуль типовой конфигурации закрыт паролем?
Штатно такой модуль изменить нельзя. Варианты: реализовать нужную логику рядом — в расширении, подписке на событие или собственном общем модуле, либо запросить у поставщика открытую поставку, если это предусмотрено условиями.
Разрешено ли обращаться к базе 1С напрямую через SQL?
Чтение технически возможно, но структура таблиц не документируется и может меняться. Запись средствами СУБД в обход платформы недопустима: она нарушает целостность данных. Для интеграций используйте штатные механизмы — HTTP-сервисы, планы обмена, COM-соединение.
Снимет ли поставщик с гарантии базу с доработками?
Доработка сама по себе не отменяет лицензию, но поддержка типовых обновлений для измененных объектов усложняется. Расширения и внешние обработки не влияют на обновление совсем, поэтому предпочтительны для большинства задач.
Что важно запомнить
Разработчику прикладных решений в 1С разрешено практически всё на уровне конфигурации: код, метаданные, расширения, внешние компоненты и интеграции. Границы проходят по трем линиям: нельзя модифицировать платформу и обходить защиту, изменение типовых объектов влияет на поддержку и обновления, а любые доработки безопасно делать только на копии базы с последующей проверкой результата.