1С:Предприятие: Бухгалтерия, Документооборот и основы разработки

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

1. Архитектура платформы 1С и начало работы в конфигурации Бухгалтерия предприятия

Архитектура платформы 1С и начало работы в конфигурации Бухгалтерия предприятия

Добро пожаловать в курс «1С:Предприятие: Бухгалтерия, Документооборот и основы разработки». Мы начинаем погружение в экосистему, которая является стандартом де-факто для автоматизации бизнеса в русскоязычном сегменте. Этот курс уникален тем, что мы будем рассматривать систему не только глазами пользователя, но и глазами разработчика.

В этой первой статье мы разберем фундамент: как устроена система 1С, чем платформа отличается от конфигурации, и сделаем первые шаги в интерфейсе «1С:Бухгалтерия».

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

Главная концептуальная особенность системы 1С:Предприятие — это четкое разделение на Технологическую платформу и Прикладное решение (Конфигурацию).

Для новичков это проще всего представить через аналогию:

* Платформа — это видеоплеер (программа, движок). * Конфигурация — это файл фильма, который вы запускаете в плеере.

Платформа — это среда исполнения. Она написана на C++ и обеспечивает работу с базой данных, отрисовку интерфейса, исполнение программного кода и взаимодействие с операционной системой. Сама по себе платформа пуста; без конфигурации она не несет бизнес-логики.

Конфигурация — это набор метаданных и алгоритмов, описывающих конкретную бизнес-задачу. «Бухгалтерия предприятия», «Документооборот», «Управление торговлей» — всё это конфигурации.

!Схема взаимосвязи платформы и прикладных решений

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

