![]() |
![]() |
![]() |
|
Проблемы с построением отчета на СКД | ☑ | ||
---|---|---|---|---|
0
Ayatori
09.06.16
✎
04:28
|
Здравствуйте!
Я в 1С новичок, возникла задача построить простой отчет на СКД, который я, с горем пополам, реализовал. Набор данных один, данные получаются следующим запросом из одного документа: "ВЫБРАТЬ АктМонтажаПсевдоним.ПроцентВЗарплату, АктМонтажаПсевдоним.ДатаМонтажа, АктМонтажаПсевдоним.Ссылка, АктМонтажаПсевдоним.Монтажники.( ФИО.Наименование ) ИЗ Документ.АктМонтажа КАК АктМонтажаПсевдоним ГДЕ АктМонтажаПсевдоним.ДатаМонтажа >= &НачалоПериода И АктМонтажаПсевдоним.ДатаМонтажа <= &КонецПериода" Параметры "НачалоПериода" и "КонецПериода" проброшены на форму и заполняются пользователем. Сам отчет выводится таблицей, выглядит он так: http://screencast.com/t/oktKoihLzWp Теперь встала другая задача - появился новый документ с похожей структурой, реквизиты для отображения в отчете те же, нужно добавить его в отчет так, чтобы внешне отчет не изменился, добавить данные и поля, но макет оставить как есть(то есть, чтобы в колонку "ПроцентВЗарплату" попадали данные с обоих документов, и т.д.) Пытался разобраться самостоятельно, но нет понимания изначально - как, например, получать данные - двумя наборами, одним запросом, объединением? Как добавить новые поля и добиться сохранения макета? Подскажите, пожалуйста |
|||
1
Cube
09.06.16
✎
04:59
|
(0) Для начала прекрати выбирать табличную часть в качестве поля запроса:
АктМонтажаПсевдоним.Монтажники.( ФИО.Наименование ) Чтобы от этого уйти, тебе нужно выбирать не документ, а саму табличную часть. Примерно, так: "ВЫБРАТЬ АктМонтажаМонтажники.Ссылка.ПроцентВЗарплату, АктМонтажаМонтажники.Ссылка.ДатаМонтажа, АктМонтажаМонтажники.Ссылка, АктМонтажаМонтажники.ФИО.Наименование ИЗ Документ.АктМонтажа.Монтажники КАК АктМонтажаМонтажники ГДЕ АктМонтажаПсевдоним.ДатаМонтажа >= &НачалоПериода И АктМонтажаПсевдоним.ДатаМонтажа <= &КонецПериода" Дальше, неплохо было бы, добавить проверку на проведенность документа (если он не проводится, то проверку на пометку удаления) и, заодно заменить условие по периоду на более красивый: "ВЫБРАТЬ АктМонтажаМонтажники.Ссылка.ПроцентВЗарплату, АктМонтажаМонтажники.Ссылка.ДатаМонтажа, АктМонтажаМонтажники.Ссылка, АктМонтажаМонтажники.ФИО.Наименование ИЗ Документ.АктМонтажа.Монтажники КАК АктМонтажаМонтажники ГДЕ АктМонтажаМонтажники.Ссылка.ДатаМонтажа МЕЖДУ &НачалоПериода И &КонецПериода И АктМонтажаМонтажники.Ссылка.Проведен" Теперь добавляем второй документ аналогичной структуры: "ВЫБРАТЬ АктМонтажаМонтажники.Ссылка.ПроцентВЗарплату, АктМонтажаМонтажники.Ссылка.ДатаМонтажа, АктМонтажаМонтажники.Ссылка, АктМонтажаМонтажники.ФИО.Наименование ИЗ Документ.АктМонтажа.Монтажники КАК АктМонтажаМонтажники ГДЕ АктМонтажаМонтажники.Ссылка.ДатаМонтажа МЕЖДУ &НачалоПериода И &КонецПериода И АктМонтажаМонтажники.Ссылка.Проведен ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВторойДокументИмяТЧ.Ссылка.ПроцентВЗарплату, ВторойДокументИмяТЧ.Ссылка.ДатаМонтажа, ВторойДокументИмяТЧ.Ссылка, ВторойДокументИмяТЧ.ФИО.Наименование ИЗ Документ.ВторойДокумент.ИмяТЧ КАК ВторойДокументИмяТЧ ГДЕ ВторойДокументИмяТЧ.Ссылка.ДатаМонтажа МЕЖДУ &НачалоПериода И &КонецПериода И ВторойДокументИмяТЧ.Ссылка.Проведен" Вуаля. И в заключении хотелось бы сказать: правильным решением в данной ситуации будет создать регистр накопления с видом "Обороты", измерением "Монтажник" и ресурсом "ПроцентВЗарплату". Пишем в этот регистр накопления с обоих документов и считываем простым запросом (без документов с группировкой по дням): "ВЫБРАТЬ ИмяРегистраОбороты.ПроцентВЗарплату ИмяРегистраОбороты.Период КАК ДатаМонтажа, ИмяРегистраОбороты.Физлицо.Наименование КАК ФИОНаименование ИЗ РегистрНакопления.ИмяРегистра.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ИмяРегистраОбороты" Или таким (с документами без группировки по дням, аналогично твоему изначальному запросу): "ВЫБРАТЬ ИмяРегистраОбороты.ПроцентВЗарплату ИмяРегистраОбороты.Период КАК ДатаМонтажа, ИмяРегистраОбороты.Регистратор, ИмяРегистраОбороты.Физлицо.Наименование КАК ФИОНаименование ИЗ РегистрНакопления.ИмяРегистра.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ИмяРегистраОбороты" И, когда есть регистр, то тебе пофиг, сколько ещё документов будут в него писать - отчет переделывать не придется. Регистры для этого и придуманы. |
|||
2
Ayatori
09.06.16
✎
07:17
|
(1) Спасибо большое, переписал запрос, следуя рекомендациям - документы попадают в отчет, только строчка почему-то пустая:
http://screencast.com/t/XXuADLuL6 Причем по клику открывается нужный документ, как должно быть, и дата попадает в требуемый диапазон, но в отчете не прописывается, не подскажете, куда заглянуть? |
|||
3
Ayatori
09.06.16
✎
08:22
|
(1) Поправил, поля с датами назывались по-разному, теперь все отлично, спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |