Основы программирования в 1С:Предприятие 8

Этот курс предназначен для начинающих разработчиков и охватывает фундаментальные принципы создания конфигураций на платформе 1С. Вы изучите архитектуру системы, синтаксис встроенного языка, работу с базами данных и создание отчетов.

1. Знакомство с платформой, дерево конфигурации и справочники

Знакомство с платформой, дерево конфигурации и справочники

Добро пожаловать в мир разработки на 1С:Предприятие! Это первая статья нашего курса, и мы начнем с самого фундамента. Прежде чем писать код, необходимо понять, как устроена система, где мы будем работать и какими инструментами пользоваться.

Архитектура 1С: Что такое Платформа и Конфигурация?

Главная особенность системы 1С:Предприятие — это разделение на две составляющие: Платформу и Конфигурацию. Это концептуальная база, без понимания которой невозможно двигаться дальше.

Платформа

Это среда исполнения. Представьте себе игровую приставку (например, PlayStation или Xbox). Сама по себе приставка — это «железо» и операционная система, которая умеет запускать игры, обрабатывать графику и реагировать на нажатия джойстика. В мире 1С это и есть Платформа.

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

Конфигурация

Если Платформа — это приставка, то Конфигурация — это диск с игрой. Именно в конфигурации заложена логика конкретного прикладного решения: справочники сотрудников, документы продаж, отчеты о прибыли.

Программист 1С (то есть вы) работает именно с Конфигурацией. Вы создаете правила игры, а Платформа их выполняет.

!Схема взаимодействия Платформы и Конфигурации

Режимы запуска системы

