Метаданные под билет

Что и куда ставить в конфигураторе, прежде чем писать код. Все значения — из авторских выгрузок, не по памяти.

источник: 32 занятия + 6 целых билетов
экзамен: 12.10.2026
платформа: 8.3.27

Процедура

Одна и та же для любого билета и любого блока. Ошибки конструкции делаются до кода — значит и ловятся до кода.

  1. Выписать все вопросыКаждый отчёт и каждый контроль из условия. Это полный список того, на что система обязана уметь отвечать.
  2. Для каждого — разрезы и числаПо чему группируем (разрезы) и что суммируем (числа). Пишется в две колонки, на бумаге.
  3. Свести к минимуму объектовСколько регистров реально нужно. Ищем требования с общими разрезами — они ложатся в один регистр.
  4. Проверить каждое измерениеПод ним есть требование? Нет — вон. Разрез, по которому не нужны отдельные остатки или обороты, не измерение.
  5. Проверить каждый ресурсТак же. Цена в регистр не идёт почти никогда — она берётся из документа, а не накапливается.
правило

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

Выбор объекта

Что требование в условии значит на языке метаданных.

В условии написаноОбъектКлючевая настройка
«остаток», «не хватает», «списание»Регистр накопленияВид = Остатки
«отчёт за период», «продажи с … по …»Регистр накопленияВид = Обороты
«значение на дату», «действует с»Регистр сведенийпериодичность + СрезПоследних
«проводки», «корреспонденция счетов»Регистр бухгалтерииКорреспонденция = Истина
«учёт в разрезе …» внутри БУСубконто (ПВХ)макс. субконто на плане счетов
«начисление», «оклад», «премия», «удержание»Регистр расчётапериод действия / базовый
«вытесняет», «замещает время»План видов расчётавытесняющие виды расчёта
«% от начисленного», «от базы»Регистр расчётаБазовыйПериод = Истина
«согласование», «маршрут», «задача»Бизнес-процесс + Задачарегистр адресации
ОУ

Регистры накопления

Два вида, и выбор между ними — первое решение в любом билете.

ВидКогдаВиртуальные таблицы
Остатки
Balance
Нужно знать «сколько есть сейчас». Приход/расход, контроль нехватки.Остатки, Обороты, ОстаткиИОбороты
Обороты
Turnovers
Нужно «сколько прошло за период». Продажи, выручка, отработанные часы. Остатка не бывает по смыслу.только Обороты

Что встречается в эталонах

ОстаткиНоменклатуры · Остатки · [Номенклатура, Склад] → Количество
21×
ОстаткиСебестоимости · Остатки · [Номенклатура, Партия] → Количество, Себестоимость
19×
Продажи · Обороты · [Номенклатура] → Количество, Себестоимость, Выручка
3×
когда регистр разделяют надвое

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

Слепить их в один [Номенклатура, Склад, Партия] — значит размазать партии по складам без надобности и считать остатки по складам лишней группировкой.

Измерение, ресурс или реквизит

Регистр накопления → состав
Измерение
разрез
По нему нужны отдельные остатки или обороты. Нет такого требования — не измерение.
Ресурс
число
Накапливается и суммируется. Количество, сумма, себестоимость.
Реквизит
справочно
Ни группировать, ни суммировать. Нужен редко — обычно признак того, что решение свернуло не туда.

ИТОГИ ПО Номенклатура — что видно на уровне группировки

Выборка по группировкам → какие поля заполнены
Поле группировки
есть
Номенклатура.
Его представление
есть
ПРЕДСТАВЛЕНИЕ(ТЧ.Номенклатура) — платформа заполняет сама, в ИТОГИ не нужно. Функцией, а не .Представление через точку.
Его реквизиты через точку
есть
ТЧ.Номенклатура.ВидНоменклатуры — тоже заполняется сама.
Всё остальное
NULL
Только через агрегат в ИТОГИ: МАКСИМУМ(Количество), СУММА(КоличествоОстаток). Вычисленное выражение из ВТ (ЭтоТовар) — тоже агрегатом: МИНИМУМ(ЭтоТовар), как в билете 3.
какой агрегат

Значение из документа повторяется в каждой строке остатков → МАКСИМУМ (или МИНИМУМ), не СУММА — иначе умножится на число партий/сроков.
Остатки по строкам разные и их надо сложить → СУММА.

РС

Регистры сведений

Хранят значение, действующее на дату. Две настройки решают всё.

