Своя конфигурация на платформе 1С:Предприятие 8.3 — от пустой базы до рабочих мест пользователей
Содержание
Чтобы сделать приложение 1С, создайте пустую информационную базу без конфигурации, откройте её в Конфигураторе и через Конфигурация → Открыть конфигурацию добавьте объекты: справочники, документы, регистры. Затем настройте формы, напишите код проведения, проверьте всё в режиме отладки и раздайте готовую конфигурацию пользователям файлом .cf или через веб-публикацию.
Приложение в мире 1С — это конфигурация. Платформа 1С:Предприятие 8.3 даёт базу данных, интерфейс, права и печать, а разработчик описывает предметную область. Поэтому первое рабочее приложение — учёт заявок, склад небольшой мастерской, журнал договоров — реально собрать за один-два дня, даже без опыта в других языках.
Сквозной пример — маленький складской учёт с товарами, складами, документом «Приход товара» и остатками.
1. Подготовка: платформа, режим работы и пустая база
Для разработки нужна установленная платформа 1С:Предприятие 8.3 с компонентом Конфигуратора. Учебная версия платформы подходит для обучения и пробных проектов, но у неё есть ограничения на объём данных и число пользователей. Для коммерческой разработки нужна обычная лицензия.
Выбор варианта базы
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Файловая база | Разработка, тесты, до 3–5 одновременных пользователей | Вся база — один файл 1Cv8.1CD, при росте нагрузки тормозит |
| Клиент-серверная | Рабочая эксплуатация, десятки пользователей | Нужны сервер 1С и СУБД (PostgreSQL, MS SQL) |
Разрабатывать почти всегда удобнее в файловой базе: её легко копировать и откатывать. Перенос в клиент-серверный вариант потом делается выгрузкой и загрузкой .dt без переделки кода.
Создание пустой базы
- Запустите 1С:Предприятие, в окне списка баз нажмите
Добавить. - Выберите «Создание новой информационной базы».
- Отметьте вариант «Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной информационной базы».
- Укажите имя базы и тип расположения — «На данном компьютере или на компьютере в локальной сети».
- Задайте каталог, язык — русский, нажмите
Готово. - Выделите базу в списке и нажмите
Конфигуратор.
Свойства самой конфигурации
В Конфигураторе откройте Конфигурация → Открыть конфигурацию, затем свойства корневого элемента дерева (двойной щелчок или Alt+Enter). Заполните:
- 🏷️ «Имя» — латиницей или кириллицей без пробелов, например
СкладскойУчет; - 📝 «Синоним» — то, что увидит пользователь в заголовке окна;
- 🖥️ «Основной режим запуска» — «Управляемое приложение»;
- ⚙️ «Режим совместимости» — для новой разработки оставьте значение без совместимости со старыми версиями.
Если приложение будет большим, не стройте всё с нуля. Внедрите в пустую конфигурацию Библиотеку стандартных подсистем (БСП): она даёт пользователей и права, печать, присоединённые файлы, обновление версий. Типовые конфигурации фирмы 1С собраны на ней же.
2. Проектирование структуры метаданных
Дерево конфигурации — это и есть архитектура приложения. Ошибка на этом этапе стоит дороже всего: переименовать объект просто, а перестроить связи после того, как в базе появились данные, — долго.
Какой объект для чего
| Объект | Что хранит | Пример в складском учёте |
|---|---|---|
| Справочник | Списки условно-постоянных данных | Номенклатура, Склады, Контрагенты |
| Документ | Факты хозяйственной жизни с датой | Приход товара, Расход товара |
| Регистр накопления | Остатки и обороты | Остатки товаров |
| Регистр сведений | Значения во времени или по ключу | Цены номенклатуры |
| Перечисление | Фиксированный список значений | Виды номенклатуры |
| Подсистема | Раздел интерфейса | «Склад», «Справочники» |
| Роль | Права доступа | Кладовщик, Администратор |
Порядок создания объектов
- Подсистемы. Добавьте подсистему «Склад» — в неё потом попадут все складские объекты, и она станет разделом на панели разделов.
- Справочники. Создайте
НоменклатураиСклады. Для номенклатуры добавьте реквизит «Единица» (строка) и, если нужно, группы — свойство «Иерархический справочник». - Документ. Создайте
ПриходТоварас реквизитом «Склад» (тип — СправочникСсылка.Склады) и табличной частью «Товары»: «Номенклатура», «Количество», «Цена», «Сумма». - Регистр накопления. Создайте
ОстаткиТоваров, вид — «Остатки». Измерения: «Номенклатура», «Склад». Ресурс: «Количество». - Связка. На вкладке «Движения» документа отметьте регистр
ОстаткиТоваровкак регистр, по которому документ делает движения.
Правила, которые сэкономят переделки
- 🔑 Всё, что пользователь выбирает из списка, — ссылка на справочник, а не строка. Строку «Склад №1» потом не сгруппируешь в отчёте.
- 📏 Длину кода и наименования справочника задайте сразу с запасом.
- 🧮 Для денежных реквизитов берите тип «Число» с длиной 15 и точностью 2.
- 📂 На вкладке «Подсистемы» каждого объекта отметьте, в каком разделе он виден, иначе пользователь его не найдёт.
- 🔒 Сразу создайте роль с полными правами и назначьте её пользователю-администратору. Если пользователи в базе уже заведены, а роли с правами нет, никто не сможет войти в режиме 1С:Предприятие.
После изменений нажмите F7 — «Обновить конфигурацию
базы данных». Платформа покажет список изменений структуры и создаст таблицы.
3. Настройка форм и интерфейса пользователя
В управляемом приложении платформа строит формы сама: если у объекта нет своей формы, пользователь увидит автоматически сгенерированную. Для первого запуска этого хватает. Свою форму создавайте, когда нужно поменять расположение полей или добавить логику.
Как создать форму документа
- Откройте документ
ПриходТовара, вкладку «Формы». - В поле основной формы документа нажмите кнопку с лупой — запустится конструктор формы.
- Отметьте реквизиты и табличную часть, которые должны быть на форме, нажмите
Готово.
Редактор формы делится на три зоны: дерево элементов (что видно на экране), реквизиты формы (какие данные она хранит) и команды. Перетаскивание реквизита в дерево элементов создаёт поле на форме.
Командный интерфейс
Что показывать в разделе, задаётся у подсистемы: в её свойствах есть «Командный интерфейс». Там включают и выключают команды открытия списков, создания документов, отчётов, меняют их порядок. Общий вид — панели разделов, функций, рабочий стол — настраивается в свойствах корня конфигурации, пункт «Открыть командный интерфейс конфигурации» в контекстном меню.
- 🗂️ Списки, которыми пользуются каждый день, выносите на панель навигации раздела.
- ➕ Команды «Создать» для частых документов — в панель действий.
- 🏠 На начальную страницу положите списки, которые нужно видеть сразу при входе: например, непроведённые документы.
Не перегружайте форму. Если у документа больше 15–20 полей, разнесите редкие на страницы (элемент «Страницы»). Пользователь видит главное, а остальное — по клику.
4. Программная реализация бизнес-логики
Код в 1С пишется на встроенном языке и живёт в модулях. Главное, что нужно усвоить новичку: модуль формы работает и на клиенте, и на сервере, и каждая процедура помечается директивой.
Где писать код
| Модуль | Что туда класть |
|---|---|
| Модуль объекта | Проведение, проверки перед записью, заполнение |
| Модуль формы | Реакция на действия пользователя: изменение поля, нажатие кнопки |
| Модуль менеджера | Функции, не привязанные к конкретному экземпляру: печать, запросы |
| Общий модуль | Процедуры, которые вызываются из разных мест |
Код проведения документа
Проведение заполняет движения в регистре. Его можно собрать конструктором движений (кнопка на вкладке «Движения» документа), а потом поправить руками. Для нашего прихода в модуле объекта получится так:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого СтрокаТовары Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = СтрокаТовары.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = СтрокаТовары.Количество;
КонецЦикла;
КонецПроцедуры
Для расхода логика та же, но вид движения — ВидДвиженияНакопления.Расход. Чтобы не уводить остаток в минус, перед записью движений запросом получают остатки и при нехватке ставят Отказ = Истина с сообщением пользователю.
Пересчёт суммы на форме
Сумма в строке должна меняться, когда пользователь вводит количество. В модуле формы создайте обработчик события «ПриИзменении» для колонки «Количество» (в свойствах поля, кнопка с лупой у события):
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ТекущаяСтрока.Сумма = ТекущаяСтрока.Количество * ТекущаяСтрока.Цена;
КонецПроцедуры
Такой же обработчик повесьте на колонку «Цена». Повторяющийся расчёт лучше вынести в отдельную процедуру и вызывать её из обоих обработчиков.
Клиент и сервер
- 🖱️
&НаКлиенте— быстрые действия без обращения к базе: пересчёт, открытие форм, вопросы пользователю. - 🗄️
&НаСервере— всё, что читает базу: запросы, обращение к реквизитам ссылок. - ⚡
&НаСервереБезКонтекста— серверный вызов без передачи данных формы; работает быстрее, когда форма не нужна.
Каждый вызов сервера с клиента — это обмен по сети. Вызов в цикле по строкам табличной части на сотню товаров превращается в сотню обращений и заметные тормоза у пользователя. Собирайте данные и делайте один вызов.
Отчёты
Отчёты в 1С строятся на системе компоновки данных (СКД). Создайте объект «Отчёт», откройте основную схему компоновки, напишите запрос к виртуальной таблице РегистрНакопления.ОстаткиТоваров.Остатки и настройте вывод группировок. Пользователь сам сможет менять отборы и колонки, программировать для этого ничего не нужно.
5. Тестирование и отладка приложения
Проверку начинайте не с запуска, а с контроля конфигурации. Пункт Конфигурация → Проверка конфигурации находит ссылки на удалённые объекты, ошибки в модулях и формах. Синтаксис открытого модуля проверяет синтаксический контроль — Ctrl+F7 в редакторе модуля.
Отладчик
- Поставьте точку останова на нужной строке кода:
F9или двойной щелчок по полю слева от текста. - Запустите приложение в режиме отладки:
Отладка → Начать отладку(F5). - Выполните действие в 1С:Предприятии — например, проведите документ. Выполнение остановится на точке.
- Пошагово идите по коду:
F11— с заходом в процедуры,F10— без захода. - Смотрите значения переменных в окне «Табло» или через «Вычислить выражение» (
Shift+F9).
Что проверить перед сдачей
Тестируйте на копии базы с правдоподобными данными: 5 товаров и 2 документа не покажут, как отчёт поведёт себя на 50 тысячах строк. Сгенерируйте массив документов обработкой или загрузите реальные данные из старой системы.
Для командной разработки подключите хранилище конфигурации: Конфигурация → Хранилище конфигурации. Объекты захватываются на редактирование, а история версий хранится централизованно. Альтернатива — среда 1C:Enterprise Development Tools (EDT) с работой через Git.
6. Как развернуть приложение 1С у пользователей
Готовая конфигурация отдаётся пользователям одним из трёх способов.
| Способ | Как сделать | Когда выбирать |
|---|---|---|
Файл конфигурации .cf | Конфигурация → Сохранить конфигурацию в файл | Передать приложение без данных: клиент загружает его в свою пустую базу |
Выгрузка базы .dt | Администрирование → Выгрузить информационную базу | Перенести всё вместе с данными, в том числе на сервер 1С |
| Файл поставки | Конфигурация → Поставка конфигурации | Тиражировать продукт и выпускать обновления .cfu |
Перенос на сервер
Для работы десятков пользователей базу переносят в клиент-серверный вариант: в консоли кластера сервера 1С создают информационную базу, затем открывают её Конфигуратором и через Администрирование → Загрузить информационную базу загружают .dt. Загрузка .dt полностью заменяет содержимое базы-приёмника — проверьте, что выбрана именно новая пустая база.
Веб-публикация
Чтобы приложение открывалось в браузере или в тонком клиенте через интернет , его публикуют на веб-сервере (IIS или Apache).
- Установите веб-сервер и при установке платформы — модули расширения веб-сервера.
- Запустите Конфигуратор от имени администратора Windows.
- Откройте
Администрирование → Публикация на веб-сервере. - Укажите имя публикации и каталог, нажмите
Опубликовать. - Откройте в браузере адрес вида
http://сервер/имя_публикации.
Публикация, открытая в интернет без HTTPS и без паролей у пользователей, — прямой доступ к данным для любого, кто узнает адрес. Перед выходом наружу включите аутентификацию и TLS.
Обновление приложения
Когда пользователи уже работают, вносите изменения в копии, а в рабочую базу переносите через Конфигурация → Сравнить, объединить с конфигурацией из файла или через файл обновления. Обновление структуры базы (F7) требует монопольного доступа: попросите пользователей выйти и делайте это вне рабочего времени.
Если нужна не конфигурация, а мобильное приложение
На платформе 1С можно сделать и мобильное приложение для Android и iOS. Для этого в свойствах конфигурации задают назначение использования «Мобильное устройство», а сборку выполняют сборщиком мобильных приложений — он сам является конфигурацией 1С и использует Android SDK, а для iOS — компьютер с macOS.
Мобильное приложение — отдельная конфигурация с урезанным набором объектов. Обычно она хранит небольшую часть данных и синхронизируется с основной базой через HTTP-сервисы или веб-сервисы. Если нужна просто работа с телефона, проще опубликовать основную базу на веб-сервере и пользоваться мобильным клиентом 1С — отдельной разработки не потребуется.