Своя конфигурация с нуля: от пустой базы до первого проведённого документа
Содержание
Сам конфигуратор создавать не нужно: это режим запуска платформы 1С:Предприятие 8.3, он ставится вместе с ней. Создают конфигурацию. Для этого в окне запуска нажмите Добавить → Создание новой информационной базы, выберите вариант «без конфигурации для разработки новой конфигурации», затем откройте базу кнопкой Конфигуратор и выполните Конфигурация → Открыть конфигурацию. Пустое дерево метаданных и есть ваша будущая программа.
Обычно с этим вопросом приходит бухгалтер или начинающий 1С-ник, которому нужен маленький учёт под свою задачу: склад инструмента, журнал заявок, учёт договоров. Создать и настроить такую конфигурацию в 1С Предприятие реально за вечер: два справочника, два документа, регистр остатков и простая форма. Сложности начинаются позже — с правами, отладкой и обновлением рабочей базы.
Подготовка: пустая база и первый запуск конфигуратора
Понадобится установленная платформа 8.3 с компонентом «1С:Предприятие» (конфигуратор входит в него). Для обучения подходит бесплатная учебная версия платформы: в ней есть ограничения на объём данных, но для разработки небольших примеров их хватает.
Порядок действий:
- Запустите 1С, в окне списка баз нажмите
Добавить. - Выберите
Создание новой информационной базы→Далее. - Отметьте вариант создания базы без конфигурации — для разработки новой конфигурации или загрузки выгруженной базы.
- Задайте имя базы, например «Склад инструмента», и тип расположения «На данном компьютере или в локальной сети».
- Укажите пустой каталог для файлов базы. Платформа создаст в нём файл
1Cv8.1CD. - Язык (страну) оставьте «Русский (Россия)» и нажмите
Готово. - Выделите новую базу в списке и нажмите
Конфигуратор. - В меню выберите
Конфигурация → Открыть конфигурацию. Слева появится дерево объектов.
Если вариант «без конфигурации» не виден, проверьте, не открыт ли список шаблонов: переключатель между «создать из шаблона» и «создать без конфигурации» находится на первом шаге мастера.
Свойства корня конфигурации
Щёлкните правой кнопкой по корню дерева (по слову «Конфигурация») и откройте Свойства. Заполните сразу:
| Свойство | Что указать | Зачем |
|---|---|---|
| Имя | СкладИнструмента | Внутреннее имя, без пробелов, начинается с буквы |
| Синоним | Склад инструмента | Так программа называется в заголовке окна |
| Версия | 1.0.0.1 | Нужна для поставки и обновлений |
| Поставщик | Название вашей организации | Отображается в информации о программе |
| Основной режим запуска | Управляемое приложение | Обычное приложение — устаревший режим |
| Режим совместимости | Не использовать | Для новой разработки на текущей платформе |
Имя объекта менять потом можно, но весь код, который к нему обращается, придётся править вручную. Продумайте имена до того, как напишете первую строку кода.
Из чего состоит конфигурация: дерево метаданных
Конфигурация — это набор объектов метаданных. Каждый объект отвечает за свой тип данных или поведения. В дереве они сгруппированы по видам, и для начального учёта хватает пяти-шести видов.
Основные объекты и их назначение:
- 📁 Справочники — списки, которые редко меняются: номенклатура, сотрудники, склады, контрагенты.
- 📄 Документы — события с датой: поступление, выдача, списание. Документ можно провести.
- 📊 Регистры накопления — остатки и обороты. Именно сюда документ пишет «движения».
- 🗂 Регистры сведений — данные с привязкой к измерениям и, при желании, к периоду: цены, курсы, ответственные лица.
- 🔢 Перечисления — фиксированный список значений, который задаёт разработчик: «Новый», «В работе», «Списан».
- 📈 Отчёты и ⚙️ Обработки — вывод данных и сервисные действия.
- 🧩 Общие — подсистемы, роли, общие модули, общие формы, параметры сеанса, регламентные задания.
Простой пример схемы для склада инструмента:
| Объект | Вид | Состав |
|---|---|---|
| Инструмент | Справочник | Инвентарный номер, Единица измерения |
| Сотрудники | Справочник | Должность |
| ВыдачаИнструмента | Документ | Сотрудник, табличная часть Инструменты (Инструмент, Количество) |
| ПоступлениеИнструмента | Документ | Табличная часть Инструменты (Инструмент, Количество, Сумма) |
| ОстаткиИнструмента | Регистр накопления, вид «Остатки» | Измерения: Инструмент, Сотрудник; ресурс: Количество |
Отличие справочника от документа легко запомнить так: справочник отвечает на вопрос «что это», документ — «что произошло и когда».
Как настроить объекты: свойства, реквизиты, табличные части
Новый объект добавляют правой кнопкой по ветке дерева → Добавить (или клавишей Insert). Откроется окно редактирования объекта с вкладками слева. Набор вкладок зависит от вида объекта.
Справочник
На вкладке Основные задайте имя и синоним. На вкладке Данные настраиваются:
- длина и тип кода (число или строка) и длина наименования;
- реквизиты — дополнительные поля. Тип реквизита выбирают из примитивов (Строка, Число, Дата, Булево) или ссылкой на другой объект, например
СправочникСсылка.Сотрудники; - табличные части — вложенные таблицы внутри элемента.
На вкладке Иерархия включается группировка элементов по папкам. На вкладке Владельцы — подчинение другому справочнику (так, например, договоры подчиняют контрагенту).
Документ
У документа ключевые вкладки — Данные и Движения:
- На
Данныхдобавьте реквизиты шапки и табличную часть с колонками. - На
Движенияхпоставьте свойствоПроведениев положение «Разрешить» и отметьте регистры, в которые документ пишет данные. - Там же кнопкой
Конструктор движенийможно сгенерировать код проведения: указываете табличную часть, регистр и соответствие полей — конструктор пишет процедуру в модуль объекта.
Регистр накопления
Вид регистра «Остатки» подходит, когда нужно знать, сколько чего лежит на дату. Вид «Обороты» — когда остаток бессмыслен, а важны суммы за период (например, продажи).
- Измерения — разрезы учёта: инструмент, сотрудник, склад.
- Ресурсы — числа, которые складываются: количество, сумма.
- Реквизиты — справочная информация, по которой итоги не считаются.
Регистр накопления не заполняется вручную. Записи в него создаёт только регистратор — документ, у которого этот регистр отмечен на вкладке Движения.
Подсистемы и видимость
Объект, который не включён ни в одну подсистему, в пользовательском режиме не появится в разделах. Создайте подсистему в ветке Общие → Подсистемы, например «Склад», и отметьте объекты на вкладке Подсистемы каждого из них. Подсистема верхнего уровня становится разделом на панели разделов.
Программный код: модули и обработчики событий
Поведение объекта задаётся на встроенном языке в модулях. Модуль — отдельный текст процедур, привязанный к месту, где он выполняется.
| Модуль | Где находится | Что туда пишут |
|---|---|---|
| Модуль объекта | Вкладка Прочее объекта | Проведение, проверки при записи |
| Модуль менеджера | Там же | Функции, которые не требуют конкретного экземпляра |
| Модуль формы | В редакторе формы, вкладка Модуль | Реакция на нажатия и изменения полей |
| Общий модуль | Общие → Общие модули | Процедуры, нужные в разных местах |
| Модуль сеанса | Корень конфигурации | Установка параметров сеанса при входе |
| Модуль управляемого приложения | Корень конфигурации | Действия при запуске клиента |
Код проведения документа
Пример для документа «ПоступлениеИнструмента». Табличная часть «Инструменты» содержит колонки «Инструмент», «Количество», «Сумма»; регистр «ОстаткиИнструмента» имеет вид «Остатки». Для наглядности возьмём регистр с одним измерением «Инструмент» и ресурсами «Количество» и «Сумма».
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ОстаткиИнструмента.Записывать = Истина;
Для Каждого СтрокаТЧ Из Инструменты Цикл
Движение = Движения.ОстаткиИнструмента.ДобавитьПриход();
Движение.Период = Дата;
Движение.Инструмент = СтрокаТЧ.Инструмент;
Движение.Количество = СтрокаТЧ.Количество;
Движение.Сумма = СтрокаТЧ.Сумма;
КонецЦикла;
КонецПроцедуры
Строка Записывать = Истина говорит платформе записать набор движений после завершения процедуры. Для расходного документа вместо ДобавитьПриход() используется ДобавитьРасход().
Проверка заполнения
Отметить обязательные реквизиты проще всего без кода: в свойствах реквизита установите Проверка заполнения = «Выдавать ошибку». Платформа сама не даст записать пустое поле. Код нужен для условий посложнее:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если Инструменты.Количество() = 0 Тогда
Сообщить("Заполните табличную часть «Инструменты».");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Клиент и сервер
В управляемом приложении код формы выполняется либо на клиенте, либо на сервере. Это задают директивы компиляции перед процедурой:
&НаКлиенте— обработка нажатий, открытие форм, вопросы пользователю;&НаСервере— работа с базой с передачей данных формы на сервер;&НаСервереБезКонтекста— серверный вызов без передачи формы, он легче и быстрее.
Запросы к базе и обращение к реквизитам ссылок выполняют на сервере. В общих модулях то же самое регулируется флажками Клиент, Сервер, Вызов сервера в свойствах модуля.
Формы и интерфейс пользователя
Пока у объекта нет своих форм, платформа строит их автоматически. Для первых проверок этого достаточно. Свою форму создают, когда нужно поменять порядок полей, добавить кнопку или вывести подсказку.
Как создать форму документа:
- Откройте документ, вкладка
Формы. - Рядом с полем «Документа» нажмите кнопку с лупой (создание новой формы).
- В конструкторе выберите тип «Форма документа» и отметьте реквизиты, которые нужно вывести.
- Нажмите
Готово. Откроется редактор формы.
В редакторе три рабочие области:
- Элементы — дерево того, что видит пользователь: поля, группы, таблицы, кнопки. Порядок меняется перетаскиванием.
- Реквизиты — данные формы. Основной реквизит «Объект» содержит все поля документа.
- Команды — действия формы. Команду перетаскивают в элементы, и на форме появляется кнопка.
Внизу — визуальный просмотр формы. Он помогает, но итоговый вид всегда проверяйте в пользовательском режиме.
Не ставьте элементы через абсолютные координаты — в управляемых формах их нет. Расположение задают группы: «Обычная группа» с горизонтальной или вертикальной группировкой, «Страницы» для вкладок.
Роли и пользователи
Пока в базе нет ни одного пользователя, вход выполняется без запроса имени и с полными правами. Как только вы добавите первого пользователя, понадобятся роли:
- В ветке
Общие → Ролисоздайте роль «ПолныеПрава», в её окне отметьте «Права» на все объекты и право «Администрирование» на корень конфигурации. - Создайте роль для обычного пользователя с ограниченным набором прав.
- В меню
Администрирование → Пользователидобавьте пользователя-администратора и назначьте ему «ПолныеПрава».
Первому пользователю обязательно дайте роль с правом «Администрирование», иначе после входа под ним вы не сможете управлять списком пользователей.
Сохранение, запуск и отладка конфигурации
В конфигураторе есть две конфигурации: основная (та, что вы правите) и конфигурация базы данных (та, с которой работают пользователи). Изменения попадают к пользователям только после обновления.
Рабочий цикл разработчика:
F7— «Обновить конфигурацию базы данных». Платформа покажет список изменений структуры и попросит подтвердить.F5— «Начать отладку»: запускается пользовательский режим, подключённый к отладчику.F9— точка останова на текущей строке модуля.Конфигурация → Проверка конфигурации— поиск ошибок в модулях и ссылок на несуществующие объекты.
При остановке на точке наводите курсор на переменную или открывайте «Вычислить выражение» через меню Отладка: так видно значение каждой переменной на этом шаге.
Обновление структуры базы, если изменились таблицы, требует монопольного доступа. В рабочей базе с пользователями это делают вне рабочего времени, предупредив всех: открытые сеансы придётся завершить.
Частые сбои при разработке
Обновление и поддержка своей конфигурации
Когда программа работает у людей, правки в рабочей базе вносить нельзя. Разработку ведут в копии, а в рабочую базу переносят готовый результат.
Способы переноса изменений
| Способ | Когда подходит | Риски |
|---|---|---|
Конфигурация → Сохранить конфигурацию в файл (.cf) и загрузка в рабочую базу | Одна база, один разработчик | Загрузка полностью заменяет конфигурацию; правки, внесённые прямо в рабочей базе, потеряются |
| Сравнение и объединение конфигураций | Нужно перенести часть изменений | Требует внимательной проверки списка различий |
Файлы поставки .cf и .cfu (Конфигурация → Поставка конфигурации) | Несколько баз или клиентов | Номер версии в свойствах корня нужно повышать каждый раз |
| Хранилище конфигурации | Работает команда разработчиков | Нужен общий каталог или сервер хранилища и дисциплина захвата объектов |
Перед любой загрузкой в рабочую базу сделайте выгрузку: Администрирование → Выгрузить информационную базу. Файл .dt содержит и конфигурацию, и данные — из него базу можно восстановить целиком.
Контроль версий
Конфигурацию можно выгрузить в XML-файлы: Конфигурация → Выгрузить конфигурацию в файлы. Каталог с файлами удобно хранить в Git: видна история каждого модуля и формы. Для большой разработки фирма 1С предлагает отдельную среду 1C:Enterprise Development Tools (EDT), которая изначально работает с файлами проекта.
Доработка типовой вместо своей с нуля
Если задача — добавить пару полей или отчёт в Бухгалтерию или ЗУП, писать свою конфигурацию не нужно. Создайте расширение: Конфигурация → Расширения конфигурации. Расширения появились в платформе 8.3.6. Они хранятся отдельно от типовой конфигурации, поэтому типовая остаётся на поддержке и обновляется штатно.