8.х Завис с запросом

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Serge, 13 окт 2008.

  1. TopicStarter Overlay
    Serge
    Offline

    Serge Опытный в 1С

    Регистрация:
    15 фев 2008
    Сообщения:
    160
    Симпатии:
    0
    Баллы:
    26
    Задача такая - выбрать остатки по счету 10.06, но чтобы в результате запроса вместо Склада было ФизическоеЛицо.

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

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    ОтветственныеЛица, скорее всего, будут регистром сведений все-таки... Можно, примерно, так запрос построить:

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

    PS Не претендую на оптимальность кода :)
    PPS Регистры взяты из УПП
  3. TopicStarter Overlay
    Serge
    Offline

    Serge Опытный в 1С

    Регистрация:
    15 фев 2008
    Сообщения:
    160
    Симпатии:
    0
    Баллы:
    26
    Вот как мне надо было:
    Код:
                      ВЫБРАТЬ
    ОтветственныеЛицаСрезПоследних.ФизическоеЛицо,
    //ОтветственныеЛицаСрезПоследних.СтруктурнаяЕдиница,
    ВложенныйЗапрос.КоличествоОстатокДт
    ИЗ
    РегистрСведений.ОтветственныеЛица.СрезПоследних КАК ОтветственныеЛицаСрезПоследних
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
    ХозрасчетныйОстатки.КоличествоОстатокДт КАК КоличествоОстатокДт
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК ХозрасчетныйОстатки) КАК ВложенныйЗапрос
    ПО ОтветственныеЛицаСрезПоследних.СтруктурнаяЕдиница = ВложенныйЗапрос.Субконто2
    
    Ваш пример помог мне понять кое-что, большое спасибо.
Похожие темы
  1. DmitryV
    Ответов:
    3
    Просмотров:
    311
  2. Savant
    Ответов:
    8
    Просмотров:
    407
Загрузка...

Поделиться этой страницей