"1С:Предприятие — программный продукт компании «1С», предназначенный для автоматизации деятельности на предприятии."
Но это, конечно, и так понятно. А если подробнее?
Введение
В данном курсе мы подробно разберем платформу 1С:Предприятие, ее основные возможности, архитектуру и принципы работы. Вы узнаете, как устроена 1С "изнутри", как она взаимодействует с базами данных и какие инструменты помогают разработчикам создавать гибкие и эффективные решения для бизнеса.
Курс включает в себя пошаговые инструкции по установке и настройке платформы, знакомство с конфигуратором, а также практические примеры создания первых приложений. Мы рассмотрим, как 1С позволяет автоматизировать бизнес-процессы, интегрироваться с внешними сервисами и адаптироваться под различные задачи.
Этот курс станет отличной отправной точкой для тех, кто хочет освоить 1С и научиться разрабатывать на этой платформе.
1С: Кратко о главном
  • Платформа – совокупность инструментов 1С: IDE, администрирование, клиентская часть.
  • Конфигурация – конкретный продукт, аналог проекта в Visual Studio, может быть тиражным (например, "Управление Торговлей").
  • – оболочка над БД, где хранится и сама конфигурация. Поддерживаемые СУБД: MSSQL, PostgreSQL, IBM DB2, Oracle, файловый формат.
  • Кроссплатформенность – работает на Windows, Mac, Linux, в браузере, а также на Android и iOS.
  • Интеграция – работа с внешними БД, WebAPI, Telegram-ботами.
  • Гибкий UI – пользователь может менять интерфейс без разработки.
  • Быстрая разработка – платформа автоматизирует рутину, разработчик фокусируется на бизнес-логике.
  • Расширяемость – открытый код, доработки без изменения базового проекта.
  • Большое комьюнити – статьи, видео, каналы, готовые решения.
  • Дополнительные возможности – встроенные чаты, видеозвонки, технологический журнал, поддержка многоязычности.
1.Наше первое приложение

Создаем базу
И так, для того, чтобы пощупать разработку на 1С, достаточно скачать дистрибутив для обучения. Это бесплатно. Такая платформа имеет технические ограничения, но для наших целей её вполне хватит. Установка идёт в несколько кликов и вот уже на рабочем столе лежит ярлык платформы.
Как я писал выше (и ещё упомяну ниже), каждое отдельное приложение на 1С - это база данных. В этой базе лежат не только данные, но и сам проект в исходном открытом виде (возможно сокрытие кода, но и оно применяется редко). Сейчас просто создадим наше первое приложение.
И вот мы видим список своих баз (у меня ещё есть группа).
  • 1С:Предприятие - это вход в базу в пользовательском режиме. В таком режиме платформа выполняет содержащийся в конфигурации логику. Реальные пользователи вашего приложения будут заходить сюда.
  • Конфигуратор - это IDE 1Сника. Конфигуратор служит не для наполнения базы данных и использования её функционала, но для разработки логики приложения.
Заходим в конфигуратор нашей новой программы на 1С. С самого начала нам нужно открыть окно конфигурации (далее оно будет открываться автоматически при входе).
Перед нами открылось окно панели конфигурации. Можно его сравнить с "Проектом" в VisualStudio.
Но в отличие от "обычной" разработки, в 1С проект хранится внутри самой базы данных. Буквально. Это таблица в БД, в которой хранится весь проект - конфигурация. Это код, формы, ресурсы и так далее. Это настройка логики связки базы и её архитектура. Т.е. эта конфигурация (проект) описывает архитектуру и логику БД, в которой сама же и находится.

Но на самом деле конфигураций в БД как минимум две =)

Для демонстрации продолжим разработку. Для этого кликнем по корню дерева и откроем панель свойств:
И в свойствах изменим имя конфигурации.
Теперь наш "корень дерева" изменил название и доступны две кнопки, которые отвечают за сохранение.
Дискета сохраняет текущую конфигурацию (которую мы редактируем). Но это только основная конфигурация. Её ещё можно назвать конфигурация разработчика. Проект, в котором мы вносим изменения, но они ещё не отображаются в пользовательском режиме. Мы можем здесь изменять проект сколько угодно, а в этот момент пользователи работают с приложением в штатном режиме.
Бочонок (так у нас принято называть кнопку с синим цилиндром) переносит изменения из конфигурации разработчика в исполняемую конфигурацию. То есть в конфигурацию базы данных.
Обе эти конфигурации хранятся в БД. Но одна нужна для разработки и не выполняется в пользовательском режиме, а во второй же наоборот нельзя вести разработку и она исполняется в режиме Предприятия (для пользователя).
Нажмём поочередно на обе кнопки и запустим отладку F5.
Приложение уже обладает готовым интерфейсом с разными возможностями. Но пока этому интерфейсу не к чему применяться. И так, приступим к попыткам понять, что вообще такое - разработка на 1С. Мы уже знаем, что весь проект лежит внутри самой БД. Но из чего состоит этот проект?
2.Классы в 1С

