Группа: Пользователи
Сообщений: 80
Спасибо сказали: 3 раз
Рейтинг: 0
Всем здравия!
Самописная конфигурация. Версия 1С 8.2, режим "Управляемое приложение".
1. Есть справочники: "Проекты" - иерархия групп и элементов, "ЧастиПроекта" - владелец "Проекты".
2. Документ "Платеж". В табличной части "Операции" документа "Платеж" установлен реквизит "Проект" составного типа: СправочникСсылка.Проекты, СправочникСсылка.ЧастиПроекта. При проведении реквизит "Проект" заносится в регист бухгалтерии "ЖурналОпераций"."Субконто1". Не указываю подробного описания по связи "ЖурналаОпераций" с "Планом счетов" и "Планом видов характеристик", т.к. это не важно - суть в следующем.
3. Создал отчет "СостояниеПроектов". 3.1. Запрос:
ВЫБРАТЬ ТАБ_Обороты.Субконто1 КАК Проект, ТАБ_Обороты.СуммаОборот ИЗ РегистрБухгалтерии.ЖурналОпераций.Обороты КАК ТАБ_Обороты
В данном отчете "Проекты" в иерархии как и должно быть отображаются нормально. Хочется и "ЧастиПроекта" отобразить в иерархии. Иерархию для них нужно построить к "Владелец", который является элементом "Проекты".
Группа: Пользователи
Сообщений: 80
Спасибо сказали: 3 раз
Рейтинг: 0
Цитата(TipsyKID @ 08.07.15, 13:26)
Попробую включить телепата :
ВЫБРАТЬ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Спасибо за подсказанное решение. Пошел по этому пути.
Наваял следующее (код из реальной конфигурации содержит еще префиксы к объектам):
// ВЫБРАТЬ "Проекты"-родители для "Части проекта" ВЫБРАТЬ ТАБ_Владельцы.Субконто1.Владелец КАК Проект, ТАБ_Владельцы.Субконто1.Владелец.Родитель КАК Родитель, ТАБ_Владельцы.СуммаОборот ИЗ РегистрБухгалтерии.Фин_Отч_ЖурналОпераций.Обороты КАК ТАБ_Владельцы ГДЕ ТАБ_Владельцы.Субконто1 ССЫЛКА Справочник.НИС_Спр_Пр_ЧастиПроекта
ОБЪЕДИНИТЬ ВСЕ
// ВЫБРАТЬ "Части проекта" с привязкой к "Проекты"-родители ВЫБРАТЬ ТАБ_ЧастиПроекта.Субконто1 КАК Проект, ТАБ_ЧастиПроекта.Субконто1.Владелец КАК Родитель, ТАБ_ЧастиПроекта.СуммаОборот ИЗ РегистрБухгалтерии.Фин_Отч_ЖурналОпераций.Обороты КАК ТАБ_ЧастиПроекта ГДЕ ТАБ_ЧастиПроекта.Субконто1 ССЫЛКА Справочник.НИС_Спр_Пр_ЧастиПроекта
ОБЪЕДИНИТЬ ВСЕ
// ВЫБРАТЬ просто "Проекты" ВЫБРАТЬ ТАБ_Проекты.Субконто1 КАК Проект, ТАБ_Проекты.Субконто1.Родитель КАК Родитель, ТАБ_Проекты.СуммаОборот ИЗ РегистрБухгалтерии.Фин_Отч_ЖурналОпераций.Обороты КАК ТАБ_Проекты ГДЕ ТАБ_Проекты.Субконто1 ССЫЛКА Справочник.НИС_Спр_Пр_Проекты
Ожидал, что "Части проекта" окажутся в иерархии с привязкой к своим "Проектам" но этого не произошло:
Здесь отмеченное красным должно быть в иерархии под выделенным желтым
ВЫБРАТЬ ТАБ_Владельцы.Субконто1.Владелец КАК Проект, ТАБ_Владельцы.Субконто1.Владелец.Родитель КАК Родитель, ТАБ_Владельцы.СуммаОборот ПОМЕСТИТЬ ВТ_Данные ИЗ РегистрБухгалтерии.Фин_Отч_ЖурналОпераций.Обороты КАК ТАБ_Владельцы ГДЕ ТАБ_Владельцы.Субконто1 ССЫЛКА Справочник.НИС_Спр_Пр_ЧастиПроекта
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ТАБ_ЧастиПроекта.Субконто1, ТАБ_ЧастиПроекта.Субконто1.Владелец, ТАБ_ЧастиПроекта.СуммаОборот ИЗ РегистрБухгалтерии.Фин_Отч_ЖурналОпераций.Обороты КАК ТАБ_ЧастиПроекта ГДЕ ТАБ_ЧастиПроекта.Субконто1 ССЫЛКА Справочник.НИС_Спр_Пр_ЧастиПроекта
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ТАБ_Проекты.Субконто1, ТАБ_Проекты.Субконто1.Родитель, ТАБ_Проекты.СуммаОборот ИЗ РегистрБухгалтерии.Фин_Отч_ЖурналОпераций.Обороты КАК ТАБ_Проекты ГДЕ ТАБ_Проекты.Субконто1 ССЫЛКА Справочник.НИС_Спр_Пр_ЧастиПроекта ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Проекты.Ссылка КАК Проект, ЕСТЬNULL(ВТ_Данные.Родитель, "") КАК Родитель, ЕСТЬNULL(ВТ_Данные.СуммаОборот, 0) КАК СуммаОборот ИЗ Справочник.Проекты КАК Проекты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Данные КАК ВТ_Данные ПО Проекты.Ссылка = ВТ_Данные.Проект ГДЕ НЕ ВТ_Данные.СуммаОборот ЕСТЬ NULL СГРУППИРОВАТЬ ПО Проекты.Ссылка, ЕСТЬNULL(ВТ_Данные.Родитель, """")
Сообщение отредактировал TipsyKID - 09.07.15, 9:55
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины
Группа: Пользователи
Сообщений: 80
Спасибо сказали: 3 раз
Рейтинг: 0
Цитата(TipsyKID @ 09.07.15, 11:42)
Как - то так.
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Проекты.Ссылка КАК Проект, ЕСТЬNULL(ВТ_Данные.Родитель, "") КАК Родитель, ЕСТЬNULL(ВТ_Данные.СуммаОборот, 0) КАК СуммаОборот ИЗ Справочник.Проекты КАК Проекты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Данные КАК ВТ_Данные ПО Проекты.Ссылка = ВТ_Данные.Проект ГДЕ НЕ ВТ_Данные.СуммаОборот ЕСТЬ NULL СГРУППИРОВАТЬ ПО Проекты.Ссылка, ЕСТЬNULL(ВТ_Данные.Родитель, """")
Так не будет работать: отмеченные на картинке красным записи сразу отсекуться в "ЛЕВОЕ СОЕДИНЕНИЕ", потому что они не из "Справочник.Проекты", а из "Справочник.ЧастиПроекта".
Группа: Пользователи
Сообщений: 80
Спасибо сказали: 3 раз
Рейтинг: 0
Цитата(TipsyKID @ 09.07.15, 13:19)
Поправте соединение.
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Данные КАК ВТ_Данные ПО Проекты.Ссылка = ВТ_Данные.Проект ИЛИ Проекты.Ссылка = ВТ_Данные.Родитель
Сомневался что это поможет. Проверил - так и есть: пропали записи с "Части проекта" (выделены на скриншотах отчета красным).
Тут принципиальная ошибка - попытка собрать только данные по справочнику "Проект", а нужно еще за проект выдать "Части проекта".
=========================================== Теперь про текущее состояние.
Загнал результат своего запроса (сообщение 09.07.15, 7:34) во временную таблицу. Потом выбрал данные и тип данных в полях "Проект", "Родитель":
// ВЫБРАТЬ "Проекты"-родители для "Части проекта" ВЫБРАТЬ ТАБ_Владельцы.Субконто1.Владелец КАК Проект, ТАБ_Владельцы.Субконто1.Владелец.Родитель КАК Родитель, ТАБ_Владельцы.СуммаОборот ПОМЕСТИТЬ ВТ_Данные ИЗ РегистрБухгалтерии.Фин_Отч_ЖурналОпераций.Обороты КАК ТАБ_Владельцы ... ;
// ВЫБРАТЬ Данные ВЫБРАТЬ ТипЗначения(Проект), Проект, ТипЗначения(Родитель), Родитель, СуммаОборот ИЗ ВТ_Данные
Получил следующее:
С родителями тут все в порядке. Я думаю СКД при сборе иерархии не присоединяет записи с типом "Части проекта", т.к. их тип отличается от родителей - тип "Проект".
Может можно как то преобразовать типы к какому-то универсальному, например "СправочникСсылка"?
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!