Своя конфигурация на платформе 1С:Предприятие 8.3 — от пустой базы до рабочих мест пользователей

· 10 мин

Содержание

Чтобы сделать приложение 1С, создайте пустую информационную базу без конфигурации, откройте её в Конфигураторе и через Конфигурация → Открыть конфигурацию добавьте объекты: справочники, документы, регистры. Затем настройте формы, напишите код проведения, проверьте всё в режиме отладки и раздайте готовую конфигурацию пользователям файлом .cf или через веб-публикацию.

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

Сквозной пример — маленький складской учёт с товарами, складами, документом «Приход товара» и остатками.

1. Подготовка: платформа, режим работы и пустая база

Для разработки нужна установленная платформа 1С:Предприятие 8.3 с компонентом Конфигуратора. Учебная версия платформы подходит для обучения и пробных проектов, но у неё есть ограничения на объём данных и число пользователей. Для коммерческой разработки нужна обычная лицензия.

Выбор варианта базы

ВариантКогда подходитОграничения
Файловая базаРазработка, тесты, до 3–5 одновременных пользователейВся база — один файл 1Cv8.1CD, при росте нагрузки тормозит
Клиент-сервернаяРабочая эксплуатация, десятки пользователейНужны сервер 1С и СУБД (PostgreSQL, MS SQL)

Разрабатывать почти всегда удобнее в файловой базе: её легко копировать и откатывать. Перенос в клиент-серверный вариант потом делается выгрузкой и загрузкой .dt без переделки кода.

Создание пустой базы

  1. Запустите 1С:Предприятие, в окне списка баз нажмите Добавить.
  2. Выберите «Создание новой информационной базы».
  3. Отметьте вариант «Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной информационной базы».
  4. Укажите имя базы и тип расположения — «На данном компьютере или на компьютере в локальной сети».
  5. Задайте каталог, язык — русский, нажмите Готово.
  6. Выделите базу в списке и нажмите Конфигуратор.

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

В Конфигураторе откройте Конфигурация → Открыть конфигурацию, затем свойства корневого элемента дерева (двойной щелчок или Alt+Enter). Заполните:

  • 🏷️ «Имя» — латиницей или кириллицей без пробелов, например СкладскойУчет;
  • 📝 «Синоним» — то, что увидит пользователь в заголовке окна;
  • 🖥️ «Основной режим запуска» — «Управляемое приложение»;
  • ⚙️ «Режим совместимости» — для новой разработки оставьте значение без совместимости со старыми версиями.

Если приложение будет большим, не стройте всё с нуля. Внедрите в пустую конфигурацию Библиотеку стандартных подсистем (БСП): она даёт пользователей и права, печать, присоединённые файлы, обновление версий. Типовые конфигурации фирмы 1С собраны на ней же.

2. Проектирование структуры метаданных

Дерево конфигурации — это и есть архитектура приложения. Ошибка на этом этапе стоит дороже всего: переименовать объект просто, а перестроить связи после того, как в базе появились данные, — долго.

Какой объект для чего

ОбъектЧто хранитПример в складском учёте
СправочникСписки условно-постоянных данныхНоменклатура, Склады, Контрагенты
ДокументФакты хозяйственной жизни с датойПриход товара, Расход товара
Регистр накопленияОстатки и оборотыОстатки товаров
Регистр сведенийЗначения во времени или по ключуЦены номенклатуры
ПеречислениеФиксированный список значенийВиды номенклатуры
ПодсистемаРаздел интерфейса«Склад», «Справочники»
РольПрава доступаКладовщик, Администратор

Порядок создания объектов

  1. Подсистемы. Добавьте подсистему «Склад» — в неё потом попадут все складские объекты, и она станет разделом на панели разделов.
  2. Справочники. Создайте Номенклатура и Склады. Для номенклатуры добавьте реквизит «Единица» (строка) и, если нужно, группы — свойство «Иерархический справочник».
  3. Документ. Создайте ПриходТовара с реквизитом «Склад» (тип — СправочникСсылка.Склады) и табличной частью «Товары»: «Номенклатура», «Количество», «Цена», «Сумма».
  4. Регистр накопления. Создайте ОстаткиТоваров, вид — «Остатки». Измерения: «Номенклатура», «Склад». Ресурс: «Количество».
  5. Связка. На вкладке «Движения» документа отметьте регистр ОстаткиТоваров как регистр, по которому документ делает движения.