В 1С нет классов 🤷‍♂️
В обычном их понимании. Но, используя этот термин, я могу более понятно описать то, чем оперирует 1Сник. Поэтому сейчас я назову изображенное на скрине "базовыми классами". Ветку "Общие" я развернул и перенес вправо, чтобы не делать длинноскрин.
Разработчик 1С создаёт свои классы (условно). И этот класс должен обязательно наследоваться от одного из тех, что нам предоставляет платформа. Например, Справочник. Или Документ. Или Общий модуль. Далее разработчик описывает логику исходя из тех возможностей, что нам даёт этот базовый класс. А значит, что мы вольны менять многое, но не всё.

Классы я условно могу поделить на хранимые и не хранимые в БД. Например, справочник - хранимый класс. Он не имеет смысла в отрыве от сохранения в БД. Поэтому он сразу наделяется всем нужным функционалом по добавлению, удалению и так далее. В том числе и скрытым уникальным идентификатором (ключевым полем) и гиперссылкой. За помещение в БД данных отвечает сама платформа.
3.Создаем справочники
И так, создадим новый Справочник. Сразу назовем его Организации. Сейчас у нас открыт редактор Справочника (нашего нового класса). Редактор удобно группирует все свойства по тематикам.
Всё. Мы уже можем обновиться и увидеть новый справочник. Нажимаем F5 и на всё соглашаемся.
Теперь мы видим наш справочник в меню. Перейдём в него:
1С автоматически сгенерировала все нужные базовые возможности для этого справочника. Добавила ему поля "Наименование" и "Код". Нарисовала формы: списка (скрин выше), объекта (скрин ниже). Добавила все нужные кнопки. У нас сразу же доступны:

  • Добавление, изменение, копирование и удаление.
  • Отборы, группировки, сортировки, настройка своего оформления.
  • Вывод списка в табличный документ.
  • Изменение состава выводимых колонок.
  • Сохранение своих настроек формы
  • Навигационные ссылки (каждая форма\объект имеет свою строковую ссылку для быстрого перехода)
  • Добавление в избранное
  • История данных. Она вшита на уровне платформы и позволяет в любой момент проанализировать изменения любых данных в базе.
  • И ещё много другого
Добавим же нашу организацию "Рога и Копыта". При записи поле Код сгенерируется автоматически.
Сейчас уже справочник работоспособен. И для простых таких классов больше ничего не нужно делать. Но чего не хватает нашей организации? Добавим для примера реквизит "ИНН".

4.Реквизиты
Реквизиты - это публичные поля класса. Они автоматически доступны пользователю в интерфейсе. И они хранятся в БД вместе с объектом. Фактически, добавляя новое такое поле в свой класс, разработчик заставляет платформу в таблице SQL добавить новую колонку (или несколько для составных типов).

Перейдём в конфигуратор и добавим новый реквизит ИНН:
На палитре свойств есть много всего, что описывает поведение нашего реквизита. Но нам сейчас интересно главное - тип. Какие бывают типы в 1С ?
На самом деле типов намного больше. Но именно в качестве реквизита можно выбрать не всё, потому что реквизит является хранимым в БД полем.

Вы можете заметить, что в 1С нет отдельных типов под разные виды чисел. int, uint, long и ulong - это всё в 1С объединено одним типом Число. Но в реквизите мы можем это число настраивать. Пусть наш ИНН будет неотрицательным, целым (точность = 0) и максимальной длинной 12. Обновим теперь приложение и посмотрим на результат (F5).
Сразу появилось это поле. Более того, поле автоматически доступно везде. На него можно накладывать отборы, по нему можно сортировать и так далее.
В общем, интерфейс нашего справочника построен. От него нам больше сейчас ничего не требуется, поэтому даже кода писать не будем. А добавим пока второй простой справочник "Товары". Поставим только в свойствах галочку "Иерархический". И запустим приложение.
Теперь в навигации у нас появилась ссылка на справочник Товары.

Выглядит он так же как и Организации. За одним исключением. Нам доступна кнопка Создать группу.
Добавим группу "Техника". Это "папочка". И в каждую такую группу можно поместить какой-то товар или же другую группу. Они нужны для произвольной иерархии товаров. Добавим несколько любых. Они нам потом ещё понадобятся.
Со справочниками мы разобрались. Теперь же перейдём к другому базовому классу - Документу.

5.Документы
Документ - это факт отражения какой-то операции. Документ имеет порядковый номер и дату. И документ может делать движения по регистрам (о них позже).

Добавим документ "ПриходТовара"
В пользовательском режиме он выглядит похожим на справочник, но теперь вместо "Наименование" и "Код" другие поля - "Номер" и "Дата".
Пока не будем записывать документы - нам нужно сначала наполнить его полями.

Добавим реквизит Организация и сделаем его ссылкой на справочник Организации.
6.Табличная часть

Добавим Табличную часть. Это таблица, которая подчинена текущему объекту. Мы сначала её настроим, а потом в пользовательском режиме увидим как это выглядит.

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


А можно через ввод по коду или наименованию
Так же работает и выбор товара:
Выберем любой товар и введем его цену и количество:

Сумма не заполнилась автоматически, хотя должна изменяться при вводе Цены и Количества. Пора писать код!