При работе с 1С вы будете постоянно сталкиваться с двумя основными режимами запуска:

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

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

    Файловый вариант

    Это самый простой вариант, используемый для обучения, разработки или в очень маленьких компаниях (обычно до 5-10 пользователей). Все данные (справочники, документы, сама конфигурация) хранятся в одном большом файле базы данных — 1Cv8.1CD.

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

    Клиент-серверный вариант

    Это стандарт для среднего и крупного бизнеса. Здесь появляется трехуровневая архитектура:

  • Клиентское приложение. Программа на компьютере пользователя. Она только показывает «картинку» и отправляет запросы на сервер.
  • Кластер серверов 1С:Предприятия. Мощный компьютер, который принимает запросы от клиентов, выполняет сложные вычисления и формирует команды для базы данных.
  • СУБД (Система управления базами данных). Специализированное ПО (MS SQL Server, PostgreSQL, IBM DB2), которое физически хранит данные и быстро их ищет.
  • !Трехуровневая архитектура клиент-серверного варианта работы

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

    Виды клиентов

    Платформа предоставляет несколько способов доступа к базе:

    * Толстый клиент. Устаревающий тип. В этом режиме на компьютере пользователя может выполняться почти любой код. Требует широкого канала связи. * Тонкий клиент. Основной вид клиента. На компьютер пользователя устанавливается легкая программа, которая умеет только отображать интерфейс. Вся логика выполняется на сервере. Работает быстро даже при плохом интернете. * Веб-клиент. Не требует установки программы. Вы заходите в базу через браузер (Chrome, Firefox, Safari). Платформа 1С автоматически преобразует интерфейс в веб-страницы.

    Основы метаданных: из чего состоит конфигурация

    Открыв конфигуратор, вы увидите «Дерево конфигурации». Это скелет программы. Давайте разберем основные «кирпичики» (объекты метаданных), из которых строится любая система, будь то Бухгалтерия или Документооборот.

    1. Справочники (Catalogs)

    Это списки условно-постоянной информации. Отвечают на вопрос «Кто?» или «Что?».

    Примеры:* Контрагенты, Номенклатура (товары), Сотрудники, Валюты. Особенность:* Элементы справочников редко меняются и используются для подстановки в документы.

    2. Документы (Documents)

    Отражают хозяйственные операции, события, произошедшие во времени. Отвечают на вопрос «Что произошло?».

    Примеры:* Поступление товаров, Реализация (продажа), Списание с расчетного счета, Прием на работу. Особенность:* Документ всегда привязан к оси времени (имеет дату и время с точностью до секунды). Главная функция документа — совершать Проведение, то есть изменять состояние учета.

    3. Регистры (Registers)

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

    Регистры сведений: Хранят значения в разрезе измерений (например, Курсы валют на каждый день или Цены номенклатуры*). * Регистры накопления: Хранят остатки и обороты (например, сколько товара осталось на складе, сколько денег в кассе).

    Начало работы в «1С:Бухгалтерия предприятия»

    Конфигурация «Бухгалтерия предприятия» (БП) — это флагманский продукт фирмы 1С. Она предназначена для ведения бухгалтерского и налогового учета.

    Интерфейс «Такси»

    Современный интерфейс 1С называется «Такси». Он оптимизирован для удобной работы, в том числе на мониторах с низким разрешением. Основные элементы:

    * Панель разделов (обычно слева или сверху): Желтая полоса с крупными иконками («Главное», «Продажи», «Покупки», «Банк и касса»). Это верхний уровень навигации. * Панель функций (открывается при клике на раздел): Содержит ссылки на конкретные справочники и журналы документов. * Рабочая область: Здесь открываются формы документов и отчетов.

    !Интерфейс «Такси» в конфигурации Бухгалтерия предприятия

    Первые шаги разработчика

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

    Пример простейшего кода, который можно встретить в модуле формы:

    В этом курсе мы будем учиться не просто нажимать кнопки в режиме Предприятия, но и понимать, как этот код работает «под капотом».

    Заключение

    Мы разобрали базовую архитектуру: платформа запускает конфигурацию, данные хранятся в СУБД (в клиент-серверном варианте), а работа ведется через тонкий или веб-клиент. Мы также познакомились с тремя китами метаданных: Справочниками, Документами и Регистрами.

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

    2. Основные хозяйственные операции, закрытие периода и формирование отчетности в 1С:Бухгалтерия

    Основные хозяйственные операции, закрытие периода и формирование отчетности в 1С:Бухгалтерия

    Мы продолжаем наш курс «1С:Предприятие: Бухгалтерия, Документооборот и основы разработки». В прошлой статье мы изучили архитектуру платформы и основные объекты метаданных: справочники, документы и регистры. Теперь пришло время оживить эту структуру.

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

    Логика хозяйственных операций: Двойная запись и Регистры

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

    В 1С:Бухгалтерии этот механизм реализован через Регистр бухгалтерии. Когда пользователь проводит документ, система делает записи (проводки) в этом регистре.

    !Схема того, как один документ создает записи в разных регистрах системы

    Взгляд разработчика: Обработка проведения

    Для пользователя «Проведение» — это просто кнопка. Для разработчика — это событие ОбработкаПроведения, расположенное в модуле объекта документа. Именно здесь пишется код, который формирует движения по регистрам.

    Пример упрощенного алгоритма проведения документа «Поступление товаров»:

    Этот код демонстрирует суть автоматизации: мы программно указываем, какие счета должны измениться и на какую сумму.

    Основные хозяйственные операции

    В повседневной работе бухгалтера 90% времени занимают типовые операции. Рассмотрим «большую тройку» разделов учета.

    1. Покупки (Снабжение)

    Главный документ здесь — «Поступление (акты, накладные, УПД)».

    * Бизнес-смысл: Мы получили товар или услугу от поставщика и теперь должны ему денег. * Технический смысл: При проведении документ увеличивает остаток товара на складе (Дебет 41 или 10) и увеличивает нашу кредиторскую задолженность перед поставщиком (Кредит 60).

    2. Продажи (Реализация)

    Главный документ — «Реализация (акты, накладные, УПД)».

    * Бизнес-смысл: Мы отгрузили товар клиенту. Товар ушел, но появилась дебиторская задолженность (клиент нам должен) и выручка. * Технический смысл: Списывается товар со склада (Кредит 41), фиксируется выручка (Кредит 90.01) и долг покупателя (Дебет 62).

    3. Банк и Касса (Денежные средства)

    Документы: «Списание с расчетного счета» и «Поступление на расчетный счет».

    * Бизнес-смысл: Оплата поставщикам, получение оплаты от покупателей, выплата зарплаты. * Технический смысл: Эти документы закрывают задолженности, сформированные документами покупки и продажи.

    Закрытие периода: Магия одной кнопки

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

    В 1С:Бухгалтерии для этого существует специализированная обработка — «Закрытие месяца».

    Что происходит «под капотом»?

    Закрытие месяца — это не один документ, а последовательность регламентных операций. Система автоматически:

  • Начисляет амортизацию: Стоимость основных средств переносится на расходы частями.
  • Корректирует стоимость номенклатуры: В течение месяца товары могут списываться по средней скользящей цене, а в конце месяца система пересчитывает точную средневзвешенную стоимость.
  • Закрывает затратные счета: Счета 20, 25, 26, 44 обнуляются, формируя себестоимость продукции.
  • Определяет финансовый результат: Сравниваются доходы и расходы, выявляется прибыль или убыток.
  • > Важно для разработчика: Операции закрытия месяца — это самые ресурсоемкие процессы. Они выполняют сложные запросы к базе данных. Ошибки в коде или неоптимальные запросы в доработках часто «всплывают» именно при закрытии месяца, когда система обрабатывает большие массивы данных.

    Формирование отчетности

    После того как все документы введены и месяц закрыт, наступает этап анализа. В 1С отчеты делятся на две большие группы: Стандартные и Регламентированные.

    Стандартные отчеты

    Это инструменты для внутреннего пользования. Самый популярный отчет — Оборотно-сальдовая ведомость (ОСВ). Она показывает состояние всех счетов за выбранный период.

    Логика работы ОСВ строится на базовой формуле расчета конечного сальдо (остатка) для активного счета:

    Где: * — Сальдо конечное (остаток на конец периода). * — Сальдо начальное (остаток на начало периода). * — Дебетовый оборот (сумма всех поступлений на счет за период). * — Кредитовый оборот (сумма всех списаний со счета за период).

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

    !Оборотно-сальдовая ведомость — основной инструмент анализа данных в 1С

    Регламентированная отчетность

    Это отчеты для государственных органов (Налоговая, Пенсионный фонд, Статистика).

    * Особенности: Формы этих отчетов строго утверждены законодательством. * Сервис 1С-Отчетность: Позволяет отправлять эти отчеты через интернет напрямую из программы, подписывая их электронной подписью.

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

    Взаимосвязь Бухгалтерии и Документооборота

    В крупных компаниях «1С:Бухгалтерия» редко работает в вакууме. Часто она интегрирована с системой «1С:Документооборот».

    Как это работает:

  • Менеджер создает договор в «Документообороте».
  • Договор проходит процесс согласования (юристы, директор).
  • После утверждения договор автоматически попадает в «Бухгалтерию».
  • Бухгалтер создает «Реализацию» или «Счет на оплату» уже на основании согласованного договора.
  • Такая связка исключает ошибки ручного ввода и гарантирует, что бухгалтерия работает только с официальными документами.

    Заключение

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

  • Документы при проведении создают записи в регистрах (движения).
  • Код проведения пишется в модуле объекта документа.
  • Закрытие месяца — это автоматизированный расчет итогов и себестоимости.
  • Отчеты (например, ОСВ) визуализируют данные, накопленные в регистрах.
  • В следующей статье мы углубимся в тему программирования и разберем встроенный язык 1С: типы данных, циклы, условия и работу с запросами, чтобы вы могли не только понимать, как работает система, но и дорабатывать её под свои нужды.

    3. Функциональные возможности 1С:Документооборот: процессы, задачи и работа с файлами

    Функциональные возможности 1С:Документооборот: процессы, задачи и работа с файлами

    Мы продолжаем наш курс «1С:Предприятие: Бухгалтерия, Документооборот и основы разработки». В предыдущих статьях мы разобрали, как работает «1С:Бухгалтерия»: как проводятся документы, закрывается месяц и формируются отчеты. Там мы имели дело с жестко структурированными данными — цифрами, счетами и проводками.

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

    Сегодня мы погрузимся в конфигурацию «1С:Документооборот» (ДО). Мы разберем, чем «электронный документ» отличается от простого файла, как работают бизнес-процессы «под капотом» и как разработчику управлять потоками задач.

    Документ и Файл: в чем разница?

    Для обычного пользователя Word-файл на рабочем столе — это и есть документ. В экосистеме 1С:Документооборот эти понятия разделены.

    Карточка документа

    В системе существует справочник «Внутренние документы» (а также «Входящие» и «Исходящие»). Элемент этого справочника — это Карточка документа. Она содержит метаданные:

    * Вид документа (Договор, Приказ, Заявка). * Организация и Контрагент. * Сумма, срок действия, ответственный. * Реквизиты для поиска.

    Карточка — это «паспорт» документа в базе данных. Именно по карточке строятся отчеты и работает поиск.

    Файл

    Файл — это вложение в карточку. Это может быть .docx, .pdf, .xlsx или скан-копия. Файлы хранятся отдельно от карточки, но жестко к ней привязаны.

    !Структурная связь между карточкой документа и прикрепленными файлами

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

    Работа с файлами: Версионирование и Тома

    Одной из ключевых проблем совместной работы является вопрос: «Кто исправил договор и где последняя версия?».

    Версионирование

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

    Хранение файлов: в базе или в томах?

    Это критически важный вопрос архитектуры.

  • В информационной базе (BLOB). Файлы хранятся внутри SQL-базы данных.
  • Плюс:* Проще делать резервные копии (один файл бэкапа). Минус:* База стремительно разрастается. База размером 500 Гб становится неповоротливой, медленно обновляется и требует дорогих дисков на сервере СУБД.
  • В томах на диске. Файлы хранятся в обычной папке на сервере (например, D:\FileStorage), а в базе 1С хранятся только пути к ним.
  • Плюс:* База 1С остается легкой и быстрой. Файловое хранилище дешевле масштабировать. Минус:* Нужно отдельно настраивать резервное копирование папки с томами.

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

    Процессы и Задачи: Двигатель системы

    Если файлы — это «тело» документооборота, то процессы — это его «кровь». Именно процессы заставляют документы двигаться от сотрудника к сотруднику.

    В платформе 1С существуют два отдельных объекта метаданных, которые работают в связке:

  • Бизнес-процесс (Business Process) — это карта маршрута. Он описывает логику: кто, в какой последовательности и что должен сделать. Сам по себе бизнес-процесс ничего не требует от пользователя, он лишь управляет ходом выполнения.
  • Задача (Task) — это конкретное поручение конкретному пользователю. Задача создается бизнес-процессом в точках маршрута.
  • Основные виды процессов

    В 1С:Документооборот реализованы типовые процессы, покрывающие 95% потребностей бизнеса:

    * Рассмотрение: Руководитель смотрит документ и выносит резолюцию (кому передать, что сделать). * Исполнение: Поручение сделать работу (например, «Подготовить отчет»). Может быть направлено одному или нескольким сотрудникам. * Согласование: Самый популярный процесс. Юристы, бухгалтеры и директора говорят «Согласен» или «Не согласен» по проекту документа. * Утверждение: Финальная подпись (обычно Генерального директора). * Регистрация: Присвоение документу официального номера и даты.

    !Схема типового бизнес-процесса согласования

    Ролевая адресация

    Часто мы не знаем фамилию сотрудника, который должен выполнить задачу, но знаем его роль. Например, счет должен согласовать «Главный бухгалтер».

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

    Взгляд разработчика: Программная работа с процессами

    Разработчику часто приходится запускать процессы автоматически. Например: «При создании элемента справочника "Договоры" в Бухгалтерии, автоматически запустить согласование в Документообороте».

    Рассмотрим упрощенный пример кода на встроенном языке 1С, который программно создает и запускает бизнес-процесс «Исполнение».

    Что происходит после Процесс.Старт()?

    Метод Старт() активирует карту маршрута. Платформа переходит к первой точке маршрута и, если это точка действия, программно создает объект «Задача».

    Задача появляется в списке «Задачи мне» у пользователя Иванова. Пока Иванов не нажмет кнопку «Выполнено» в своей задаче, бизнес-процесс будет «висеть» на этой точке и ждать. Как только задача выполнена, процесс двинется дальше по стрелке карты маршрута.

    Автозаполнение файлов

    Мощная функция для автоматизации рутины — Автозаполнение шаблонов.

    Как это работает:

  • В системе создается шаблон файла Word (например, «Договор поставки»).
  • Внутри Word расставляются специальные метки (поля), например {Контрагент}, {Сумма}, {Дата}.
  • Настраивается правило замены: поле {Контрагент} брать из реквизита карточки документа «Контрагент».
  • Пользователь нажимает одну кнопку, и система создает готовый файл .docx, где все реквизиты уже заполнены данными из 1С. Это исключает опечатки и ускоряет работу в разы.

    Бесшовная интеграция

    1С:Документооборот редко работает в одиночку. Современный стандарт — это Бесшовная интеграция с учетными системами (ERP, Бухгалтерия, Управление торговлей).

    Технология позволяет пользователю работать в окне «1С:Бухгалтерии», открывать карточку договора и видеть задачи, файлы и историю переписки, которые физически хранятся в базе «Документооборота». Обмен данными происходит через веб-сервисы, невидимо для пользователя.

    Заключение

    Мы рассмотрели функциональное ядро 1С:Документооборот:

  • Разделение данных: Карточка документа (метаданные) и Файл (контент) существуют раздельно.
  • Хранение: Для оптимизации работы базы данных файлы следует хранить в томах на диске.
  • Процессы и Задачи: Бизнес-процесс — это логика маршрута, а Задача — это точка взаимодействия с пользователем. Разработчик управляет ими через объекты БизнесПроцесс и Задача.
  • Автоматизация: Версионирование и автозаполнение шаблонов снимают рутинную нагрузку с сотрудников.
  • В следующей статье мы перейдем к более глубоким аспектам разработки и начнем изучать язык запросов 1С — мощнейший инструмент для получения данных из любых таблиц, будь то справочники, документы или регистры.

    4. Введение в конфигурирование: работа со справочниками, документами и регистрами

    Введение в конфигурирование: работа со справочниками, документами и регистрами

    Мы продолжаем наш курс «1С:Предприятие: Бухгалтерия, Документооборот и основы разработки». В предыдущих статьях мы изучили пользовательский режим работы в конфигурациях «1С:Бухгалтерия» и «1С:Документооборот». Мы видели, как бухгалтеры проводят накладные, а менеджеры запускают процессы согласования. Теперь настало время заглянуть за кулисы и узнать, как эти механизмы создаются.

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

    Объекты метаданных: кирпичики системы

    Вся конфигурация состоит из объектов метаданных. Когда вы открываете дерево конфигурации, вы видите классы объектов: Справочники, Документы, Отчеты и так далее. Конкретный справочник, например, «Номенклатура» — это объект метаданных класса «Справочник».

    Разработка в 1С — это прежде всего визуальное проектирование. Вы создаете объект, настраиваете его свойства в палитре свойств, и платформа сама создает необходимые таблицы в базе данных (СУБД). Вам не нужно писать CREATE TABLE на языке SQL — 1С делает это за вас.

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

    Как мы уже знаем, справочники хранят условно-постоянную информацию (товары, клиенты, склады). Но для разработчика справочник — это сложная структура данных.

    Стандартные реквизиты

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

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

    Иерархия

    В 1С существует два вида иерархии, и разработчик должен выбрать правильный тип при создании справочника:

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

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

    !Структура объекта метаданных Справочник: реквизиты, табличные части и формы

    Документы: Регистрация событий во времени

    Документ фиксирует факт хозяйственной деятельности. Главное отличие документа от справочника — наличие оси времени.

    Свойства документа

    * Дата и Время. Ключевой реквизит. Определяет положение документа на временной оси. * Номер. Должен быть уникальным в пределах года или другого периода. * Проведение (Posting). Свойство, которое разрешает документу делать записи в регистрах.

    Модуль объекта и Обработка проведения

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

  • Разработчик открывает Модуль объекта документа.
  • Находит предопределенную процедуру ОбработкаПроведения.
  • Пишет алгоритм, который берет данные из документа и кладет их в регистры.
  • Пример простой логики проведения на псевдокоде:

    Регистры: Хранилище итогов и состояний

    Регистры — это таблицы, оптимизированные для быстрого чтения и анализа данных. Если документы нужны для ввода данных, то регистры нужны для отчетов. В 1С существует четыре вида регистров, но мы подробно разберем два основных.

    1. Регистры сведений (Information Registers)

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

    Структура: * Измерения (Dimensions) — ключевые поля, «координаты» записи. Комбинация измерений должна быть уникальной. * Ресурсы (Resources) — хранимая информация, значения.

    Пример: Курсы валют. Измерение:* Валюта (USD). Ресурс:* Курс (90.00). Периодичность:* В пределах дня (на одну дату может быть только один курс для одной валюты).

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

    2. Регистры накопления (Accumulation Registers)

    Предназначены для учета накопления числовых величин (деньги, товары, долги). Это основа складского и финансового учета.

    Структура: * Измерения — разрезы учета (Товар, Склад). * Ресурсы — только числа! То, что мы складываем или вычитаем (Количество, Сумма).

    Виды регистров накопления:

  • Остатки (Balances). Хранят итог «сколько есть сейчас». Приход увеличивает ресурс, Расход уменьшает.
  • Обороты (Turnovers). Хранят историю движений «сколько прошло за период». Например, объем продаж.
  • Математика регистров накопления

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

    Где: * — конечный остаток (ресурс на конец периода). * — начальный остаток (ресурс на начало периода). * — сумма всех движений «Приход» (поступлений) за период. * — сумма всех движений «Расход» (списаний) за период.

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

    !Схема движения данных: Документ изменяет Регистр, Отчет читает данные из Регистра

    Типы данных: Примитивные и Ссылочные

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

    Примитивные типы

    Это базовые типы, которые не ссылаются на другие объекты базы данных:

    * Строка: Текст произвольной или фиксированной длины. * Число: Может быть целым или дробным (нужно указывать точность). * Дата: Содержит и дату, и время (с точностью до секунды). * Булево: Истина или Ложь.

    Ссылочные типы

    Это ссылки на объекты, которые мы создали в дереве метаданных:

    * СправочникСсылка.Номенклатура — ссылка на конкретный товар. * ДокументСсылка.РеализацияТоваров — ссылка на конкретную накладную.

    > Важно: Хранение ссылок обеспечивает целостность базы данных. Вы не можете удалить товар из справочника, если на него есть ссылка в проведенной накладной. Платформа выдаст ошибку «Объект не может быть удален, так как на него есть ссылки».

    Составной тип данных

    Уникальная фишка 1С. Один реквизит может хранить значения разных типов. Например, реквизит «ДокументОснование» может хранить ссылку или на «Заказ покупателя», или на «Счет на оплату». Разработчик просто ставит галочки напротив нужных типов в конфигураторе.

    Практический пример проектирования

    Давайте спроектируем простейшую систему учета выдачи книг в библиотеке.

  • Справочники:
  • Читатели* (ФИО, номер билета). Книги* (Название, Автор, ISBN).
  • Документы:
  • ВыдачаКниги* (Кто взял, Какую книгу, Когда). ВозвратКниги* (Кто вернул, Какую книгу).
  • Регистр накопления (Остатки):
  • Название:* КнигиНаРуках. Измерения:* Читатель, Книга. Ресурс:* Количество (будет всегда 1, если взяли, и 0, если вернули).

    Логика работы: Документ ВыдачаКниги делает движение Приход в регистр КнигиНаРуках*. Документ ВозвратКниги делает движение Расход из регистра КнигиНаРуках*. * Отчет смотрит остатки по регистру. Если остаток > 0, значит, читатель еще не вернул книгу.

    Заключение

    Мы познакомились с алфавитом разработчика 1С. Справочники описывают мир («Кто?» и «Что?»), Документы описывают события («Что произошло?»), а Регистры хранят последствия этих событий для быстрого анализа.

    Понимание разницы между Измерением и Ресурсом, между Ссылкой и Объектом — это фундамент, на котором строится вся логика программирования в 1С. В следующей статье мы перейдем к самому интересному — Языку запросов, инструменту, который позволяет извлекать данные из этих таблиц самым эффективным способом.

    5. Основы встроенного языка программирования 1С и конструктор запросов

    Основы встроенного языка программирования 1С и конструктор запросов

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

    Теперь пришло время вдохнуть в это тело жизнь. В этой статье мы переходим к программированию. Мы разберем основы встроенного языка 1С, поймем, почему код на клиенте и на сервере — это две разные вселенные, и научимся извлекать данные с помощью мощнейшего инструмента — Конструктора запросов.

    Встроенный язык: Русский или Английский?

    Встроенный язык 1С — это предмет горячих споров в IT-сообществе. Его главная особенность — двуязычие. Весь синтаксис имеет аналоги как на русском, так и на английском языке.

    Например, условие можно написать двумя способами:

  • Если ... Тогда ... КонецЕсли;
  • If ... Then ... EndIf;
  • Платформа поймет оба варианта одинаково. Однако, стандартом разработки в России и странах СНГ является русский синтаксис. Это упрощает вход в профессию для бухгалтеров и консультантов, которые начинают изучать программирование. В типовых конфигурациях «1С:Бухгалтерия» и «1С:Документооборот» весь код написан на русском языке.

    Переменные и Типизация

    Язык 1С относится к языкам с динамической типизацией. Это значит, что вам не нужно заранее объявлять, какой тип данных будет храниться в переменной. Тип определяется в момент присваивания значения.

    Пример:

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

    Где живет код: Модули

    В отличие от многих языков, где код пишется в текстовых файлах, в 1С код «размазан» по конфигурации. Он живет в Модулях.

    Основные виды модулей:

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

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

    !Визуализация разделения контекста выполнения кода между клиентским приложением и сервером базы данных.

    Золотое правило разработки

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

    Чтобы выполнить действие с данными, клиент должен «позвонить» на сервер.

    Директивы компиляции &НаКлиенте и &НаСервере указывают платформе, где именно должен выполняться этот кусок кода.

    Язык запросов 1С

    Если нам нужно получить данные из базы (например, найти все договоры контрагента «Рога и Копыта»), мы можем использовать два подхода:

  • Объектная модель. Перебирать справочник в цикле, пока не найдем нужное. Это очень медленно и неэффективно.
  • Табличная модель (Запросы). Попросить СУБД самой найти и вернуть нужные данные. Это быстро и правильно.
  • Язык запросов 1С очень похож на классический SQL (Structured Query Language), но он пишет на русском языке и оперирует не таблицами SQL, а объектами метаданных (Справочниками, Документами).

    Базовая структура запроса выглядит так:

    Логика выборки данных

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

    Где: * — результирующая выборка (набор строк, который вернет запрос). * — исходная таблица базы данных (например, Справочник «Номенклатура»). * — конкретная запись (строка) в этой таблице. * — условие отбора, указанное в секции ГДЕ (например, r.Цена > 100). * — логическая истина (условие выполняется для данной строки).

    Эта формула объясняет суть работы СУБД: она просматривает (или использует индекс) таблицу и оставляет в наборе только те строки , для которых условие истинно.

    Конструктор запросов

    Начинающему разработчику не обязательно учить синтаксис запросов наизусть. В платформу встроен визуальный инструмент — Конструктор запросов.

    Чтобы вызвать его, достаточно в коде нажать правую кнопку мыши и выбрать «Конструктор запроса...». Откроется окно с несколькими вкладками.

    Основные вкладки конструктора

  • Таблицы и поля. Слева вы видите дерево метаданных (Справочники, Документы, Регистры). Вы перетаскиваете нужные таблицы в центр, а конкретные поля — направо. Это формирует секции ВЫБРАТЬ и ИЗ.
  • Связи. Если вы выбрали несколько таблиц (например, «Продажи» и «КурсыВалют»), здесь настраивается, как они соединяются (Левое соединение, Внутреннее соединение).
  • Группировка. Позволяет сворачивать данные. Например, сложить все продажи по одному товару, чтобы получить общую сумму.
  • Условия. Здесь вы задаете фильтры (секцию ГДЕ). Например: Ссылка.ПометкаУдаления = Ложь (выбрать только не удаленные объекты).
  • Порядок. Сортировка результата (по алфавиту, по дате, по возрастанию суммы).
  • !Интерфейс визуального конструктора запросов, позволяющий собирать запрос мышкой без написания кода.

    Пример практической задачи

    Допустим, нам нужно получить список товаров, которых на складе осталось меньше 10 штук, чтобы сформировать заказ поставщику.

    Действия в конструкторе:

  • На вкладке «Таблицы и поля» находим Регистр накопления ТоварыНаСкладах.Остатки. Это виртуальная таблица, которая сразу дает актуальные остатки.
  • Выбираем поля Номенклатура и КоличествоОстаток.
  • Переходим на вкладку «Условия».
  • Добавляем условие: КоличествоОстаток < 10.
  • Нажимаем «ОК».
  • Платформа сама сгенерирует следующий код:

    Работа с результатом запроса

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

    Этот шаблон кода (Запрос -> Выполнить -> Выбрать -> Пока Следующий) используется в 1С повсеместно: при печати документов, при формировании отчетов, при проведении документов.

    Заключение

    Сегодня мы сделали важный шаг: перешли от настройки галочек к написанию кода. Мы узнали:

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