Правила, которые сэкономят переделки

  • 🔑 Всё, что пользователь выбирает из списка, — ссылка на справочник, а не строка. Строку «Склад №1» потом не сгруппируешь в отчёте.
  • 📏 Длину кода и наименования справочника задайте сразу с запасом.
  • 🧮 Для денежных реквизитов берите тип «Число» с длиной 15 и точностью 2.
  • 📂 На вкладке «Подсистемы» каждого объекта отметьте, в каком разделе он виден, иначе пользователь его не найдёт.
  • 🔒 Сразу создайте роль с полными правами и назначьте её пользователю-администратору. Если пользователи в базе уже заведены, а роли с правами нет, никто не сможет войти в режиме 1С:Предприятие.

После изменений нажмите F7 — «Обновить конфигурацию базы данных». Платформа покажет список изменений структуры и создаст таблицы.

3. Настройка форм и интерфейса пользователя

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

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

  1. Откройте документ ПриходТовара, вкладку «Формы».
  2. В поле основной формы документа нажмите кнопку с лупой — запустится конструктор формы.
  3. Отметьте реквизиты и табличную часть, которые должны быть на форме, нажмите Готово.

Редактор формы делится на три зоны: дерево элементов (что видно на экране), реквизиты формы (какие данные она хранит) и команды. Перетаскивание реквизита в дерево элементов создаёт поле на форме.

Командный интерфейс

Что показывать в разделе, задаётся у подсистемы: в её свойствах есть «Командный интерфейс». Там включают и выключают команды открытия списков, создания документов, отчётов, меняют их порядок. Общий вид — панели разделов, функций, рабочий стол — настраивается в свойствах корня конфигурации, пункт «Открыть командный интерфейс конфигурации» в контекстном меню.

  • 🗂️ Списки, которыми пользуются каждый день, выносите на панель навигации раздела.
  • ➕ Команды «Создать» для частых документов — в панель действий.
  • 🏠 На начальную страницу положите списки, которые нужно видеть сразу при входе: например, непроведённые документы.

Не перегружайте форму. Если у документа больше 15–20 полей, разнесите редкие на страницы (элемент «Страницы»). Пользователь видит главное, а остальное — по клику.

4. Программная реализация бизнес-логики

Код в 1С пишется на встроенном языке и живёт в модулях. Главное, что нужно усвоить новичку: модуль формы работает и на клиенте, и на сервере, и каждая процедура помечается директивой.

Где писать код

МодульЧто туда класть
Модуль объектаПроведение, проверки перед записью, заполнение
Модуль формыРеакция на действия пользователя: изменение поля, нажатие кнопки
Модуль менеджераФункции, не привязанные к конкретному экземпляру: печать, запросы
Общий модульПроцедуры, которые вызываются из разных мест

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

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

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

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

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

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

Для расхода логика та же, но вид движения — ВидДвиженияНакопления.Расход. Чтобы не уводить остаток в минус, перед записью движений запросом получают остатки и при нехватке ставят Отказ = Истина с сообщением пользователю.

Пересчёт суммы на форме

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

&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)

	ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
	ТекущаяСтрока.Сумма = ТекущаяСтрока.Количество * ТекущаяСтрока.Цена;

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

Такой же обработчик повесьте на колонку «Цена». Повторяющийся расчёт лучше вынести в отдельную процедуру и вызывать её из обоих обработчиков.

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

  • 🖱️ &НаКлиенте — быстрые действия без обращения к базе: пересчёт, открытие форм, вопросы пользователю.
  • 🗄️ &НаСервере — всё, что читает базу: запросы, обращение к реквизитам ссылок.
  • ⚡ &НаСервереБезКонтекста — серверный вызов без передачи данных формы; работает быстрее, когда форма не нужна.

Каждый вызов сервера с клиента — это обмен по сети. Вызов в цикле по строкам табличной части на сотню товаров превращается в сотню обращений и заметные тормоза у пользователя. Собирайте данные и делайте один вызов.

Отчёты

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

5. Тестирование и отладка приложения

Проверку начинайте не с запуска, а с контроля конфигурации. Пункт Конфигурация → Проверка конфигурации находит ссылки на удалённые объекты, ошибки в модулях и формах. Синтаксис открытого модуля проверяет синтаксический контроль — Ctrl+F7 в редакторе модуля.

