Своя конфигурация с нуля: от пустой базы до первого проведённого документа

· 10 мин

Содержание

Сам конфигуратор создавать не нужно: это режим запуска платформы 1С:Предприятие 8.3, он ставится вместе с ней. Создают конфигурацию. Для этого в окне запуска нажмите Добавить → Создание новой информационной базы, выберите вариант «без конфигурации для разработки новой конфигурации», затем откройте базу кнопкой Конфигуратор и выполните Конфигурация → Открыть конфигурацию. Пустое дерево метаданных и есть ваша будущая программа.

Обычно с этим вопросом приходит бухгалтер или начинающий 1С-ник, которому нужен маленький учёт под свою задачу: склад инструмента, журнал заявок, учёт договоров. Создать и настроить такую конфигурацию в 1С Предприятие реально за вечер: два справочника, два документа, регистр остатков и простая форма. Сложности начинаются позже — с правами, отладкой и обновлением рабочей базы.

Подготовка: пустая база и первый запуск конфигуратора

Понадобится установленная платформа 8.3 с компонентом «1С:Предприятие» (конфигуратор входит в него). Для обучения подходит бесплатная учебная версия платформы: в ней есть ограничения на объём данных, но для разработки небольших примеров их хватает.

Порядок действий:

  1. Запустите 1С, в окне списка баз нажмите Добавить.
  2. Выберите Создание новой информационной базы → Далее.
  3. Отметьте вариант создания базы без конфигурации — для разработки новой конфигурации или загрузки выгруженной базы.
  4. Задайте имя базы, например «Склад инструмента», и тип расположения «На данном компьютере или в локальной сети».
  5. Укажите пустой каталог для файлов базы. Платформа создаст в нём файл 1Cv8.1CD.
  6. Язык (страну) оставьте «Русский (Россия)» и нажмите Готово.
  7. Выделите новую базу в списке и нажмите Конфигуратор.
  8. В меню выберите Конфигурация → Открыть конфигурацию. Слева появится дерево объектов.

Если вариант «без конфигурации» не виден, проверьте, не открыт ли список шаблонов: переключатель между «создать из шаблона» и «создать без конфигурации» находится на первом шаге мастера.

Свойства корня конфигурации

Щёлкните правой кнопкой по корню дерева (по слову «Конфигурация») и откройте Свойства. Заполните сразу:

СвойствоЧто указатьЗачем
ИмяСкладИнструментаВнутреннее имя, без пробелов, начинается с буквы
СинонимСклад инструментаТак программа называется в заголовке окна
Версия1.0.0.1Нужна для поставки и обновлений
ПоставщикНазвание вашей организацииОтображается в информации о программе
Основной режим запускаУправляемое приложениеОбычное приложение — устаревший режим
Режим совместимостиНе использоватьДля новой разработки на текущей платформе

Имя объекта менять потом можно, но весь код, который к нему обращается, придётся править вручную. Продумайте имена до того, как напишете первую строку кода.

Из чего состоит конфигурация: дерево метаданных

Конфигурация — это набор объектов метаданных. Каждый объект отвечает за свой тип данных или поведения. В дереве они сгруппированы по видам, и для начального учёта хватает пяти-шести видов.

Основные объекты и их назначение:

  • 📁 Справочники — списки, которые редко меняются: номенклатура, сотрудники, склады, контрагенты.
  • 📄 Документы — события с датой: поступление, выдача, списание. Документ можно провести.
  • 📊 Регистры накопления — остатки и обороты. Именно сюда документ пишет «движения».
  • 🗂 Регистры сведений — данные с привязкой к измерениям и, при желании, к периоду: цены, курсы, ответственные лица.
  • 🔢 Перечисления — фиксированный список значений, который задаёт разработчик: «Новый», «В работе», «Списан».
  • 📈 Отчёты и ⚙️ Обработки — вывод данных и сервисные действия.
  • 🧩 Общие — подсистемы, роли, общие модули, общие формы, параметры сеанса, регламентные задания.

Простой пример схемы для склада инструмента:

ОбъектВидСостав
ИнструментСправочникИнвентарный номер, Единица измерения
СотрудникиСправочникДолжность
ВыдачаИнструментаДокументСотрудник, табличная часть Инструменты (Инструмент, Количество)
ПоступлениеИнструментаДокументТабличная часть Инструменты (Инструмент, Количество, Сумма)
ОстаткиИнструментаРегистр накопления, вид «Остатки»Измерения: Инструмент, Сотрудник; ресурс: Количество

Отличие справочника от документа легко запомнить так: справочник отвечает на вопрос «что это», документ — «что произошло и когда».

Как настроить объекты: свойства, реквизиты, табличные части

Новый объект добавляют правой кнопкой по ветке дерева → Добавить (или клавишей Insert). Откроется окно редактирования объекта с вкладками слева. Набор вкладок зависит от вида объекта.

Справочник

На вкладке Основные задайте имя и синоним. На вкладке Данные настраиваются:

  • длина и тип кода (число или строка) и длина наименования;
  • реквизиты — дополнительные поля. Тип реквизита выбирают из примитивов (Строка, Число, Дата, Булево) или ссылкой на другой объект, например СправочникСсылка.Сотрудники;
  • табличные части — вложенные таблицы внутри элемента.

На вкладке Иерархия включается группировка элементов по папкам. На вкладке Владельцы — подчинение другому справочнику (так, например, договоры подчиняют контрагенту).

Документ

У документа ключевые вкладки — Данные и Движения:

  1. На Данных добавьте реквизиты шапки и табличную часть с колонками.
  2. На Движениях поставьте свойство Проведение в положение «Разрешить» и отметьте регистры, в которые документ пишет данные.
  3. Там же кнопкой Конструктор движений можно сгенерировать код проведения: указываете табличную часть, регистр и соответствие полей — конструктор пишет процедуру в модуль объекта.

Регистр накопления

Вид регистра «Остатки» подходит, когда нужно знать, сколько чего лежит на дату. Вид «Обороты» — когда остаток бессмыслен, а важны суммы за период (например, продажи).

  • Измерения — разрезы учёта: инструмент, сотрудник, склад.
  • Ресурсы — числа, которые складываются: количество, сумма.
  • Реквизиты — справочная информация, по которой итоги не считаются.

Регистр накопления не заполняется вручную. Записи в него создаёт только регистратор — документ, у которого этот регистр отмечен на вкладке Движения.

Подсистемы и видимость

Объект, который не включён ни в одну подсистему, в пользовательском режиме не появится в разделах. Создайте подсистему в ветке Общие → Подсистемы, например «Склад», и отметьте объекты на вкладке Подсистемы каждого из них. Подсистема верхнего уровня становится разделом на панели разделов.

Программный код: модули и обработчики событий

Поведение объекта задаётся на встроенном языке в модулях. Модуль — отдельный текст процедур, привязанный к месту, где он выполняется.

МодульГде находитсяЧто туда пишут
Модуль объектаВкладка Прочее объектаПроведение, проверки при записи
Модуль менеджераТам жеФункции, которые не требуют конкретного экземпляра
Модуль формыВ редакторе формы, вкладка МодульРеакция на нажатия и изменения полей
Общий модульОбщие → Общие модулиПроцедуры, нужные в разных местах
Модуль сеансаКорень конфигурацииУстановка параметров сеанса при входе
Модуль управляемого приложенияКорень конфигурацииДействия при запуске клиента

Код проведения документа

Пример для документа «ПоступлениеИнструмента». Табличная часть «Инструменты» содержит колонки «Инструмент», «Количество», «Сумма»; регистр «ОстаткиИнструмента» имеет вид «Остатки». Для наглядности возьмём регистр с одним измерением «Инструмент» и ресурсами «Количество» и «Сумма».

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

	Движения.ОстаткиИнструмента.Записывать = Истина;

	Для Каждого СтрокаТЧ Из Инструменты Цикл
		Движение = Движения.ОстаткиИнструмента.ДобавитьПриход();
		Движение.Период     = Дата;
		Движение.Инструмент = СтрокаТЧ.Инструмент;
		Движение.Количество = СтрокаТЧ.Количество;
		Движение.Сумма      = СтрокаТЧ.Сумма;
	КонецЦикла;

КонецПроцедуры

Строка Записывать = Истина говорит платформе записать набор движений после завершения процедуры. Для расходного документа вместо ДобавитьПриход() используется ДобавитьРасход().

Проверка заполнения

Отметить обязательные реквизиты проще всего без кода: в свойствах реквизита установите Проверка заполнения = «Выдавать ошибку». Платформа сама не даст записать пустое поле. Код нужен для условий посложнее:

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

	Если Инструменты.Количество() = 0 Тогда
		Сообщить("Заполните табличную часть «Инструменты».");
		Отказ = Истина;
	КонецЕсли;

КонецПроцедуры

Клиент и сервер

В управляемом приложении код формы выполняется либо на клиенте, либо на сервере. Это задают директивы компиляции перед процедурой:

  • &НаКлиенте — обработка нажатий, открытие форм, вопросы пользователю;
  • &НаСервере — работа с базой с передачей данных формы на сервер;
  • &НаСервереБезКонтекста — серверный вызов без передачи формы, он легче и быстрее.

Запросы к базе и обращение к реквизитам ссылок выполняют на сервере. В общих модулях то же самое регулируется флажками Клиент, Сервер, Вызов сервера в свойствах модуля.

Формы и интерфейс пользователя

Пока у объекта нет своих форм, платформа строит их автоматически. Для первых проверок этого достаточно. Свою форму создают, когда нужно поменять порядок полей, добавить кнопку или вывести подсказку.

Как создать форму документа:

  1. Откройте документ, вкладка Формы.
  2. Рядом с полем «Документа» нажмите кнопку с лупой (создание новой формы).
  3. В конструкторе выберите тип «Форма документа» и отметьте реквизиты, которые нужно вывести.
  4. Нажмите Готово. Откроется редактор формы.

