ОтветственныеЛица, скорее всего, будут регистром сведений все-таки... Можно, примерно, так запрос построить:
Код
//Запрос возвращает таблицу остатков счета на дату в разрезе номенклатуры и мест хранения
//Параметры:
//Счет - счет плана счетов бухгалтерского учета,
//ДатаОстатков - дата, на которую собираются остатки и ищется ответственный по складу
ВЫБРАТЬ
//Если раскоментарить следующие 2 строки, то в результате запроса будет видно
//склад из счета и то, что найдено в регистре ответственных лиц (соответствие)
//ОтветственныеЛица.СтруктурнаяЕдиница КАК СкладСОтветственным,
//ЗапросПоСчету.Склад,
ОтветственныеЛица.ФизическоеЛицо КАК Ответственный,
ЗапросПоСчету.Номенклатура,
ЗапросПоСчету.КоличествоОстаток,
ЗапросПоСчету.СуммаОстаток
ИЗ
(//ЗапросПоСчету
//Здесь выбираем остатки по счету и группируем их по местам хранения и номенклатуре
ВЫБРАТЬ
СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК КоличествоОстаток,
СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК СуммаОстаток,
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
ХозрасчетныйОстатки.Субконто2 КАК Склад
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&;ДатаОстатков) КАК ХозрасчетныйОстатки
ГДЕ
ХозрасчетныйОстатки.Счет = &;Счет
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстатки.Субконто2,
ХозрасчетныйОстатки.Субконто1
) КАК ЗапросПоСчету
//Здесь выбираем ответственных и присоединяем их к таблице остатков, если нашли
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрСведений.ОтветственныеЛица.СрезПоследних(&;ДатаОстатков) КАК ОтветственныеЛица
//Собственно условие присоединения
ПО ЗапросПоСчету.Склад = ОтветственныеЛица.СтруктурнаяЕдиница
Следует отметить, что если в базе не задан ответственный на дату выборки остатков, то соответствующее поле будет пустым.
PS Не претендую на оптимальность кода :)
PPS Регистры взяты из УПП