При создании собственного регистра бухгалтерии или разработке запросов к физической таблице движений начинающие разработчики часто сталкиваются с ошибками вида «Поле не найдено: Хозрасчетный.СчетДт» или отсутствием полей КоличествоДт и КоличествоКт. Разберем по шагам, от каких настроек метаданных зависит состав полей регистра бухгалтерии в платформе 1С:Предприятие и как правильно сконфигурировать объект.
Рассмотрим типовой запрос к таблице движений регистра:
ВЫБРАТЬ
Хозрасчетный.Период КАК Период,
Хозрасчетный.Организация КАК Организация,
Хозрасчетный.СчетДт КАК СчетДт,
Хозрасчетный.СчетКт КАК СчетКт,
Хозрасчетный.КоличествоДт КАК КоличествоДт,
Хозрасчетный.КоличествоКт КАК КоличествоКт,
Хозрасчетный.Сумма КАК Сумма
ИЗ
РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
Если при открытии Конструктора запроса или выполнении кода платформа сообщает о синтаксической ошибке и отсутствии части полей, проанализируем настройки свойств регистра бухгалтерии.
Выясним причину отсутствия полей СчетДт и СчетКт. В платформе 1С регистр бухгалтерии может работать в двух режимах:
Счет и ВидДвижения.Чтобы в таблице регистра появились стандартные поля СчетДт и СчетКт, выполним следующие действия в конфигураторе:
РегистрБухгалтерии.После включения корреспонденции поля счетов станут доступны, однако может возникнуть следующая ошибка: платформа не видит поля КоличествоДт и КоличествоКт, предлагая только единое поле Количество. Проанализируем, почему так происходит.
Поведение ресурсов регистра бухгалтерии определяется свойством «Балансовый»:
Сумма (сумма по дебету всегда равна сумме по кредиту проводки). Поэтому в таблице формируется одно общее поле Сумма.Количество (при списании материалов со склада на затратный счет количество учитывается по дебету счета затрат только в том случае, если на нем включен количественный учет).Чтобы ресурс разделился на два независимых поля по дебету и кредиту, снимем признак балансовости:
Количество).Количественный). Это обеспечит автоматический контроль ведения ресурса только по тем счетам, где он включен.После снятия флага платформа автоматически создаст в таблице движений два поля: <ИмяРесурса>Дт и <ИмяРесурса>Кт.
Рассмотрим аналогичное поведение для измерений регистра бухгалтерии:
Организация) установлен флаг «Балансовый», оно является сквозным для всей проводки и в запросе доступно как единое поле Организация.Подразделение), измерение распадается на два независимых поля: ПодразделениеДт и ПодразделениеКт. Это позволяет отражать межподразделенческие перемещения внутри одной проводки.Обратим внимание на работу со связанными данными при составлении запросов:
СубконтоДт1, СубконтоДт2, СубконтоКт1 и т.д. определяется свойством плана счетов «Максимальное количество субконто». При обращении к реквизитам значений субконто в физической таблице движений необходимо явно типизировать их через функцию ВЫРАЗИТЬ().РегистрБухгалтерии.<Имя> оправдано при проверке первичных движений документов. Для аналитических отчетов эффективнее использовать виртуальную таблицу ОборотыДтКт или ДвиженияССубконто, где агрегированные ресурсы и аналитика оптимизированы для быстрых выборок.Важное предупреждение: изменение флага «Корреспонденция» или свойства «Балансовый» у ресурсов и измерений в информационной базе с существующими движениями вызывает полную физическую реструктуризацию таблиц базы данных на уровне СУБД. Это может привести к необратимой потере ранее записанных движений, поэтому структуру регистра необходимо настраивать до ввода первичных данных либо предварительно создавать резервную копию.