Разработка и Конфигурация · 10 мин
Как написать свою конфигурацию 1С с нуля
Как создать собственную конфигурацию 1С с нуля: выбор платформы, проектирование объектов, написание кода, отладка и типичные ошибки начинающих разработчиков.
Собственная конфигурация 1С — это самостоятельное прикладное решение, созданное на платформе «1С:Предприятие» под конкретные задачи бизнеса: учёт нестандартных операций, специфические документы, уникальные отчёты. В отличие от доработки типовых решений (1С:Бухгалтерия, 1С:Управление торговлей), разработка с нуля даёт полную свободу в архитектуре, но требует понимания объектной модели платформы и встроенного языка.
Написать простую рабочую конфигурацию может даже начинающий разработчик: платформа берёт на себя работу с базой данных, интерфейсом и правами доступа. Задача разработчика — правильно описать структуру данных (справочники, документы, регистры) и запрограммировать бизнес-логику. Сложности начинаются там, где требуется производительность, обмен данными и нестандартные механизмы проведения.
Материал ниже проведёт через весь цикл: от подготовки инструментов и проектирования структуры до написания кода, отладки и проверки результата. Акцент сделан на практических шагах в конфигураторе и типичных ошибках, которые дорого обходятся на этапе внедрения.
Что нужно подготовить перед началом разработки
Для разработки потребуется установленная платформа «1С:Предприятие» (актуальная версия линейки 8.3) и конфигуратор — инструмент, входящий в поставку. Для локальной разработки и обучения достаточно файловой информационной базы: она создаётся в пару кликов и не требует сервера. Для командной работы и нагрузочного тестирования понадобится клиент-серверный вариант с СУБД (PostgreSQL, MS SQL Server).
До открытия конфигуратора сформулируйте предметную область: какие сущности будут учитываться (товары, сотрудники, заказы), какие события фиксируются документами, какие итоги нужны в отчётах. Нарисуйте схему на бумаге: сущности станут справочниками, события — документами, накопленные итоги — регистрами. Пропуск этого этапа — главная причина переделок: изменить структуру метаданных на заполненной базе гораздо сложнее, чем на пустой.
Создаём пустую конфигурацию в конфигураторе
Запустите конфигуратор и создайте новую информационную базу без конфигурации. Откройте конфигурацию через меню «Конфигурация → Открыть конфигурацию» — появится дерево объектов метаданных. Первым делом задайте свойства корневого узла: имя, синоним (отображаемое название), версию, основной язык. Эти параметры видны пользователям и используются при обмене.
Далее определите базовые настройки: в свойствах конфигурации укажите режим использования модальности, вариант интерфейса (для новых решений — «Такси»), основную роль. Создайте подсистемы — это разделы интерфейса, в которые будут входить ваши объекты (например, «Склад», «Продажи», «Настройки»). Подсистемы формируют панель навигации, и продумать их состав стоит до создания объектов.
- 1Установите платформу и создайте пустую файловую базу
- 2Откройте конфигурацию и задайте имя, синоним и версию
- 3Создайте подсистемы под разделы будущего интерфейса
- 4Добавьте первый справочник и первый документ
- 5Создайте регистр накопления и настройте движения документа
- 6Обновите конфигурацию базы данных (F7) и проверьте в режиме предприятия
Проектируем объекты метаданных
Объекты метаданных — это строительные блоки конфигурации. Справочники хранят условно-постоянную информацию (номенклатура, контрагенты, склады). Документы фиксируют события во времени (приход, расход, начисление). Регистры накапливают данные документов в разрезах, нужных для отчётов. Правильное распределение данных между этими объектами определяет 80% качества решения.
Справочники и документы
При создании справочника задайте длину кода и наименования, добавьте реквизиты (например, для номенклатуры — «Единица измерения», «Цена», ссылка на справочник «Группы»). Используйте иерархию только там, где она реально нужна: лишняя иерархичность усложняет отборы. Для документа настройте нумерацию, периодичность, реквизиты шапки и табличные части — именно табличные части обычно хранят строки товаров или услуг.
Регистры накопления и сведений
Регистр накопления — главный инструмент учёта остатков и оборотов. Определите измерения (разрезы учёта: склад, номенклатура), ресурсы (числовые показатели: количество, сумма) и вид регистра: «Остатки» для складского учёта, «Обороты» для аналитики без хранения остатков. Регистр сведений подходит для хранения значений в разрезе измерений — например, цен номенклатуры с периодичностью.
Пишем код на встроенном языке
Встроенный язык 1С по синтаксису напоминает Pascal с русскими ключевыми словами (допустим и английский вариант). Код размещается в модулях: модуль объекта (логика документа или справочника), модуль формы (поведение интерфейса), общие модули (переиспользуемые процедуры и функции). Основная точка входа для учётной логики — обработчик «ОбработкаПроведения» в модуле документа.
Типовой код проведения выглядит так: очищаются старые движения, перебираются строки табличной части, для каждой строки создаётся запись движения регистра с заполнением измерений и ресурсов. После цикла набор записей записывается. Для выборки данных используйте язык запросов — он похож на SQL и выполняется эффективнее, чем перебор объектов в коде.
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Для Каждого Строка Из Товары Цикл
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = Строка.Номенклатура;
Движение.Количество = Строка.Количество;
КонецЦикла;
КонецПроцедуры
Выгружайте всю табличную часть одним запросом через ВЫБРАТЬ ... ИЗ Документ.ПриходнаяНакладная.Товары вместо обращения к реквизитам строк в цикле. На документах с сотнями строк разница в скорости проведения заметна невооружённым глазом, а код получается короче.
Формы, отчёты и права доступа
Формы объектов платформа генерирует автоматически, но для рабочего решения их придётся доработать: добавить команды, настроить видимость элементов, запрограммировать обработчики изменения полей (например, пересчёт суммы при изменении количества или цены). Помните про директивы компиляции: код с &НаКлиенте выполняется на компьютере пользователя, с &НаСервере — на сервере, и лишние серверные вызовы замедляют форму.
Отчёты создавайте на системе компоновки данных (СКД): она позволяет описать запрос и настройки отчёта декларативно, а пользователь получит возможность менять группировки и отборы без программирования. Для учебного отчёта достаточно мастера: выбрать регистр, указать поля, задать ресурсы. Роли и права настройте до передачи решения пользователям: создайте роли по должностям и назначьте доступ к объектам, иначе все пользователи получат полные права.
Отладка, тестирование и проверка результата
Конфигуратор включает полноценный отладчик: расставьте точки останова (F9) в модуле проведения, запустите отладку (F5) и проведите документ в пользовательском режиме. Инспектируйте переменные, проверяйте содержимое наборов записей до и после записи. Для проверки запросов используйте консоль запросов — она показывает результат без написания отчёта.
После отладки прогоните полный пользовательский сценарий: создайте элементы справочников, проведите документы прихода и расхода, сформируйте отчёт и сверьте остатки с ожидаемыми. Проверьте отмену проведения и перепроведение — движения должны корректно очищаться и пересоздаваться. Перед передачей в работу выполните тестирование и исправление базы и убедитесь, что конфигурация обновляется без ошибок реструктуризации.
Как проверить результат
Движения появляются в регистре, отчёт показывает верные остатки
Регистр пуст или суммы не совпадают со строками документа
Движения полностью удаляются, остатки возвращаются
Остатки «зависают» или дублируются после перепроведения
Документ не проводится с понятным сообщением об ошибке
Остатки уходят в минус без предупреждения
Объекты видны в своих подсистемах, права ограничены ролью
Пустая панель навигации или доступ ко всем объектам у всех
Часто задаваемые вопросы
Можно ли написать конфигурацию 1С без опыта программирования?
Минимальную конфигурацию — справочники, простой документ, отчёт через мастер СКД — можно собрать почти без кода, используя визуальные конструкторы конфигуратора. Однако проведение документов, контроль остатков и нестандартные формы потребуют написания кода на встроенном языке, поэтому базовые навыки программирования всё же понадобятся.
Чем собственная конфигурация лучше доработки типовой?
Собственная конфигурация не содержит лишних механизмов и полностью подчиняется вашей логике, а обновления платформы не ломают чужой код. Обратная сторона — вы сами отвечаете за всё: нумерацию, печатные формы, обмены, соответствие требованиям учёта. Для регламентированного учёта (бухгалтерия, зарплата) доработка типовой обычно дешевле и безопаснее.
Нужна ли лицензия для разработки своей конфигурации?
Для разработки и отладки требуется легально установленная платформа. Существует учебная версия платформы, которая подходит для обучения и прототипирования, но имеет ограничения: не работает с COM, ограничен объём данных, нет клиент-серверного режима. Для коммерческой эксплуатации потребуются лицензии на платформу и рабочие места.
Как перенести конфигурацию на другую базу или компьютер?
Конфигурация выгружается через «Конфигурация → Сохранить конфигурацию в файл» (файл .cf). На целевой базе она загружается через «Загрузить конфигурацию из файла» с последующим обновлением конфигурации базы данных. Для переноса вместе с данными используйте выгрузку информационной базы в файл .dt.
Что делать, если конфигурация стала медленно работать?
Сначала найдите узкое место: включите замер производительности в конфигураторе и посмотрите, какие процедуры и запросы занимают время. Чаще всего помогают добавление индексов по измерениям регистров, замена обходов объектов запросами и отказ от лишних серверных вызовов в формах. Не оптимизируйте «вслепую» — без замера легко ускорить не тот участок.
Что важно запомнить
Своя конфигурация 1С строится по понятному циклу: проектирование метаданных → создание справочников, документов и регистров → программирование проведения → отчёты на СКД → настройка прав → отладка на тестовой базе. Начинайте с минимального контура, работайте только на копиях данных и проверяйте движения документов после каждого изменения логики.