У регистра бухгалтерии есть физические (таблицы первичных движений и таблицы итогов) и виртуальные таблицы.
Таблицы первичных движений (основная таблица и таблица значений субконто) хранят полную информацию о проводке. Таблицы итогов скрыты от прикладного разработчика и не могут выступать источниками данных для запроса. Виртуальные таблицы, в свою очередь, являются по сути своей запросами к базе данных и используют в качестве источников данных и таблицы первичных движений, и таблицы итогов.
С особенностью одного из параметров виртуальной таблицы регистра бухгалтерии и разбирался наш слушатель.
Вопрос
Поймал одну странную ошибку, чудом догадался.
Если в тексте кода в момент создания массива субконто сначала добавить в массив Инвентарный номер, а потом Номенклатуру, то запрос возвращает неправильные значения по количеству. А если сделать, как у вас в примере – сначала Номенклатура, затем Инвентарный номер, то все ок!
С чем это связано? По идее какая разница, в каком порядке идет добавление в массив? Или это связано с порядком субконто? Как их определили?
Ответ тренера
Это не ошибка, так задумано разработчиками. Как говорится, “это не баг, это фича”.
Посмотрите в синтаксис-помощнике справку для параметра Субконто виртуальных таблиц регистра бухгалтерии Остатки, Обороты и прочих. В описании этого параметра сказано:
“Передается ссылка, или массив ссылок, или фиксированный массив ссылок, или список значений, содержащий ссылки, на виды субконто. Задает набор и порядок субконто, которыми можно оперировать в запросе. Также ограничивает записи регистра.”
То есть то, в каком порядке виды субконто идут в массиве, определяет их и в сформированной виртуальной таблице в результате запроса. Порядком следования, заданным в этом массиве, можно в запросе переопределить порядок видов субконто, заданный в конфигураторе. В вашем примере, если порядок в массиве такой: Инвентарный номер, Номенклатура – то в результате запроса Субконто1 имеет вид Инвентарный номер, Субконто2 – Номенклатура, причем независимо то того, в каком порядке эти виды субконто заданы в конфигураторе.
Подготовка к аттестации 1С:Специалист по платформе 1С:Предприятие 8.3.