В редакторе три рабочие области:

  • Элементы — дерево того, что видит пользователь: поля, группы, таблицы, кнопки. Порядок меняется перетаскиванием.
  • Реквизиты — данные формы. Основной реквизит «Объект» содержит все поля документа.
  • Команды — действия формы. Команду перетаскивают в элементы, и на форме появляется кнопка.

Внизу — визуальный просмотр формы. Он помогает, но итоговый вид всегда проверяйте в пользовательском режиме.

Не ставьте элементы через абсолютные координаты — в управляемых формах их нет. Расположение задают группы: «Обычная группа» с горизонтальной или вертикальной группировкой, «Страницы» для вкладок.

Роли и пользователи

Пока в базе нет ни одного пользователя, вход выполняется без запроса имени и с полными правами. Как только вы добавите первого пользователя, понадобятся роли:

  1. В ветке Общие → Роли создайте роль «ПолныеПрава», в её окне отметьте «Права» на все объекты и право «Администрирование» на корень конфигурации.
  2. Создайте роль для обычного пользователя с ограниченным набором прав.
  3. В меню Администрирование → Пользователи добавьте пользователя-администратора и назначьте ему «ПолныеПрава».

Первому пользователю обязательно дайте роль с правом «Администрирование», иначе после входа под ним вы не сможете управлять списком пользователей.

Сохранение, запуск и отладка конфигурации

В конфигураторе есть две конфигурации: основная (та, что вы правите) и конфигурация базы данных (та, с которой работают пользователи). Изменения попадают к пользователям только после обновления.

Рабочий цикл разработчика:

  • F7 — «Обновить конфигурацию базы данных». Платформа покажет список изменений структуры и попросит подтвердить.
  • F5 — «Начать отладку»: запускается пользовательский режим, подключённый к отладчику.
  • F9 — точка останова на текущей строке модуля.
  • Конфигурация → Проверка конфигурации — поиск ошибок в модулях и ссылок на несуществующие объекты.

При остановке на точке наводите курсор на переменную или открывайте «Вычислить выражение» через меню Отладка: так видно значение каждой переменной на этом шаге.

Обновление структуры базы, если изменились таблицы, требует монопольного доступа. В рабочей базе с пользователями это делают вне рабочего времени, предупредив всех: открытые сеансы придётся завершить.

Частые сбои при разработке

Диагностика: выберите симптом

Обновление и поддержка своей конфигурации

Когда программа работает у людей, правки в рабочей базе вносить нельзя. Разработку ведут в копии, а в рабочую базу переносят готовый результат.

Способы переноса изменений

СпособКогда подходитРиски
Конфигурация → Сохранить конфигурацию в файл (.cf) и загрузка в рабочую базуОдна база, один разработчикЗагрузка полностью заменяет конфигурацию; правки, внесённые прямо в рабочей базе, потеряются
Сравнение и объединение конфигурацийНужно перенести часть измененийТребует внимательной проверки списка различий
Файлы поставки .cf и .cfu (Конфигурация → Поставка конфигурации)Несколько баз или клиентовНомер версии в свойствах корня нужно повышать каждый раз
Хранилище конфигурацииРаботает команда разработчиковНужен общий каталог или сервер хранилища и дисциплина захвата объектов

Перед любой загрузкой в рабочую базу сделайте выгрузку: Администрирование → Выгрузить информационную базу. Файл .dt содержит и конфигурацию, и данные — из него базу можно восстановить целиком.

Контроль версий

Конфигурацию можно выгрузить в XML-файлы: Конфигурация → Выгрузить конфигурацию в файлы. Каталог с файлами удобно хранить в Git: видна история каждого модуля и формы. Для большой разработки фирма 1С предлагает отдельную среду 1C:Enterprise Development Tools (EDT), которая изначально работает с файлами проекта.

Доработка типовой вместо своей с нуля

Если задача — добавить пару полей или отчёт в Бухгалтерию или ЗУП, писать свою конфигурацию не нужно. Создайте расширение: Конфигурация → Расширения конфигурации. Расширения появились в платформе 8.3.6. Они хранятся отдельно от типовой конфигурации, поэтому типовая остаётся на поддержке и обновляется штатно.

Нужна ли лицензия, чтобы работать в конфигураторе?
Для работы с базой нужна лицензия платформы. Для обучения подойдёт бесплатная учебная версия: в ней доступны и конфигуратор, и пользовательский режим, но есть ограничения на объём данных.
Можно ли продавать собственную конфигурацию?
Да, права на собственную разработку принадлежат автору. Покупателю для запуска понадобятся свои лицензии на платформу 1С:Предприятие.
Чем свойство «Имя» отличается от «Синонима»?
Имя используется в коде и не содержит пробелов. Синоним видит пользователь на экране, в нём допустимы пробелы и любые символы.
Сколько объектов нужно для минимального учёта?
Обычно хватает двух-трёх справочников, двух документов (приход и расход) и одного регистра накопления. Отчёт по остаткам можно построить позже через систему компоновки данных.
Что лучше для новичка — конфигуратор или EDT?
Начинать проще в конфигураторе: он легче, ставится вместе с платформой и не требует настройки проекта. EDT имеет смысл осваивать, когда понадобится командная разработка и работа с Git.