Регистр сведений → свойства
Периодичность
Непериодический
Справочная таблица без истории: графики работы, характеристики, состав.
В пределах дня
Курсы валют, оклады, тарифы, цены. Самый частый выбор для «действует с даты».
Месяц / Год
Учётная политика, проценты, приоритеты. Условие обычно прямо говорит «не чаще раза в год».
Режим записи
Независимый
Пользователь заполняет руками. Почти всегда это.
Подчинён регистратору
Только если значение пишет документ.
Основной отбор по периоду
Истина
Ставится, когда регистр периодический и читается срезом.
частая ошибка

Учётная политика: значение (ФИФО / ЛИФО) — это ресурс, а не измерение. Измерений у неё обычно ноль.

Если положить способ в измерение, СрезПоследних вернёт по строке на каждый способ, и решение молча возьмёт первый попавшийся.

БУ

План счетов и регистр бухгалтерии

Главное отличие от ОУ: у регистра бухгалтерии нет измерений. Их роль играют счёт и субконто.

План счетов → свойства
Макс. кол-во субконто
1 · 2 · 3
По числу разрезов в условии. Встречались все три. Не хватит — придётся менять посреди решения.
Признак учёта
Количественный
Включает ресурс Количество только на тех счетах, где он помечен.
Валютный
То же для валютной суммы. Бывает и своё имя — в билете 15 это УчетПоФилиалам.
Признак учёта субконто
Суммовой
Отдельный признак на конкретное субконто. Ключевая и неочевидная настройка — см. ловушку ниже.
Маска кода
@@.@@
Одинаковая во всех эталонах. Даёт двухуровневую иерархию счетов.
Регистр бухгалтерии → свойства
План счетов
Управленческий
Привязка обязательна.
Корреспонденция
Истина
Истина во всех шести разобранных билетах. Даёт СчётДт и СчётКт в одной записи.
Измерения
пусто
Обычно ни одного. Появляются только для второго юрлица: Организация, Филиалы.
Ресурс Сумма
балансовый
Одно поле на проводку: Движение.Сумма.
Ресурс Количество
небалансовый
+ признак
Два поля: КоличествоДт и КоличествоКт. Плюс признак учёта Количественный.
порядок настройки в конфигураторе

1. ПВХ «Виды субконто» — тип значения (составной) + предопределённые виды по разрезам из условия.

2. План счетов → «Данные» — виды субконто = ПВХ, макс. субконто; в табличке «Признаки учёта» добавить Количественный (Булево); в табличке «Признаки учёта субконто» — Суммовой и Количественный (Булево).

3. Предопределённые счета — на счёте галка Количественный; в таблице субконто счёта у каждой строки свои галки: по какому разрезу нужна сумма, по какому только количество.

4. Регистр бухгалтерии — план счетов, Корреспонденция = Истина, измерений нет (разрезы уже дают субконто — измерение их дублирует).

5. Ресурсы — Сумма: балансовый, признак учёта пусто, признак учёта субконто Суммовой. Количество: небалансовый, признак учёта Количественный, признак учёта субконто Количественный.

6. Регистратор — у документа на вкладке «Движения» отметить регистр. Без регистратора конфигурация не обновится (!!!).

Почему Количество небалансовое: в проводке «Дт Товары Кт Касса» количество есть только с одной стороны. Балансовый ресурс — одно поле на обе стороны, так нельзя.
Как всё связано: ресурс смотрит на признак счёта/субконто. Нет галки на счёте — ресурс по нему не хранится. Нет галки на субконто — итоги в этом разрезе не считаются.

ловушка, стоившая вечера

Признак учёта счёта и признак учёта субконто — разные вещи, и работают независимо.

Если у субконто (скажем, «Сроки годности») не стоит признак Суммовой, то в разрезе этого субконто ведётся только количество. Сумма там не набирается — вернётся ноль.

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

// количество — в разрезе номенклатуры и срока годности
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
        &МоментВремени, Счет = &Счет, &ВидыСубконтоПоСрокамГодности, ...)
    КАК ОстаткиПоСрокамГодности

// сумма — уровнем выше, только по номенклатуре
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
        &МоментВремени, Счет = &Счет, &ВидыСубконтоПоНоменклатуре, ...)
    КАК ОстаткиПоНоменклатуре

Дебет и кредит — что это значит

СчётУчитываетДтКтОстаток
Активныйчто у нас есть — товар, кассаприход +расход −только дебетовый
Пассивныйоткуда взялось — долги, капитал, налогипогашение −рост +только кредитовый
Активно-пассивныйрасчёты с контрагентамипо ситуациипо ситуациилюбой
мнемоника

