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