Здравствуйте, нужно в документе "Кадровый перевод" вывести назначенные новые начисления, написал вот такой запрос, но он выводит все начисления, в том числе отмененные, а поля "Действие" и "ВидВыплаты" вовсе пустые.
В чем ошибка?
ВЫБРАТЬ РАЗРЕШЕННЫЕ
КадровыйПереводПоказатели.Показатель КАК НачислениеНаименование,
КадровыйПереводПоказатели.Значение КАК Размер,
КадровыйПереводПоказатели.Действие КАК Действие,
КадровыйПеревод.Начисления.СЭ_ВидВыплаты КАК СЭ_ВидВыплаты
ИЗ
Документ.КадровыйПеревод.Показатели КАК КадровыйПереводПоказатели
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод КАК КадровыйПеревод
ПО КадровыйПереводПоказатели.Ссылка = КадровыйПеревод.Ссылка
ГДЕ
КадровыйПереводПоказатели.Ссылка.Сотрудник = &Сотрудник
И КадровыйПеревод.Ссылка = &Ссылка
(5) Как раз часовой тариф содержится в таб части показателей, достать его можно, связав таб части по реквизиту ИдентификаторСтрокиВидаРасчета. Размер - это будет примерный размер начисления за весь месяц.
Примерно вот так:
ВЫБРАТЬ
КадровыйПереводНачисления.Начисление КАК Начисление,
КадровыйПереводНачисления.Действие КАК Действие,
КадровыйПереводНачисления.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
НачисленияПоказатели.Показатель КАК Показатель,
КадровыйПереводНачисления.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_НачисленияИОсновныеПоказатели
ИЗ
Документ.КадровыйПеревод.Начисления КАК КадровыйПереводНачисления
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
ПО КадровыйПереводНачисления.Начисление = НачисленияПоказатели.Ссылка
И (НачисленияПоказатели.ОсновнойПоказатель)
ГДЕ
КадровыйПереводНачисления.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_НачисленияИОсновныеПоказатели.Начисление КАК Начисление,
ВТ_НачисленияИОсновныеПоказатели.Действие КАК Действие,
ВТ_НачисленияИОсновныеПоказатели.Показатель КАК Показатель,
ЕСТЬNULL(КадровыйПереводПоказатели.Значение, 0) КАК Значение
ИЗ
ВТ_НачисленияИОсновныеПоказатели КАК ВТ_НачисленияИОсновныеПоказатели
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод.Показатели КАК КадровыйПереводПоказатели
ПО ВТ_НачисленияИОсновныеПоказатели.ИдентификаторСтрокиВидаРасчета = КадровыйПереводПоказатели.ИдентификаторСтрокиВидаРасчета
И ВТ_НачисленияИОсновныеПоказатели.Ссылка = КадровыйПереводПоказатели.Ссылка
И ВТ_НачисленияИОсновныеПоказатели.Показатель = КадровыйПереводПоказатели.Показатель
(3) Значит не типовая база какая-то. В ЗУП 3 все начисления в таб части начислений есть, только не все на форму выводятся. Там в принципе структура такая: в таб части начислений есть реквизит для связи с таб частью показателей - ИдентификаторСтрокиВидаРасчета. По этому реквизиту начисления и связываются с показателями, т.к. на одно начисление этих показателей может быть и не один.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
КадровыйПереводНачисления.Начисление КАК Начисление,
КадровыйПереводНачисления.Размер КАК Размер,
КадровыйПереводНачисления.Действие КАК Действие,
КадровыйПереводНачисления.СЭ_ВидВыплаты КАК СЭ_ВидВыплаты,
КадровыйПереводНачисления.СЭ_ОсновнойВидРасчета КАК СЭ_ОсновнойВидРасчета
ИЗ
Документ.КадровыйПеревод.Начисления КАК КадровыйПереводНачисления
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод КАК КадровыйПеревод
ПО (КадровыйПереводНачисления.Ссылка = КадровыйПеревод.Ссылка)
ГДЕ
КадровыйПереводНачисления.Ссылка.Сотрудник = &Сотрудник
И КадровыйПеревод.Ссылка = &Ссылка
Показать
всё выводит, но если стоит часовой тариф, то он не выводит сумму за час, а уже полную сумму за месяц
(5) Как раз часовой тариф содержится в таб части показателей, достать его можно, связав таб части по реквизиту ИдентификаторСтрокиВидаРасчета. Размер - это будет примерный размер начисления за весь месяц.
Примерно вот так:
ВЫБРАТЬ
КадровыйПереводНачисления.Начисление КАК Начисление,
КадровыйПереводНачисления.Действие КАК Действие,
КадровыйПереводНачисления.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
НачисленияПоказатели.Показатель КАК Показатель,
КадровыйПереводНачисления.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_НачисленияИОсновныеПоказатели
ИЗ
Документ.КадровыйПеревод.Начисления КАК КадровыйПереводНачисления
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
ПО КадровыйПереводНачисления.Начисление = НачисленияПоказатели.Ссылка
И (НачисленияПоказатели.ОсновнойПоказатель)
ГДЕ
КадровыйПереводНачисления.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_НачисленияИОсновныеПоказатели.Начисление КАК Начисление,
ВТ_НачисленияИОсновныеПоказатели.Действие КАК Действие,
ВТ_НачисленияИОсновныеПоказатели.Показатель КАК Показатель,
ЕСТЬNULL(КадровыйПереводПоказатели.Значение, 0) КАК Значение
ИЗ
ВТ_НачисленияИОсновныеПоказатели КАК ВТ_НачисленияИОсновныеПоказатели
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод.Показатели КАК КадровыйПереводПоказатели
ПО ВТ_НачисленияИОсновныеПоказатели.ИдентификаторСтрокиВидаРасчета = КадровыйПереводПоказатели.ИдентификаторСтрокиВидаРасчета
И ВТ_НачисленияИОсновныеПоказатели.Ссылка = КадровыйПереводПоказатели.Ссылка
И ВТ_НачисленияИОсновныеПоказатели.Показатель = КадровыйПереводПоказатели.Показатель
ВЫБРАТЬ
КадровыйПереводНачисления.Начисление КАК Начисление,
КадровыйПереводНачисления.Действие КАК Действие,
КадровыйПереводНачисления.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
НачисленияПоказатели.Показатель КАК Показатель,
КадровыйПереводНачисления.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_НачисленияИОсновныеПоказатели
ИЗ
Документ.КадровыйПеревод.Начисления КАК КадровыйПереводНачисления
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовРасчета.Начисления.Показатели КАК НачисленияПоказатели
ПО КадровыйПереводНачисления.Начисление = НачисленияПоказатели.Ссылка
И (НачисленияПоказатели.ОсновнойПоказатель)
ГДЕ
КадровыйПереводНачисления.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_НачисленияИОсновныеПоказатели.Начисление КАК Начисление,
ВТ_НачисленияИОсновныеПоказатели.Действие КАК Действие,
ВТ_НачисленияИОсновныеПоказатели.Показатель КАК Показатель,
ЕСТЬNULL(КадровыйПереводПоказатели.Значение, 0) КАК Значение
ИЗ
ВТ_НачисленияИОсновныеПоказатели КАК ВТ_НачисленияИОсновныеПоказатели
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод.Показатели КАК КадровыйПереводПоказатели
ПО ВТ_НачисленияИОсновныеПоказатели.ИдентификаторСтрокиВидаРасчета = КадровыйПереводПоказатели.ИдентификаторСтрокиВидаРасчета
И ВТ_НачисленияИОсновныеПоказатели.Ссылка = КадровыйПереводПоказатели.Ссылка
И ВТ_НачисленияИОсновныеПоказатели.Показатель = КадровыйПереводПоказатели.Показатель
ВЫБРАТЬ
Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.Наименование ПОДОБНО "%ФИО%";
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КадроваяИсторияСотрудников.Должность.Наименование КАК ДолжностьНаименование,
ПрогулНеявка.Ссылка КАК Ссылка,
КадроваяИсторияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
КадроваяИсторияСотрудников.Должность КАК Должность
ИЗ
Документ.ПрогулНеявка КАК ПрогулНеявка,
РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
ГДЕ
ПрогулНеявка.Ссылка = &Ссылка
И КадроваяИсторияСотрудников.ФизическоеЛицо = &ФизическоеЛицо
(8) А чем смысл их объединения? Чтобы платформа сама связи таблиц не строила что ли? В регистре кадровой истории есть как измерение Сотрудник, так и измерение ФизическоеЛицо. На этот регистр нужный отбор сразу и накладывай.
ВЫБРАТЬ
ВТ_НачисленияИОсновныеПоказатели.Начисление КАК Начисление,
ВТ_НачисленияИОсновныеПоказатели.Действие КАК Действие,
ВТ_НачисленияИОсновныеПоказатели.Показатель КАК Показатель,
ЕСТЬNULL(КадровыйПереводПоказатели.Значение, 0) КАК Значение
ИЗ
ВТ_НачисленияИОсновныеПоказатели КАК ВТ_НачисленияИОсновныеПоказатели
ЛЕВОЕ СОЕДИНЕНИЕ Документ.КадровыйПеревод.Показатели КАК КадровыйПереводПоказатели
ПО ВТ_НачисленияИОсновныеПоказатели.ИдентификаторСтрокиВидаРасчета = КадровыйПереводПоказатели.ИдентификаторСтрокиВидаРасчета
И ВТ_НачисленияИОсновныеПоказатели.Ссылка = КадровыйПереводПоказатели.Ссылка
И ВТ_НачисленияИОсновныеПоказатели.Показатель = КадровыйПереводПоказатели.Показатель
ГДЕ ВТ_НачисленияИОсновныеПоказатели.Действие = "Утвердить"
(15) Действие имеет тип Перечисление.ДействияСНачислениямиИУдержаниями, а ты пытаешься его сравнить со строкой и условие на равенство Ссылке лучше не убирать.
ГДЕ ВТ_НачисленияИОсновныеПоказатели.Действие = ЗНАЧЕНИЕ(Перечисление.ДействияСНачислениямиИУдержаниями.Утвердить) или
ВТ_НачисленияИОсновныеПоказатели.Действие = NULL