При запуске 1С вы видите список информационных баз. Выбрав базу, вы можете запустить её в одном из двух основных режимов:

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

  • Конфигуратор (Режим разработчика)
  • Это ваша «мастерская». Здесь программисты создают и изменяют структуру базы данных, пишут программный код, рисуют формы и настраивают права доступа. Обычные пользователи сюда не заходят.

    > Важно: Разработка ведется в Конфигураторе, а тестирование и использование результата — в режиме 1С:Предприятие.

    Интерфейс Конфигуратора и Дерево конфигурации

    Запустите учебную базу в режиме Конфигуратор. Перед вами откроется окно с меню и панелями инструментов. Самое главное окно, с которым вы будете работать 90% времени — это окно Конфигурация.

    Если оно не открыто, нажмите в меню: Конфигурация -> Открыть конфигурацию.

    Дерево метаданных

    В окне Конфигурация вы увидите древовидную структуру. Это Дерево конфигурации (или дерево метаданных). Оно содержит описание всех объектов, из которых состоит ваша программа.

    Корневой элемент дерева — это сама конфигурация. Далее идут ветви (классы объектов):

    * Общие (роли, подсистемы, общие модули) * Справочники * Документы * Отчеты * Обработки * и другие.

    Каждый объект, который вы создаете в дереве, называется объектом метаданных. Метаданные — это «данные о данных». Например, когда вы создаете в дереве Справочник «Товары», вы не создаете конкретный товар (например, «Стол дубовый»). Вы создаете структуру, описание того, что в системе вообще могут существовать товары, и у них будут определенные свойства.

    !Дерево конфигурации в режиме Конфигуратора

    Справочники: Основа нормативно-справочной информации

    Первый и самый простой класс объектов, с которым мы познакомимся — это Справочники.

    Что такое Справочник?

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

    Примеры справочников: * Сотрудники (Иванов, Петров, Сидоров) * Номенклатура (Товары, услуги, материалы) * Контрагенты (Клиенты, поставщики) * Склады (Основной, Розничный) * Валюты (Рубль, Доллар, Евро)

    Главная цель справочника — исключить дублирование ввода и обеспечить ссылочную целостность. Менеджер не должен каждый раз писать вручную «ООО Ромашка». Он должен выбрать «ООО Ромашка» из списка. Это гарантирует, что название всегда будет написано одинаково и система поймет, что речь идет об одном и том же клиенте.

    Создание Справочника

    Давайте создадим наш первый справочник. Назовем его Номенклатура (так в 1С принято называть товары и услуги).

  • В дереве конфигурации найдите ветвь Справочники.
  • Нажмите на неё правой кнопкой мыши и выберите Добавить.
  • Откроется окно редактирования объекта.
  • Основные свойства Справочника

    В окне редактирования есть несколько важных вкладок:

    Вкладка «Основные»: * Имя: Это идентификатор для использования в программном коде. Оно должно быть слитным, без пробелов, начинаться с буквы. Пример: Номенклатура. * Синоним: Это то, что увидит пользователь в интерфейсе. Здесь можно писать по-русски с пробелами. Пример: Список товаров.

    Вкладка «Данные»: Здесь определяется структура информации, которую мы будем хранить.

    У любого справочника в 1С по умолчанию уже есть два стандартных реквизита (поля):

  • Код (Code) — уникальный номер элемента. Обычно присваивается автоматически.
  • Наименование (Description) — текстовое представление элемента (например, «Стол офисный»).
  • Но часто стандартных полей недостаточно. Например, для товара нам нужно знать его Артикул и Цену (хотя цену правильнее хранить в регистрах, для простоты примера допустим, что это реквизит). Дополнительные поля называются Реквизитами.

    Чтобы создать реквизит:

  • Перейдите на вкладку Данные.
  • Над списком реквизитов нажмите кнопку Добавить.
  • Задайте Имя (например, Артикул) и Тип данных (например, Строка, длина 20).
  • Иерархия

    Справочники могут быть иерархическими. Это значит, что внутри справочника можно создавать папки (группы). Например, в справочнике Номенклатура могут быть группы «Мебель», «Бытовая техника», а внутри них — конкретные товары.

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

    !Структура и иерархия справочника

    Предопределенные элементы

    Иногда разработчику нужно, чтобы в справочнике гарантированно был какой-то конкретный элемент, к которому можно обратиться из программного кода. Такие элементы называются предопределенными.

    Например, в справочнике «Валюты» нам точно нужен «Рубль». Мы можем создать его в Конфигураторе на вкладке Прочее -> Предопределенные. Пользователь не сможет удалить такой элемент в режиме Предприятия, а программист сможет обращаться к нему по имени, например: Справочники.Валюты.Рубль.

    Запуск и проверка

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

  • Нажмите клавишу F7 (или меню Конфигурация -> Обновить конфигурацию базы данных).
  • Согласитесь с изменениями.
  • Запустите отладку клавишей F5 (это откроет режим 1С:Предприятие).
  • В открывшемся приложении вы сможете найти свой справочник, создать в нем папки и элементы, заполнить реквизиты. Поздравляю, вы создали свой первый объект метаданных!

    Резюме

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

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

    2. Синтаксис встроенного языка, типы данных и работа с отладчиком

    Синтаксис встроенного языка, типы данных и работа с отладчиком

    В предыдущей статье мы познакомились с «телом» нашей системы — Платформой, Конфигуратором и деревом метаданных. Мы создали справочник «Номенклатура», но пока он просто хранит данные. Чтобы система начала «думать», реагировать на действия пользователя и выполнять расчеты, нам нужно вдохнуть в неё жизнь. Для этого используется встроенный язык программирования 1С.

    Сегодня мы разберем, как писать код, какие бывают типы данных и как искать ошибки с помощью главного инструмента программиста — отладчика.

    Где пишется код?

    В 1С код не пишется в одном огромном файле. Он разбит на модули. У каждого объекта конфигурации (справочника, документа, отчета) есть свои модули, которые срабатывают в определенные моменты.

    Чтобы увидеть модуль нашего справочника «Номенклатура»:

  • Откройте дерево конфигурации.
  • Найдите справочник Номенклатура.
  • Нажмите на него правой кнопкой мыши и выберите Открыть модуль объекта.
  • Перед вами откроется белый лист текстового редактора. Это и есть ваше рабочее место.

    Основы синтаксиса

    Встроенный язык 1С — один из немногих промышленных языков программирования, использующих кириллицу. Вы можете писать команды на английском (как в Java или C#), но стандартом в отрасли считается русский синтаксис. Это значительно снижает порог входа и делает код читаемым даже для не-программистов.

    Базовые правила

  • Регистр не важен. Команды Сообщить, сообщить и СООБЩИТЬ для системы абсолютно одинаковы. Однако правилом хорошего тона считается использование «ВерблюжьейНотации» (CamelCase) — каждое новое слово с большой буквы.
  • Точка с запятой. Каждая инструкция (команда) должна заканчиваться символом ;. Это сигнал для компьютера, что мысль закончена.
  • Комментарии. Всё, что написано после двойного слэша //, игнорируется программой. Это заметки для вас и ваших коллег.
  • Напишем нашу первую программу. В модуле наберите:

    Команда Сообщить() выводит текст в окно служебных сообщений внизу экрана (в пользовательском режиме).

    Переменные и Типы данных

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

    В 1С типизация динамическая. Это значит, что нам не нужно заранее говорить системе: «В переменной А будет лежать число». Мы просто кладем туда значение, и система сама понимает его тип.

    Создание переменной происходит через оператор присваивания =. Слева — имя коробки, справа — содержимое.

    !Визуальное представление переменных как контейнеров для разных типов данных

    Примитивные типы данных

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

  • Число. Любые арифметические величины. Может быть целым или дробным.
  • * Пример: 10, 36.6, -500.
  • Строка. Текст. Обязательно заключается в двойные кавычки ".
  • * Пример: "Иванов Иван", "123" (это тоже строка, не число!).
  • Дата. Содержит дату и время с точностью до секунды. Пишется в одинарных кавычках в формате 'ГГГГММДД' или 'ГГГГММДДЧЧММСС'.
  • * Пример: '20231231' (31 декабря 2023 года).
  • Булево. Логический тип. Имеет всего два значения: Истина (True) или Ложь (False).
  • * Пример: КлиентVIP = Истина;.

    Особые типы: Неопределено и Null

    Новички часто их путают, но разница важна:

    * Неопределено. Это значение «пустоты» в мире кода. Когда переменная объявлена, но в неё ничего не положили, она равна Неопределено. * Null. Это значение «пустоты» в мире базы данных. Используется при работе с запросами к базе, когда какое-то поле отсутствует или не найдено.

    Операторы и выражения

    С данными можно производить действия.

    Арифметика

    Стандартные математические операции: * + (сложение) * - (вычитание) (умножение) * / (деление)

    Конкатенация (Склеивание строк)

    Знак + также используется для склеивания строк.

    Сравнение

    Результатом сравнения всегда будет тип Булево (Истина или Ложь). * = (Равно). Внимание: в 1С знак равенства используется и для присваивания значения, и для сравнения. Система понимает смысл по контексту. * <> (Не равно). * <, >, <=, >= (Меньше, больше, меньше или равно, больше или равно).

    Управляющие конструкции

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

    Условный оператор (Если)

    Позволяет выполнить код, только если условие истинно.

    Синтаксис: Если [Условие] Тогда [Команды] Иначе [Команды] КонецЕсли;

    Пример:

    Циклы

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

    Процедуры и Функции

    Чтобы код не превращался в «спагетти», его разбивают на логические блоки — подпрограммы.

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

    Работа с отладчиком

    Написать код без ошибок невозможно. Даже профессионалы с 20-летним стажем делают ошибки. Главный навык программиста — уметь их находить. Для этого существует Отладчик.

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

    Точка останова (Breakpoint)

    Это красный маркер, который вы ставите напротив строки кода. Когда 1С дойдет до этой строки, она «заморозится».

    Как пользоваться:

  • В Конфигураторе слева от кода (на серой полосе) кликните дважды мышкой или нажмите F9. Появится красная точка.
  • Запустите режим Предприятия в режиме отладки (F5).
  • Выполните действие, которое запускает этот код.
  • Программа остановится, и вас перебросит обратно в Конфигуратор.
  • !Интерфейс отладчика: точка останова и просмотр значений

    Пошаговое выполнение

    Когда программа остановлена, вы можете двигаться по шагам:

    * F10 (Шаг через). Выполняет текущую строку и переходит к следующей. Если в строке есть вызов вашей функции, он выполнит её мгновенно, не заходя внутрь. * F11 (Шаг внутрь). Если в строке есть вызов функции, отладчик зайдет внутрь этой функции, чтобы вы могли проверить её работу детально.

    Табло

    Это окно, где можно смотреть значения переменных. Если оно закрыто, нажмите Ctrl + Alt + W. В этом окне вы можете написать имя любой переменной (например, СуммаПокупки), и отладчик покажет, что в ней лежит прямо сейчас.

    Резюме

    Сегодня мы заложили фундамент программирования в 1С:

  • Код пишется в модулях.
  • Язык 1С регистронезависимый и использует динамическую типизацию.
  • Основные типы данных: Число, Строка, Дата, Булево.
  • Для ветвления логики используется конструкция Если...Тогда...Иначе.
  • Функции возвращают значение, а Процедуры — нет.
  • Отладчик и клавиша F9 — лучшие друзья разработчика для поиска ошибок.
  • В следующей статье мы применим эти знания на практике: создадим Документы и напишем обработчик проведения, который будет менять состояние нашей базы данных.