Актив — что у нас есть. Пассив — чьё оно. Баланс сходится всегда, потому что всё, чем владеешь, откуда-то взялось.

Разница активно-пассивного не в смысле проводок, а в том, что разрешён остаток любого знака.

СПР

Периодические расчёты

Самый дорогой блок: восемь из девяти разобранных «расхождений» — отсюда. При этом настройки предельно шаблонны — их стоит помнить наизусть.

Первая строка условия: откуда берётся факт

ФормулировкаПростыми словамиГде фактБилеты
«методом отклонений»По умолчанию сотрудник отработал по графику. Вводятся только отклонения: принят 10-го, отпуск, болезнь, прогул.График: ДанныеГрафика →
ЗначениеПериодДействия = норма,
ЗначениеФактическийПериодДействия = факт
1–6, 8–10, 12, 13, 15
«вводится документом Табель»Сплошная регистрация: каждый отработанный день/час вводится явно. Ничего не предполагается по умолчанию.Свой оборотный РН (в эталоне 7 — ОтработанныеЧасы), пишет Табель; начисление берёт .Обороты(). Норма — по-прежнему из графика.7, 11, 14
пример, метод отклонений

Оклад 30 000, в октябре 22 рабочих дня, принят 10-го → оклад вводится с 10.10 по 31.10, по графику в этом периоде 16 дней.
Результат = Оклад / Норма × Факт = 30 000 / 22 × 16. Норма — рабочие дни периода, от которого считается ставка; факт — что осталось после отклонений.

Остальные слова из условий СПР
Период регистрации
месяц ведомости
В каком месяце начислено. НачалоМесяца(Дата).
Период действия
за какие дни
С 10.10 по 31.10. Только в пределах одного месяца — так во всех билетах.
Вытеснение
отпуск/больничный/командировка
«В этом случае начисление по окладу не происходит» = вытесняет оклад со своих дней, у оклада укорачивается фактический период (билеты 3, 6, 7, 9, 15).
База
от чего процент
Премия % от оклада за тот же месяц → базовый период + базовые виды (вкладка «Базовые»).
Перерасчёт
читай дословно
«Механизм перерасчётов не использовать» — почти везде, пропускаешь. Билеты 2 и 4: таблица перерасчёта нужна (заполнять), «саму процедуру реализовывать не требуется».
Невыход / прогул
зафиксировать
10, 11: «зафиксирован, но не оплачен» — свой вид расчёта, вытесняет оклад. 12: штраф за каждый день прогула — тут уже со своим расчётом.

Три периода

Что значит каждый
Период регистрации
когда начислили
Месяц документа. Есть всегда, отдельной настройки не требует.
Период действия
за какой срок
Оклад за 1–15 июня. Нужен там, где начисление растянуто во времени и может вытесняться.
Базовый период
откуда берём базу
Премия 20% от начисленного за май. Май — базовый период.

Два регистра расчёта — устойчивая пара

НастройкаОсновныеНачисленияДополнительныеНачисления
ПериодичностьМесяцМесяц
Период действияИстинаЛожь
Базовый периодИстина (в 5 из 6 билетов)Истина
Графикподключённе подключён
ИзмеренияСотрудник, обычно + Подразделение
РесурсыРезультат, плюс ОтработаноДней/Часов, если время нужно в отчёте
как это читать

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

Заметь: у основных начислений базовый период тоже чаще включён — потому что они сами служат базой для премий.

План видов расчёта → зависимость от видов расчёта

Три значения, и они не взаимозаменяемы
Не зависит
DontUse
Простые начисления. Базы нет.
По периоду действия
OnActionPeriod
База берётся за период действия. Самый частый вариант для основных начислений и премий от оклада.
По периоду регистрации
OnRegistrationPeriod
База берётся за месяц начисления. Так настраиваются удержания и часть доп. начислений.

График работы

Регистр сведений, подключаемый к регистру расчёта
Периодичность
Непериодический
Во всех эталонах без исключения.
Измерения
[кому, Дата]
Первое измерение — чей график: ТипГрафика, Подразделение, Автомобиль. Второе всегда Дата.
Ресурс
Значение
Часы или дни. Два ресурса, если в билете нужны и те и другие.
Подключение
в свойствах
График, значение графика и дата графика указываются декларативно в свойствах регистра расчёта, а не кодом.

