1C-Code → Основы 1С → Регистры бухгалтерии и расчёта
Два особых регистра: один хранит проводки по счетам, другой считает начисления с перерасчётами. Их устройство спрашивают, когда хотят понять, работали ли вы с учётом по-настоящему.
Глава 25 из 36 · чтение примерно 26 минут
Регистры накопления и сведений покрывают почти всё. Почти — потому что есть две задачи, которые ими решаются мучительно: двойная запись и начисления с перерасчётом.
Для них у платформы есть отдельные виды регистров.
Бухгалтерия устроена на двойной записи: каждая операция отражается одновременно по дебету одного счёта и кредиту другого, на одну и ту же сумму. Продали товар — дебет «Расчёты с покупателями», кредит «Выручка».
Регистр накопления так не умеет: у него движение одностороннее. Поэтому есть регистр бухгалтерии, где у движения две стороны сразу.
Он опирается на план счетов — отдельный объект конфигурации, где перечислены счета, их иерархия и то, какие разрезы у каждого бывают.
| Часть | Что это |
|---|---|
| Период и регистратор | как у всех регистров — когда и каким документом |
| СчётДт, СчётКт | два счёта: откуда и куда |
| Субконто Дт, Субконто Кт | разрезы каждой стороны: контрагент, договор, номенклатура |
| Сумма | одна на обе стороны |
| Количество, Валюта | дополнительные измерения, если счёт их ведёт |
Что такое субконто
Субконто — это разрез аналитики счёта. Счёт 62 «Расчёты с покупателями» ведут в разрезе контрагента и договора: два субконто.
Важно, что субконто у дебета и кредита свои. В проводке «зачёт аванса» дебетовая сторона про аванс контрагента, кредитовая — про договор. Считая долг, надо брать обе стороны, и каждую по своему субконто: это одна из самых частых ошибок в отчётах по взаиморасчётам.
Счета не зашиты в конфигурацию списком: они лежат в плане счетов, и их можно добавлять, как элементы справочника. Отсюда и приёмы, которые иначе выглядят странно.
У счёта есть вид (активный, пассивный, активно-пассивный) — от него зависит, где считается сальдо. Есть признак количественного учёта: если он стоит, кроме суммы у проводки появляется количество. Есть виды субконто — разрезы, в которых счёт ведут.
Поэтому «добавить разрез учёта» — это чаще всего не новая таблица и не новый регистр, а ещё одно субконто у счёта.
«Активный, пассивный, активно-пассивный» звучит как бухгалтерская формальность, а на деле это правило, по которому платформа считает сальдо. Пока оно не понято, отчёты выходят с минусами там, где минусов быть не может.
Активный — счёт имущества: товары, деньги, основные средства. Остаток у него по дебету. Пришло — дебет вырос, ушло — дебет уменьшился. Кредитовый остаток здесь означает ошибку: со склада ушло больше, чем было.
Пассивный — счёт обязательств и источников: долги поставщикам, уставный капитал, начисленная зарплата. Остаток по кредиту.
Активно-пассивный — расчёты с кем-то, кто одновременно и должен, и переплатил. Счёт 62 «Покупатели» — самый частый пример: один покупатель должен, другой заплатил вперёд.
Свернуть развёрнутое сальдо — показать сумму, которой нет
Вот ради чего всё это различие. У одного контрагента долг 100 000, у другого аванс 30 000. Свёрнутое сальдо — 70 000. Развёрнутое — 100 000 в дебете и 30 000 в кредите.
И 70 000 не значит ничего: ни одному контрагенту эту сумму не предъявить, ни в один документ её не поставить. Долг надо взыскивать целиком, а аванс — отработать или вернуть.
Поэтому в отчёте по расчётам сальдо считают в разрезе субконто, а не по счёту целиком. Сворачивать можно только там, где речь про один и тот же объект учёта: сальдо по кассе свернуть можно, по покупателям — нет.
Кроме вида, у счёта есть признаки, каждый из которых меняет состав проводки.
Количественный учёт. Кроме суммы у движения появляется количество. Так ведут товары на 41-м: рядом с рублями лежат штуки, и себестоимость единицы получается делением.
Валютный учёт. Появляется валюта и сумма в ней. Рублёвая сумма при этом остаётся: она основная, валютная — дополнительный разрез.
Забалансовый счёт. Двойная запись на него не распространяется: проводка делается в одну сторону, без корреспонденции. Так учитывают то, что не ваше, но лежит у вас: товары на комиссии, арендованные основные средства, бланки строгой отчётности.
Виды субконто и их количество. Субконто — это разрезы счёта, и их у счёта не может быть сколько угодно: платформа ограничивает число. Когда разрезов нужно больше, их не «впихивают», а пересматривают учёт.
Максимум субконто — и он кончается
У счёта не может быть сколько угодно разрезов: их число ограничено настройкой регистра (обычно три). Это не придирка платформы, а цена скорости: каждое субконто — колонка в таблице движений и часть индекса.
Когда разрезов не хватает, заводят отдельный регистр накопления рядом: бухгалтерия остаётся честной, а управленческий разрез живёт своей таблицей. Так делают в типовых, и на собеседовании это правильный ответ на «а если нужно четыре разреза».
Проводка не обязана быть «один дебет — один кредит». Зарплата начисляется одной суммой, а расходится по нескольким счетам затрат; поступление приходит одним платежом, а закрывает три накладные.
Такие движения пишут по частям: несколько записей с одной стороной и разными корреспондирующими счетами. Регистр не требует, чтобы каждая строка была сбалансирована — он требует, чтобы сходился документ целиком.
Отсюда практическое: проверять равенство дебета и кредита надо по документу, а не по строке. Проверка по строке запретит нормальную сложную проводку.
Начисления не складываются как остатки. У них есть то, чего нет больше нигде: период действия и вытеснение.
Оклад действует весь месяц. Человек ушёл на больничный на неделю — больничный вытесняет оклад за эти дни, и оклад должен пересчитаться сам. Регистр накопления так не умеет: он про «сколько», а не про «с какого по какое и что важнее».
Поэтому у регистра расчёта свои понятия: план видов расчёта (какие бывают начисления и что кого вытесняет), период действия и период регистрации, фактический период действия — то, что осталось после вытеснения.
| Период | Что означает | Пример |
|---|---|---|
| Регистрации | в каком месяце начисление попало в расчёт | июльская зарплата начислена в июле |
| Действия | за какой отрезок начисляют | оклад с 1 по 31 июля |
| Фактический | что осталось после вытеснения | оклад с 1 по 20 июля: с 21-го больничный |
Перерасчёт — не ошибка, а механизм
Больничный принесли задним числом — оклад за те дни уже начислен и выплачен. Платформа не исправляет прошлое молча: она записывает, что такие-то записи надо пересчитать, и это отдельная таблица перерасчётов.
Дальше расчётчик запускает перерасчёт, и суммы меняются уже осознанно, с документом. Отсюда и ответ на «почему зарплата за прошлый месяц вдруг изменилась»: не вдруг, а по перерасчёту, и это видно.
Чего в этих регистрах не делают
Не пишут движения напрямую в обход документа. Проводка без регистратора — это сумма, которая взялась ниоткуда; при закрытии месяца её никто не объяснит.
Не считают итоги циклом по движениям. У регистра бухгалтерии свои виртуальные таблицы — ОстаткиИОбороты, ОборотыДтКт, — и они умеют то, что руками писать долго: разложить обороты по корреспонденции и по субконто.
Не заменяют бухгалтерию управленческим регистром. Соблазн есть: регистр накопления проще. Но отчётность сдают по проводкам, и второй источник правды про те же деньги однажды разойдётся с первым.
| Таблица | На какой вопрос отвечает | Что важно помнить |
|---|---|---|
| Остатки | «сколько на счёте на дату» | в разрезе субконто; дебетовый и кредитовый остатки отдельно |
| Обороты | «сколько прошло за период» | без остатков — только движение |
| ОстаткиИОбороты | «было, пришло, ушло, стало» | то, из чего строят оборотно-сальдовую ведомость |
| ОборотыДтКт | «с какого счёта на какой» | единственная отвечает на «откуда взялась сумма» |
| ДвиженияССубконто | «покажи сами проводки» | не итог, а строки: для карточки счёта и для разбора |
Остатки и обороты по счёту — в разрезе субконто, с разделением на дебетовые и кредитовые.
ОборотыДтКт — корреспонденции: сколько ушло с одного счёта на другой. Именно эта таблица отвечает на вопрос «откуда взялась сумма».
Отдельно живёт понятие сальдо: свёрнутый остаток. Развёрнутое сальдо — когда по одному контрагенту есть и долг, и аванс, и сворачивать их нельзя: это разные обязательства. Свернуть развёрнутое сальдо — показать сумму, которой нет ни в одном регистре.
Зарплата отличается от остальных расчётов одним свойством: прошлое меняется. Сотрудник принёс больничный за прошлый месяц — и начисленная зарплата за тот месяц становится неверной. Пересчитать надо не только её, но и всё, что от неё зависело.
Регистр расчёта умеет это отслеживать сам. У него есть:
Виды расчёта — план видов расчёта, отдельный объект. В нём указано, какой расчёт какой вытесняет и какой от какого зависит по базе.
Период действия — за какой отрезок начислено. Отличается от периода регистрации: начислили в мае за апрель.
Перерасчёт — служебная таблица: платформа сама помечает записи, которые стали неверными, когда появилось вытесняющее начисление.
Всё остальное в 1С устроено так: записали движение — оно лежит. Регистр расчёта устроен иначе, и вот из-за чего.
Вытеснение. В плане видов расчёта указано, какой вид вытесняет какой по периоду действия. Больничный вытесняет оклад: за дни болезни оклад не начисляется. Платформа не просто хранит это правило — она сама вычисляет фактический период действия: сколько дней оклада осталось после того, как больничный отъел свои.
База. Один расчёт считается от суммы других: премия от оклада, районный коэффициент от всего начисленного. В плане видов расчёта указано, какие виды входят в базу какого, и регистр умеет эту базу отдать готовой.
Перерасчёт. Появился больничный за прошлый месяц — и оклад того месяца стал неверным, а вместе с ним премия, которая считалась от оклада. Платформа помечает такие записи в служебной таблице перерасчёта сама. Задача расчётчика — не «найти, что пересчитать», а «пересчитать помеченное».
Именно ради этих трёх вещей регистр расчёта и существует. Если в задаче их нет — считайте обычным регистром накопления, он проще и быстрее.
Период действия и период регистрации — не одно и то же
Начислили в мае за апрель: период действия — апрель, период регистрации — май. Путаница между ними даёт ошибку, которую потом ищут неделями.
Отчёт «сколько начислено за апрель» строят по периоду регистрации, если речь о том, что попало в майскую зарплату, и по периоду действия, если речь о том, за какие дни человек получил. Это два разных числа, и оба правильные — вопрос в том, какой задавали.
Вытеснение и база считаются по периоду ДЕЙСТВИЯ: больничный за апрель вытесняет апрельский оклад, а не майский.
На чём спотыкаются
Сворачивают развёрнутое сальдо. Долг и аванс по одному контрагенту — разные обязательства, и их сумма не значит ничего.
Берут только одну сторону проводки. Оплата приходит с кредитовой стороны обоих счетов; забыть один — потерять часть оплат и завысить долг.
Отбирают период до разворота проводок. Тогда половина корреспонденции оказывается отсечённой, и обороты не сходятся.
Пишут в регистр расчёта напрямую, минуя виды расчёта. Тогда вытеснение и перерасчёт не работают: платформа не знает, что от чего зависит.
Упражнение 1. Развёрнутое сальдо
Функция Сальдо(Дебет, Кредит, Разворачивать) возвращает остаток по контрагенту. Если Разворачивать ложь — вернуть разность (свёрнутое сальдо). Если истина — вернуть строку вида "долг 5000, аванс 2000", где долг это дебет, а аванс кредит.
Решается в тренажёре: код запускается и проверяется сразу.
Упражнение 2. Можно ли сворачивать
Функция МожноСворачивать(Счёт) получает вид счёта: "активный", "пассивный" или "активно-пассивный". Вернуть Ложь там, где сальдо обязано оставаться развёрнутым, и Истина в остальных случаях.
Решается в тренажёре: код запускается и проверяется сразу.
Регистр бухгалтерии — про двойную запись: у движения две стороны и свои субконто у каждой. Опирается на план счетов. Развёрнутое сальдо сворачивать нельзя. Регистр расчёта — про начисления, которые задним числом меняются: виды расчёта знают, что кого вытесняет, период действия отличается от периода регистрации, а перерасчёт платформа ведёт сама.
Читать про код и писать код — разные умения. В тренажёре к этой главе идут упражнения: вы пишете решение, оно запускается на настоящем интерпретаторе 1С и проверяется сразу, без установки платформы.