Найти в Дзене
FanDzen

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

Оглавление

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

Справочники вместо строк

Представьте, что у вас есть документ «Покупка». В нём вы указываете магазин, где брали продукты. Если оставить этот реквизит обычной строкой, можно написать всё что угодно: «Пятерочка», «пятёрка», «5очка». В итоге программа не поймёт, что это один и тот же магазин.

Чтобы не превращать данные в хаос, используют справочники. Справочник «Магазины» позволяет выбрать конкретный элемент из списка. Так записи становятся единообразными: «Пятерочка» всегда будет «Пятерочка», а «ФудКорт №1» всегда «ФудКорт №1». Потом это позволит легко делать отборы и отчёты.

Что такое регистры

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

Пример из кухни:

  • Купили булочку — в регистре появляется запись «Булочка, количество 1».
  • Купили ещё одну булочку — теперь в регистре две записи, обе по одной булочке.
  • Добавили кефир — появляется новая запись «Кефир, количество 1».

Если бы мы писали всё подряд, то имели бы просто три единицы. Но благодаря измерению «Продукт» система понимает: две записи относятся к булочкам, а одна — к кефиру.

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

Проведение документа

Когда документ «Покупка» проводится, он создаёт движения в регистрах. Эти движения фиксируют фактические изменения. В нашем примере документ добавит записи о том, что на кухне появилось две булочки и один кефир.

Важно понимать: документ сам по себе — это форма для ввода. А регистр — это таблица, где остаётся след от документа. Если документ отменить, движения удаляются, и остатки пересчитаются.

Что можно увидеть в движениях

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

  • Период — дата документа.
  • Регистратор — ссылка на сам документ, который сделал запись.
  • Номер строки — порядковый номер внутри документа.

Благодаря этому легко отследить, откуда взялись данные. Например, видно, что запись «Булочка — 2» сделана документом «Покупка №1» от 5 сентября.

Зачем всё это нужно

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

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

Как вынести регистр в интерфейс

Иногда на экзаменах (и в реальной жизни тоже) просят показать регистр прямо в интерфейсе. Кажется, что всё просто: добавляем его в подсистему, запускаем предприятие — и ничего не появляется.

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

  1. В конфигураторе создаём подчинённую подсистему «Регистры».
  2. Включаем туда наш регистр «Продукты».
  3. Заходим в «Командный интерфейс» и ставим галочку «Видимость».

Теперь при запуске предприятия в разделе «Кухня» мы увидим этот регистр. На экзамене такая мелочь может сэкономить драгоценные минуты.

Как работает отмена проведения

Ещё один важный момент: если документ распровести (перевести в статус «Записан»), то его движения автоматически удаляются из регистра.

Это настраивается прямо в конфигураторе в разделе «Движения документа» галочкой «Удалять автоматически при отмене проведения».

Удобно, да? Провели — записи появились. Отменили — записи исчезли. Всё прозрачно.

Где искать код проведения

Документы в 1С — это объекты. У них есть данные (реквизиты, табличные части) и методы (процедуры и функции).

Код, который выполняется при проведении документа, хранится в
модуле объекта. А вот вспомогательные функции — в модуле менеджера.

То, что нас интересует, называется Обработка проведения. Эта процедура запускается каждый раз, когда мы жмём кнопку «Провести».

У неё есть два параметра:

  • Отказ — позволяет запретить проведение, если условия не выполняются.
  • Режим — используется реже, пока можно не заморачиваться.

Как формируются движения

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

Пример: цикл перебирает строки табличной части «Продукты» и для каждой формирует запись в регистре:

  • Вид движения: Приход.
  • Дата документа — в поле «Период».
  • Продукт и количество — из табличной части.

Всё просто: сколько строк в документе, столько и записей в регистре.

Зачем нужен параметр «Отказ»

Иногда документ проводить не надо. Например, если в нём нет ни одной строки. Смысл хранить пустышку?

Для этого добавляем условие: если количество строк равно нулю — ставим Отказ = Истина.

База не даст провести такой документ.

Чтобы пользователь не ломал голову, можно вывести подсказку:

Сообщить("Внимание! Документ не содержит строк. Проведение невозможно!")

Так система не просто откажет, а объяснит причину.

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

Регистры ожили, документы стали «умнее», а система стала дружелюбнее к пользователю.