Код расчёта основных начислений — скелет

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

  1. Движения без результатаСотрудник, ВидРасчета, ПериодДействияНачало, ПериодДействияКонец = КонецДня(...), ПериодРегистрации = НачалоМесяца(Дата), ГрафикРаботы. Затем Движения.ОсновныеНачисления.Записать().
  2. Данные графикаВиртуальная таблица ДанныеГрафика(Регистратор = &Ссылка). ЗначениеПериодДействия — норма (РабочихДней), ЗначениеФактическийПериодДействия — факт после вытеснения (ОтработаноДней).
  3. ОкладСведенияОСотрудниках.СрезПоследних — на начало расчётного периода, а не на момент документа. См. ловушку внизу.
  4. Сопоставить и посчитатьСтроки движений ↔ выборка по НомерСтроки. Оклад / РабочихДней * ОтработаноДней, с проверкой РабочихДней > 0.
  5. Записать повторноДвижения.ОсновныеНачисления.Записать(, Истина) — так во всех эталонах.

Премия от базы и стаж

Дополнительные начисления → что нужно
База
БазаОсновныеНачисления
Виртуальная таблица регистра доп. начислений: БазаОсновныеНачисления(&Измерения, &Измерения, , Регистратор = &Ссылка) → РезультатБаза. Работает, только если у регистра БазовыйПериод = Истина.
Реквизиты движения
БазовыйРезультат, ПроцентПремии
Чтобы результат был виден и проверяем: Результат = БазовыйРезультат * ПроцентПремии / 100.
Стаж на старте
ДатаПриема + НачальныйСтаж
Реквизиты справочника сотрудников. Условие прямо говорит: на начало учёта стаж может быть ненулевым.
Стаж в годах
в запросе
(РАЗНОСТЬДАТ(ДатаПриема, &ПериодРегистрации, МЕСЯЦ) + НачальныйСтаж) / 12 — в эталоне 28 начальный стаж хранится в месяцах.
Шкала процентов
РС, непериодический
ПроцентПремииОтСтажа: измерения СтажОт, СтажДо → ресурс ПроцентПремии. Соединение Стаж >= СтажОт И Стаж < СтажДо. Заполняет пользователь.
!

Проверить перед сдачей

Собрано из ошибок, которые уже случались — в решениях, в эталонах и в видео автора.

Что проверитьКак выглядит ошибка
Сколько списываемКоличествоСписать = ...Количество, а не ...КоличествоОстаток. При продаже всего остатка ошибка не видна — ломается только на частичной.
Блокировка перед чтением остатковВ видео автор её забывает регулярно — и в ОУ, и в регистре бухгалтерии. В выгрузке она есть.
Услуги в расходнойУ услуги нет партий, значит цикл по партиям для неё не отработает. Нужна отдельная ветка по ВидНоменклатуры.
Учётная политикаСпособ списания — ресурс, измерений ноль.
Базовые виды у премииПремия считается в 0, база пустая. Флажок «Базовые планы видов расчёта» на ПВР только разрешает базу. Какой вид — база, задаётся на самом предопределённом виде расчёта: «Предопределённые» → «Премия» → вкладка «Базовые» → ✓ «Оклад». Хранится в метаданных (Predefined.xml → <Base>).
Оклад на начало периодаУсловие: оклад «берётся на начало расчётного периода». Срез на МоментВремени() документа возьмёт оклад, изменённый в середине месяца. В эталоне 28 сделано именно так — упрощение; правильный вариант в «Расхождениях», тема 1.
Признак Суммовой у субконтоСумма приходит нулём — значит нужен второй запрос без этого субконто.
Макс. субконтоВ условии три разреза на счёте, а в плане счетов стоит 2.
Измерения в регистре бухгалтерииНоменклатура/срок годности заведены измерениями — дубль субконто. Измерений нет.
Остаток в РС«Сколько осталось» хранят в регистре с остатками (накопления/бухгалтерии), не в РС. РС отвечает «какое значение действует», остатков у него нет.
Сбой «Нарушена целостность»Конфигуратор падает, несохранённое теряется. Ctrl+S каждые 10–15 минут. Сохранённое в основной конфигурации переживает перезапуск.
Обращение через точку в запросеОстатки.Номенклатура.Представление — неявное соединение, снимают за неоптимальность.
ОтчётВходит в билет и оценивается. СКД настраивается быстрее, чем пишется проведение — самые дешёвые баллы.
и главное

Когда видео и выгрузка расходятся — прав .dt. Автор правил ошибки в выгрузках, но не перезаписывал видео; в его Readme это сказано прямым текстом.