Регистр бухгалтерии 1С: проводки и субконто
Регистр бухгалтерии хранит проводки по плану счетов: дебет, кредит, сумма и аналитика по субконто. На собесе программиста спрашивают не бухгалтерию, а устройство: как записать проводку, где хранится количество и как получить остатки и обороты по счёту.
// Так спрашивают: «Что такое проводка в терминах регистра?» «Как заполнить субконто в коде?» «Чем ОборотыДтКт отличается от Обороты?» «Где хранится количество в регистре бухгалтерии?»
Проводка
Регистр бухгалтерии связан с планом счетов. Если у регистра включена корреспонденция, каждая запись становится проводкой: счёт дебета и счёт кредита, у каждого свои субконто, и сумма. Продажа товара в типовой бухгалтерии даёт две проводки:
Сумма считается балансовым ресурсом: она одна на проводку и попадает и в дебет, и в кредит. Количество относится к небалансовым ресурсам: оно хранится отдельно по стороне дебета и стороне кредита, потому что счёт 62 количества не ведёт, а счёт 41 ведёт. Включает такой ресурс на счёте признак учёта, например количественный.
Запись в коде
Субконто заполняют не по номеру поля, а по виду субконто: на одном счёте контрагент стоит первым, на другом вторым, и номер зависит от счёта. Поле СубконтоДт1 есть только в запросах, у записи регистра субконто адресуют видом:
Организация в этом примере служит измерением регистра: это разрез, который есть у всех счетов сразу. Забалансовый счёт проводят одной стороной, без корреспондирующего счёта.
Проводка = Движения.Хозрасчетный.Добавить();
Проводка.Период = Дата;
Проводка.Организация = Организация;
Проводка.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями;
Проводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = Контрагент;
Проводка.СчетКт = ПланыСчетов.Хозрасчетный.Выручка;
Проводка.Сумма = СуммаПродажи;
Движения.Хозрасчетный.Записывать = Истина;Остатки и обороты по счетам
Виртуальная таблица Остатки принимает в параметрах условие на счёт, виды субконто, по которым развернуть аналитику, и отбор: Остатки(&Дата, Счет В ИЕРАРХИИ (&Счет62), &ВидыСубконто). Отбор по счёту и субконто ставят в параметрах, иначе таблица прочитает итоги по всем счетам и только потом отбросит лишнее.
ОборотыДтКт отдаёт обороты по парам корреспондирующих счетов, ДвиженияССубконто сами проводки с аналитикой. Четыре проводки и обороты по парам:
Две продажи на 1 200 и 300 сложились в оборот 1 500 по паре 62 и 90.01, оплата покупателя прошла по паре 51 и 62. Обороты без пар отдал бы по каждому счёту отдельно обороты дебета и кредита.
ВЫБРАТЬ
О.СчетДт,
О.СчетКт,
О.СуммаОборот
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Начало, &Конец) КАК ОКак отвечать: «Как заполнить субконто контрагента в проводке и почему не через СубконтоДт1?»
Субконто у записи регистра адресуют видом: Проводка.СубконтоДт[ВидыСубконто.Контрагенты] = Контрагент. Номер субконто зависит от счёта, на одном счёте контрагент первый, на другом второй, поэтому код по номеру сломается на первом же другом счёте. Поля СубконтоДт1, СубконтоДт2 существуют в запросах к регистру, а у записи их нет.
Ответ даёт правильный синтаксис и объясняет, почему номер ненадёжен. Различие между записью и запросом выдаёт человека, который писал проводки сам.
На чём валят
- −Заполняют субконто по номеру
Запись.СубконтоДт1. Так поле называется только в запросах. У записи субконто адресуют видом. - −Отбирают счёт и субконто в ГДЕ после виртуальной таблицы. Читаются итоги по всем счетам. Отбор ставят в параметры таблицы.
- −Ждут количество в одном поле, как сумму. Небалансовый ресурс хранится по сторонам Дт и Кт и включается признаком учёта.
Проверь себя
Пять вопросов из банка по этой подтеме. Всего их 12, остальные разбираются в тренажёре.
- Какая виртуальная таблица регистра бухгалтерии отдаёт обороты между парами счетов?A)ДвиженияССубконто за периодB)Обороты с отбором по счёту дебетаC)ОстаткиИОбороты с параметром корреспонденцииD)ОборотыДтКт
показать ответ и разбор
+D)ОборотыДтКт// разбор: ОборотыДтКт группирует обороты по сочетаниям счёта дебета и кредита за период: сколько ушло с 41 на 90. Обороты даёт оборот по счёту с отдельным полем корреспондирующего счёта при необходимости. ДвиженияССубконто — сами проводки с развёрнутыми субконто, без группировки.
- Как в записи регистра бухгалтерии заполнить субконто «Номенклатура» по дебету?A)
Запись.Номенклатура = ТоварB)Запись.СубконтоДт1 = ТоварC)Запись.СубконтоДт[ВидыСубконто.Номенклатура] = ТоварD)Запись.УстановитьСубконто("Номенклатура", Товар)показать ответ и разбор
+C)`Запись.СубконтоДт[ВидыСубконто.Номенклатура] = Товар`// разбор: СубконтоДт и СубконтоКт — коллекции, где ключ — вид субконто (элемент ПВХ), а значение — объект аналитики. Номер позиции субконто зависит от счёта, поэтому обращаются по виду. В типовых для этого есть общий модуль с функцией установки субконто.
- Ресурс «Сумма» балансовый, «Количество» — нет. Как это отражается в записи с корреспонденцией?A)Оба ресурса пишутся одним полем на записьB)Сумма — два поля по сторонам, количество — одно общееC)Сумма — одно поле, количество — отдельно по Дт и КтD)Небалансовый ресурс в записи не хранится
показать ответ и разбор
+C)Сумма — одно поле, количество — отдельно по Дт и Кт// разбор: Балансовый ресурс одинаков по дебету и кредиту, поэтому хранится одним полем Сумма. Небалансовый может различаться по сторонам: товар пришёл в килограммах, а списан в штуках на другом счёте, поэтому у него поля КоличествоДт и КоличествоКт. Отсюда правило балансового сальдо.
- У счёта 41 стоит признак учёта «Количественный». Что это даёт?A)Сумма по счёту округляется до целых единицB)По счёту ведётся ресурс КоличествоC)Счёт становится забалансовым для количестваD)По счёту запрещены проводки только на сумму
показать ответ и разбор
+B)По счёту ведётся ресурс Количество// разбор: Признак учёта связывает счёт с небалансовым ресурсом: по счетам с количественным учётом заполняется и хранится Количество, по остальным оно пусто. Так один регистр обслуживает и количественные, и чисто суммовые счета. Валютный учёт работает так же через ресурс ВалютнаяСумма.
- Как получить остатки по счёту 41 с развёрнутыми номенклатурой и складом?A)
Остатки(&Дата, Счет В ИЕРАРХИИ (&Сч41), &ВидыСубконто)B)Остатки(&Дата)и отбор в ГДЕ по Субконто1C)ОборотыДтКтс отбором по счёту 41 в параметрахD)Только через ДвиженияССубконто и сложение в кодепоказать ответ и разбор
+A)`Остатки(&Дата, Счет В ИЕРАРХИИ (&Сч41), &ВидыСубконто)`// разбор: Второй параметр Остатки — условие на счёт, третий — массив видов субконто, которые станут полями Субконто1, Субконто2 в нужном порядке. Счёт в иерархии захватывает субсчета 41.01 и 41.02. Отбор по счёту в ГДЕ работает хуже, чем в параметрах таблицы.
дальше
Теорию прочитал. Навык ставится повторением
В Сеньорчике эта подтема идёт в ежедневных сессиях: движок возвращает её, пока ответы не станут уверенными, и ведёт прогресс отдельно по каждой подтеме. Теория внутри тоже бесплатна, бесплатная часть практики — одна сессия дня в сутки.