Помощь - Поиск - Пользователи - Календарь
Полная версия: Завис с запросом
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Конфигурирование на платформе "1С:Предприятие 8.x"
Serge
Задача такая - выбрать остатки по счету 10.06, но чтобы в результате запроса вместо Склада было ФизическоеЛицо.

как я понимаю, надо составить запрос к РегиструБухгалтерии, внутри которого вызывается запрос к регистру накопления ОтветственныеЛица и находится ФизЛицо, соответствующее складу.
Не могу сообразить, как это сделать.
ASh
ОтветственныеЛица, скорее всего, будут регистром сведений все-таки... Можно, примерно, так запрос построить:

Код
//Запрос возвращает таблицу остатков счета на дату в разрезе номенклатуры и мест хранения
//Параметры:
//Счет - счет плана счетов бухгалтерского учета,
//ДатаОстатков - дата, на которую собираются остатки и ищется ответственный по складу

ВЫБРАТЬ
//Если раскоментарить следующие 2 строки, то в результате запроса будет видно
//склад из счета и то, что найдено в регистре ответственных лиц (соответствие)

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




Следует отметить, что если в базе не задан ответственный на дату выборки остатков, то соответствующее поле будет пустым.

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


Ваш пример помог мне понять кое-что, большое спасибо.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.