Статья предназначена для технических специалистов – разработчиков 1С.
Взглянув на регистры в 1С 8.3 найти в запросах на языке 1С бухгалтерии такую неочевидную сложность (по крайне мере, на релизе 1С: Предприятие 8.3.10.2561).
· Если по виртуальной таблице (в частности «Остатки») регистра бухгалтерии делать выборку без разворота по субконто, то можно получить неверный результат
Вот пример:
Обычный активно/пассивный счет «60.4» с двумя субконто: «Организация» и «Контрагенты».
Требуется получить остаток по нему с отбором по списку контрагентов.
Казалось бы, простейший запрос нам поможет:
его результат Сумма = 12 221 544,65. Конкретное значение суммы значения не имеет, но сразу скажу, что она неверная.
Достаточно добавить поле выборки по Субконто1 и я получаю другой результат с итоговой суммой 51 765 945,85. И это уже правильный результат.
Но как быть, если разворот по субконто счета в 1С нам не нужен, а нужна одна итоговая сумма? Простое применение агрегатной функции не помогает:
Получаю те же неправильные: Сумма = 12 221 544,65
Чтобы получить правильный результат, пришлось в запрос добавить конструкцию, которая никак не изменяет структуру выборки, но обращается к субконто:
В результате получил искомый результат 51 765 945,85, который можно было использовать в следующих запросах пакета.
Таким образом, при построении запросов по регистрам бухгалтерии, иногда требуется использовать конструкции, которые тем или иным образом обращаются к субконто, хоть в самой выборке 1С бухгалтерия субконто и не нужно.