Отладчик

  1. Поставьте точку останова на нужной строке кода: F9 или двойной щелчок по полю слева от текста.
  2. Запустите приложение в режиме отладки: Отладка → Начать отладку (F5).
  3. Выполните действие в 1С:Предприятии — например, проведите документ. Выполнение остановится на точке.
  4. Пошагово идите по коду: F11 — с заходом в процедуры, F10 — без захода.
  5. Смотрите значения переменных в окне «Табло» или через «Вычислить выражение» (Shift+F9).

Что проверить перед сдачей

Проверка приложения перед передачей пользователям
Выполнено: 0 / 7

Тестируйте на копии базы с правдоподобными данными: 5 товаров и 2 документа не покажут, как отчёт поведёт себя на 50 тысячах строк. Сгенерируйте массив документов обработкой или загрузите реальные данные из старой системы.

Для командной разработки подключите хранилище конфигурации: Конфигурация → Хранилище конфигурации. Объекты захватываются на редактирование, а история версий хранится централизованно. Альтернатива — среда 1C:Enterprise Development Tools (EDT) с работой через Git.

6. Как развернуть приложение 1С у пользователей

Готовая конфигурация отдаётся пользователям одним из трёх способов.

СпособКак сделатьКогда выбирать
Файл конфигурации .cfКонфигурация → Сохранить конфигурацию в файлПередать приложение без данных: клиент загружает его в свою пустую базу
Выгрузка базы .dtАдминистрирование → Выгрузить информационную базуПеренести всё вместе с данными, в том числе на сервер 1С
Файл поставкиКонфигурация → Поставка конфигурацииТиражировать продукт и выпускать обновления .cfu

Перенос на сервер

Для работы десятков пользователей базу переносят в клиент-серверный вариант: в консоли кластера сервера 1С создают информационную базу, затем открывают её Конфигуратором и через Администрирование → Загрузить информационную базу загружают .dt. Загрузка .dt полностью заменяет содержимое базы-приёмника — проверьте, что выбрана именно новая пустая база.

Веб-публикация

Чтобы приложение открывалось в браузере или в тонком клиенте через интернет , его публикуют на веб-сервере (IIS или Apache).

  1. Установите веб-сервер и при установке платформы — модули расширения веб-сервера.
  2. Запустите Конфигуратор от имени администратора Windows.
  3. Откройте Администрирование → Публикация на веб-сервере.
  4. Укажите имя публикации и каталог, нажмите Опубликовать.
  5. Откройте в браузере адрес вида http://сервер/имя_публикации.

Публикация, открытая в интернет без HTTPS и без паролей у пользователей, — прямой доступ к данным для любого, кто узнает адрес. Перед выходом наружу включите аутентификацию и TLS.

Обновление приложения

Когда пользователи уже работают, вносите изменения в копии, а в рабочую базу переносите через Конфигурация → Сравнить, объединить с конфигурацией из файла или через файл обновления. Обновление структуры базы (F7) требует монопольного доступа: попросите пользователей выйти и делайте это вне рабочего времени.

Если нужна не конфигурация, а мобильное приложение

На платформе 1С можно сделать и мобильное приложение для Android и iOS. Для этого в свойствах конфигурации задают назначение использования «Мобильное устройство», а сборку выполняют сборщиком мобильных приложений — он сам является конфигурацией 1С и использует Android SDK, а для iOS — компьютер с macOS.

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

Частые вопросы

Нужно ли знать программирование, чтобы сделать приложение в 1С?
Для справочников, документов и отчётов на СКД кода почти не нужно — хватит конструкторов. Логику проверок и проведения придётся писать на встроенном языке, но он русскоязычный и осваивается за несколько недель.
Можно ли продавать своё приложение на платформе 1С?
Да, это обычная практика. У каждого пользователя должна быть своя лицензия на платформу 1С:Предприятие, а свою конфигурацию вы распространяете файлом поставки на собственных условиях.
Что выбрать для разработки: Конфигуратор или EDT?
Для первого проекта — Конфигуратор: он входит в платформу и проще в освоении. EDT удобнее в команде, при работе с Git и на больших конфигурациях, но требует более мощного компьютера.
Как защитить код приложения от чужих правок?
При создании файла поставки можно поставить модули без исходных текстов. Пользователь сможет работать с приложением, но не прочитает и не изменит код этих модулей.
Сколько пользователей выдержит самописное приложение?
Зависит от варианта базы, а не от того, кто писал конфигурацию. Файловая база комфортна для нескольких человек, клиент-серверная с СУБД — для десятков и сотен при грамотных запросах.