Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 июн 2021, 15:28

Выборка документов по условию(Отчет)

Автор Rust, 14 мар 2017, 08:58

0 Пользователей и 1 гость просматривают эту тему.

Rust

Здравствуйте!
(уже задавал подобный вопрос,условия немного изменились).

Есть Документ "Работы" и документ "Выдача ЗП"
Есть реквизит "Работник".

Как реализовать,выбор всех документов из "Работы" для ВЫБРАННОГО Работника,после последнего документа по этому работнику в "Выдача ЗП"

То есть,получить все выполненные работы,после последней выдачи ЗП.(Чтобы не искать последнюю дату каждого работника,и выводить по периоду)


Спасибо!

Предлогался пример:
Выбрать
    Сервис.*
Из
    Документ.<СервисАвто> Сервис
Внутреннее соединение
    (Выбрать Максимум(Мойка.Дата) как Дата
    из Документ.<МойкаАвто> Мойка где Мойка.Проведен) МаксДата //если есть признак проведения)
    по Сервис.Дата > МаксДата.Дата
упорядочить по
    Сервис.Ссылка
Автоупорядочивание



Norfolk

Цитата: Rust от 14 мар 2017, 08:58
Здравствуйте!
(уже задавал подобный вопрос,условия немного изменились).

Есть Документ "Работы" и документ "Выдача ЗП"
Есть реквизит "Работник".

Как реализовать,выбор всех документов из "Работы" для ВЫБРАННОГО Работника,после последнего документа по этому работнику в "Выдача ЗП"

То есть,получить все выполненные работы,после последней выдачи ЗП.(Чтобы не искать последнюю дату каждого работника,и выводить по периоду)


Спасибо!

Предлогался пример:
Выбрать
    Сервис.*
Из
    Документ.<СервисАвто> Сервис
Внутреннее соединение
    (Выбрать Максимум(Мойка.Дата) как Дата
    из Документ.<МойкаАвто> Мойка где Мойка.Проведен) МаксДата //если есть признак проведения)
    по Сервис.Дата > МаксДата.Дата
упорядочить по
    Сервис.Ссылка
Автоупорядочивание

1. подзапрос, в котором находите все документы "Выдача ЗП" с максимальной датой.
2. выводите все документы "Работа", у которых дата документа > даты из подзапроса. Левым соединением цепляете к документу "Работа" документ "Выдача ЗП".
3. если нужно по конкретному работнику, то передавайте его в качестве параметра в таблицах.
Принцип то не изменился в приведенном вами примере. Подставляйте ваши таблицы и вперед. Что-нибудь наваяли по вашей задаче?



п.с. вы еще и есть за меня будете? (c) :)

Rust

Сделал-последняя выдача зп по каждому работнику.

Пришлось левым соединением соединить реквизит "дата" и "работник",т.к "работник" находится в табличной части этого же документа(Выдача ЗП).Но ругается,что нельзя использовать вложенную таблицу.

Есть ли возможность,теперь соединить ещё и реквизит из документа "Работы" ?
Как я понял,соединения не происходит,просто выводит все "Исследования"

//ВыдачаБонусов*=ВыдачаЗП //Исследования*=Работы
ВЫБРАТЬ
МАКСИМУМ(ВыдачаБонусов.Дата) КАК Дата,
ВыдачаБонусовТЧБонусы.Работник,
Исследования.Дата КАК Дата1,
Исследования.Работник КАК Работник,
Исследования.НаименованиеРаботы
ИЗ
Документ.ВыдачаБонусов.ТЧБонусы КАК ВыдачаБонусовТЧБонусы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыдачаБонусов КАК ВыдачаБонусов
ПО ВыдачаБонусовТЧБонусы.Ссылка = ВыдачаБонусов.Ссылка,
Документ.Исследования КАК Исследования
ГДЕ
Исследования.Дата > &Дата
И ВыдачаБонусовТЧБонусы.Работник = &Работник

СГРУППИРОВАТЬ ПО
ВыдачаБонусовТЧБонусы.Работник,
Исследования.Дата,
Исследования.Работник,
Исследования.НаименованиеРаботы



Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск