Первое приложение на 1С:Предприятии 8.3 — от пустой базы до файла .cf
Содержание
Чтобы создать приложение в 1С, нужны платформа 1С:Предприятие 8.3 и пустая информационная база. В Конфигураторе вы добавляете объекты: справочники, документы, регистры. Код на встроенном языке пишется только там, где не хватает конструкторов. Первое рабочее приложение — учёт прихода товаров с остатками — новичок собирает за один вечер.
Ниже пошаговая инструкция для начинающих на сквозном примере. Мы сделаем мини-склад: справочник товаров, документ «Приход товаров», регистр остатков и отчёт. Затем отладим код и сохраним результат в файл, который можно перенести на другой компьютер.
Что подготовить перед разработкой: платформа и учебная версия
Приложение на 1С называют конфигурацией. Это набор объектов и модулей, который работает поверх платформы. Поэтому сначала ставится платформа, и только потом начинается разработка.
Варианты, с чего начать:
| Вариант | Для чего подходит | Ограничения |
|---|---|---|
| 📘 Учебная версия платформы | Обучение, прототип, домашние проекты | Только файловые базы, ограничен объём данных |
| 💼 Платформа с лицензией | Рабочие приложения для компании | Нужна лицензия на каждое рабочее место или сервер |
| ☁️ 1С:EDT | Командная разработка, Git | Требует больше памяти, сложнее для первого шага |
Для первого приложения берите учебную версию. Её бесплатно раздаёт фирма 1С в разделе учебных материалов на своём сайте. Дистрибутив обычной платформы доступен тем, у кого есть договор поддержки.
Установка на Windows:
- Распакуйте архив и запустите
setup.exe. - В списке компонентов оставьте «1С:Предприятие» — в него входит Конфигуратор. Тонкий клиент можно добавить, сервер не нужен.
- Выберите язык интерфейса «Русский» и дождитесь окончания установки.
- На рабочем столе появится ярлык запуска. Он открывает окно со списком информационных баз.
Ставьте платформу в папку по умолчанию. Если на компьютере уже есть другие версии 1С, они не мешают друг другу: каждая лежит в своём каталоге с номером версии.
Шаг 1. Пустая информационная база для своей конфигурации
Информационная база — это папка с файлом 1Cv8.1CD, где хранятся и конфигурация, и данные. Для разработки нужна база без готовой конфигурации.
- В окне запуска нажмите «Добавить».
- Выберите «Создание новой информационной базы» → «Далее».
- Отметьте вариант «Создание информационной базы без конфигурации для разработки новой конфигурации или загрузки выгруженной ранее информационной базы».
- Задайте имя, например «Мой склад», и расположение «На данном компьютере или на компьютере в локальной сети».
- Укажите пустую папку, скажем
C:\Bases\MySklad. Остальные параметры оставьте как есть и нажмите «Готово».
База появится в списке. Выделите её и нажмите кнопку «Конфигуратор» — это и есть среда разработки.
Не создавайте базу в папке, которая синхронизируется с облачным диском. Синхронизация блокирует файл 1Cv8.1CD во время работы, и база может повредиться.
Шаг 2. Конфигуратор: дерево метаданных и главные объекты
В только что созданной базе дерево конфигурации скрыто. Откройте его через меню Конфигурация → Открыть конфигурацию. Слева появится дерево объектов метаданных — каркас будущего приложения.
Объекты, без которых не обходится почти ни одна разработка:
- 📁 Справочники — списки: товары, клиенты, сотрудники.
- 📄 Документы — события с датой: приход, продажа, заявка.
- 📊 Регистры накопления — суммы и количества во времени, например остатки.
- 🗂️ Регистры сведений — данные с привязкой к дате или набору ключей, например цены.
- 🔢 Перечисления — фиксированные варианты: «Новый», «В работе», «Закрыт».
- 📈 Отчёты и Обработки — вывод данных и служебные действия.
- 🧩 Общие → Подсистемы — разделы программы, которые видит пользователь.
- 🔐 Общие → Роли — права доступа .
Новый объект добавляют так: выделите ветку, например «Справочники», и нажмите Insert или кнопку «Добавить» на панели над деревом. Откроется окно редактирования объекта с вкладками «Основные», «Данные», «Формы» и другими.
Сначала задайте свойства самой конфигурации. Щёлкните по корню дерева правой кнопкой → «Свойства». Впишите имя, синоним (его увидит пользователь) и версию, например 1.0.0.1.
Шаг 3. Структура данных приложения: справочник, документ, регистр
Сначала проектируется структура, и только потом пишется код. Опытные разработчики всегда начинают с вопроса «какие данные храним и что из них хотим получить».
Справочник «Номенклатура»
- Добавьте справочник, имя
Номенклатура. - На вкладке «Данные» длину кода оставьте 9, длину наименования поставьте 100.
- Добавьте реквизит
Артикулс типом «Строка» длиной 25.
Код и наименование у справочника есть всегда, их создавать не нужно.
Регистр накопления «ОстаткиТоваров»
- Добавьте регистр накопления, имя
ОстаткиТоваров, вид регистра — «Остатки». - На вкладке «Данные» в «Измерения» добавьте
Номенклатурас типомСправочникСсылка.Номенклатура. - В «Ресурсы» добавьте
Количествос типом «Число», длина 15, точность 3.
Регистр накопления не заполняется вручную. Записи в него делает документ при проведении, поэтому дальше нужен документ.
Документ «ПриходТовара»
- Добавьте документ
ПриходТовара, синоним «Приход товаров». - На вкладке «Данные» создайте табличную часть
Товарыс реквизитами:Номенклатура—СправочникСсылка.Номенклатура;Количество— Число (15, 3);Цена— Число (15, 2);Сумма— Число (15, 2).
- На вкладке «Движения» отметьте регистр
ОстаткиТоваров. - Там же нажмите «Конструктор движений». Выберите табличную часть
Товары, нажмите «Заполнить выражения» и «ОК».
Конструктор сам напишет процедуру проведения. Её мы разберём в следующем разделе.
Подсистема — чтобы объекты появились в интерфейсе
Добавьте в ветке Общие → Подсистемы подсистему Склад. На вкладке «Состав» отметьте справочник, документ и регистр. Без этого пользователь не найдёт новые объекты в разделах программы.
Шаг 4. Пишем код на встроенном языке 1С
Встроенный язык похож на Pascal и Visual Basic, но ключевые слова по умолчанию русские. Английский синтаксис тоже поддерживается: Процедура и Procedure — одно и то же.
Модуль объекта: проведение документа
Откройте документ → вкладка «Прочее» → «Модуль объекта». Конструктор движений уже создал в нём процедуру:
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.Количество = ТекСтрокаТовары.Количество;
КонецЦикла;
КонецПроцедуры
Что здесь происходит:
ОбработкаПроведения— обработчик события, платформа вызывает его при нажатии «Провести».Движения.ОстаткиТоваров— набор записей регистра, который принадлежит этому документу.- Цикл обходит табличную часть и на каждую строку добавляет приход в регистр.
Записывать = Истинаговорит платформе записать набор после выполнения процедуры.
Модуль формы: пересчёт суммы
Пусть сумма считается сама при вводе количества. Для этого нужна форма документа.
- На вкладке «Формы» документа нажмите кнопку добавления и в конструкторе выберите «Форма документа» → «Готово».
- В дереве элементов формы найдите колонку
ТоварыКоличество. - В её свойствах откройте раздел «События», у события
ПриИзменениинажмите кнопку с лупой. - Конфигуратор создаст обработчик. Впишите код:
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
ТекСтрока = Элементы.Товары.ТекущиеДанные;
ТекСтрока.Сумма = ТекСтрока.Количество * ТекСтрока.Цена;
КонецПроцедуры
Повторите то же для колонки ТоварыЦена с обработчиком ТоварыЦенаПриИзменении. Код внутри одинаковый.
Клиент и сервер: директивы компиляции
В модулях форм перед каждой процедурой стоит директива:
| Директива | Где выполняется | Что доступно |
|---|---|---|
&НаКлиенте | На компьютере пользователя | Данные формы, элементы, диалоги |
&НаСервере | На сервере 1С | Данные формы и обращения к базе |
&НаСервереБезКонтекста | На сервере | Только база, без данных формы |
Новички часто пытаются обратиться к базе из процедуры &НаКлиенте. Это не работает
: запросы и чтение справочников выполняют только на сервере.
После правки нажмите Ctrl+F7 — синтаксический контроль модуля. Он сразу покажет опечатки в именах и незакрытые циклы.
Шаг 5. Запуск, отладка и тестирование приложения
Перед запуском структуру базы нужно обновить. Нажмите F7 или выберите Конфигурация → Обновить конфигурацию базы данных. Платформа покажет список изменений — подтвердите их.
Пока вы не обновили конфигурацию базы данных, в режиме 1С:Предприятие работает старая версия приложения. Это самая частая причина вопроса «почему мои изменения не видны».
Запуск в режиме отладки
Нажмите F5 (Отладка → Начать отладку). Откроется 1С:Предприятие с вашим приложением, а Конфигуратор подключится к нему как отладчик.
Основные клавиши отладчика:
| Клавиша | Действие |
|---|---|
F9 | Поставить или снять точку останова на строке |
F5 | Продолжить выполнение до следующей точки |
F10 | Шаг через: выполнить строку, не заходя в процедуры |
F11 | Шаг в: зайти внутрь вызываемой процедуры |
Shift+F9 | Вычислить выражение в текущий момент |
Поставьте точку останова на строке Движение.Количество = ... в модуле объекта. В приложении создайте документ и нажмите «Провести». Выполнение остановится, и в окне «Вычислить выражение» можно посмотреть значение ТекСтрокаТовары.Количество.
Проверка на тестовых данных
Пройдите сценарий целиком, как пользователь:
Остатки удобно смотреть отчётом. Добавьте в ветке «Отчеты» отчёт Остатки, на вкладке «Основные» нажмите «Открыть схему компоновки данных». В конструкторе добавьте набор данных — запрос к виртуальной таблице РегистрНакопления.ОстаткиТоваров.Остатки, на вкладке «Настройки» создайте группировку «Детальные записи». Этого достаточно для первого отчёта.
Регистр без отчёта видно через «Все функции». Включите команду в главном меню 1С:Предприятия: Сервис → Параметры → флажок «Отображать команду “Все функции”».
Шаг 6. Как сохранить приложение: базовая конфигурация, файлы .cf и .dt
В Конфигураторе четыре похожих действия, и новички их путают.
| Действие | Где | Что получится |
|---|---|---|
| Сохранить конфигурацию | Ctrl+S или Конфигурация → Сохранить конфигурацию | Изменения записаны в базу, но ещё не применены к данным |
| Обновить конфигурацию БД | F7 | Структура таблиц изменена, приложение работает по-новому |
| Сохранить в файл .cf | Конфигурация → Сохранить конфигурацию в файл | Файл только с конфигурацией, без данных |
| Выгрузить базу в .dt | Администрирование → Выгрузить информационную базу | Конфигурация вместе со всеми данными |
Когда что использовать:
- 📦 .cf — чтобы передать приложение другому человеку. Он создаёт пустую базу и загружает файл через
Конфигурация → Загрузить конфигурацию из файла. - 💾 .dt — для резервной копии и переноса базы целиком, с товарами и документами.
- 🗃️ Выгрузка в XML —
Конфигурация → Выгрузить конфигурацию в файлы. Каждый объект становится отдельным файлом. Такой вариант кладут в Git и смотрят разницу между версиями.
Загрузка .dt полностью заменяет базу, в которую её загружают. Загружайте выгрузку только в пустую или заведомо ненужную базу.
Поднимайте номер версии в свойствах конфигурации перед каждой передачей приложения. Через месяц станет ясно, какая сборка у пользователя.
Частые ошибки начинающих разработчиков
Ещё две ошибки, которые не дают текста на экране, но портят приложение:
- 🧱 Всё в одном модуле формы. Логику расчётов выносите в модуль объекта или в общие модули — так её вызовут и форма, и обработка, и обмен.
- 🔁 Запросы в цикле. Чтение базы на каждой строке табличной части тормозит уже на сотне строк. Один запрос до цикла почти всегда быстрее.