Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Расшифровка по полю, которого нет
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
bolobol
Бодрого бремени суток! Есть вопрос:

В СКД собран отчёт по сотрудникам, вывод которого настроен в закладке СКД "Настройки" как детальные записи.
Отчёт вида:
Фамилия | Имя | Отчество | Данные нужные | Данные контрольные

Понятно, что ФИО выбирается из регистра сведений физического лица, но расшифровка требуется как элемента справочников Физические лица и Сотрудники, на выбор.
Но как расшифровать текстовые поля элементами, которые даже в отчёт не выводятся - ума не приложу.

Хелп!
Vofka
В поле, которое Фамилия выберайте ФизЛицо, а в настройках СКД, на первой вкладке (Наборы данных) в представлении укажите ФизЛицо.Фамилия.
bolobol
У Физического лица нет Фамилии. Есть запись в регистре сведений для Физического лица его ФИО.

Т.е. структура как в ЗУП:
Спр.ФизЛица
Спр.Сотрудники:Рекв.ФизЛицо_Спр.ФизЛица
РегСв.ФИОФизЛиц:Изм.ФизЛицо_Спр.ФизЛица, Рес.(Ф,И,О)_строка
Vofka
bolobol, один фиг. В представлении выбераете поле РегСв.ФИОФизЛиц.Фамилия.
bolobol
++
Замена представления успешно отрабатывается, но при такой реализации перестаёт работать сортировка и отбор по фамилии, работает по объекту, а не по представлению.

И вторая часть задачи не решается этим: при расшифровке (на выбор) предложить открытие объекта справочника Сотрудники или Физические лица

Как с этим быть?
Vofka
Цитата(bolobol @ 22.07.13, 12:07) необходимо зарегистрироваться для просмотра ссылки
Замена представления успешно отрабатывается, но при такой реализации перестаёт работать сортировка и отбор по фамилии, работает по объекту, а не по представлению.

А вы не обратили внимание, что строкой ниже есть поле Выражение упорядочивания? Название не на что не намекает?

Цитата(bolobol @ 22.07.13, 12:07) необходимо зарегистрироваться для просмотра ссылки
И вторая часть задачи не решается этим: при расшифровке (на выбор) предложить открытие объекта справочника Сотрудники или Физические лица

Это уже на уровне компоновки не сделать, надо программировать. Подобные вопросы на форуме обсуждались, попробуйте поискать.
bolobol
Да. Упорядочивание работает. А фильтр по фамилии?

А насчёт "на уровне компоновки" - это ясно, т.к. выбор Обработкой расшифровки дополняется - это понятно. Не понятно, почему в доступных данных ОбработкиРасшифровки есть только выводимые пользователю поля, а ссылки, которые не выводятся - отсутствуют. И вот как вытащить из результатов выполнения запроса не выведенные в отчёт ссылки - тут-то и вопрос. И, не понятно, если подменить ссылку на ФизЛицо представлением Фамилией, а ссылку на Сотрудника представлением Имени, то будет ли в Обработке расшифровки доступны ссылки?
Vofka
Цитата(bolobol @ 22.07.13, 13:11) необходимо зарегистрироваться для просмотра ссылки
Да. Упорядочивание работает. А фильтр по фамилии?

Перед тем как писать - надо было потрудиться и попробовать работает ли фильтр. Забегая наперед сообщу, что работает. Пожалуйста, кстати.

Цитата(bolobol @ 22.07.13, 13:11) необходимо зарегистрироваться для просмотра ссылки
Не понятно, почему в доступных данных ОбработкиРасшифровки есть только выводимые пользователю поля, а ссылки, которые не выводятся - отсутствуют.

Дальше телепатировать не могу.
bolobol
Цитата(Vofka @ 22.07.13, 12:32) необходимо зарегистрироваться для просмотра ссылки
Перед тем как писать - надо было потрудиться и попробовать работает ли фильтр. Забегая наперед сообщу, что работает. Пожалуйста, кстати.

Так не томите! Расскажите же КАК? Как заставить его по умолчанию фильтровать по Фамилии, а не по Ссылке, которую заменяет представлением Фамилия?

ОФФ: Один мой знакомый струбциной загонял тормозной поршень в суппорт - суппорт разорвало. А он очень "трудился". Модель была немецкая - поршень закручивающийся. Мораль: трудиться с нужным вектором правильно, иначе это деструкция или "мартышкин труд"))

---
По второй части - я ещё не проверил, какие данные выдаются СКД-ой при замене Представления в ДанныеРасшифровки (их я обозвал "доступные данные")
Vofka
Цитата(bolobol @ 22.07.13, 14:30) необходимо зарегистрироваться для просмотра ссылки
Так не томите! Расскажите же КАК? Как заставить его по умолчанию фильтровать по Фамилии, а не по Ссылке, которую заменяет представлением Фамилия?

Если сделать всё, что выше написано - то у меня фильтрует именно по фамилии.

Цитата(bolobol @ 22.07.13, 14:30) необходимо зарегистрироваться для просмотра ссылки
По второй части - я ещё не проверил, какие данные выдаются СКД-ой при замене Представления в ДанныеРасшифровки (их я обозвал "доступные данные")

Ну так зачем вы тогда задаете вопросы, не убедившись в их целесообразности?
bolobol
Цитата(Vofka @ 22.07.13, 13:40) необходимо зарегистрироваться для просмотра ссылки
Если сделать всё, что выше написано - то у меня фильтрует именно по фамилии.

А у меня в Отфильтровать и Офирмить пишет "Фамилия = Иванов Иван Иваныч", т.е. по ссылке фильтрует... Хелп!!

Вторая часть Марлезонского балета чуть сложна была мне для написания, хотел убедиться что не напрасно оно будет, уж простите - когда решения вот так на раз подсказывают - всё захапать сразу хочется))

Страшно подходить к навороченной системе, а после обуча - кашка в голове!

В заключении вопроса (задача решена, все довольны, а я разбираюсь с тонкостями) - Вам все премного благодарны за оперативную (доходчивую) помощь! (Ща проплюсую везде)


-------------
Вторая часть балета, кстати, выглядит так (может прокомментируете)):

    Перем ВыполненноеДействие;
    СтандартнаяОбработка=Ложь;
    ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    ДополнительныеДействия=Новый СписокЗначений;
    ДополнительныеДействия.Добавить("ОткрытьФЛ","Открыть карточку Физ.лица"); // добавляем свое действие
    ДополнительныеДействия.Добавить("ОткрытьСотр","Открыть карточку Сотрудника"); // добавляем свое действие
    Настройки=ОбработкаРасшифровки.Выполнить(Расшифровка,ВыполненноеДействие,,ДополнительныеДействия);
    Если Настройки<>Неопределено Тогда
        КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
        ЭлементыФормы.Результат.Очистить();
        СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);
    Иначе
        ИД0= новый ИдентификаторРасшифровкиКомпоновкиДанных(0);
        Для каждого ЭлСтр из ДанныеРасшифровки.Элементы Цикл
            Если ЭлСтр.Идентификатор= ИД0 Тогда
                продолжить;
            КонецЕсли;
            Если ВыполненноеДействие="ОткрытьФЛ" И ЭлСтр.ПолучитьПоля()[0].Поле = "_3Имя" тогда
                ЭлСтр.ПолучитьПоля()[0].Значение.ПолучитьФорму().Открыть();
                прервать;
            ИначеЕсли ВыполненноеДействие="ОткрытьСотр" И ЭлСтр.ПолучитьПоля()[0].Поле = "_4Отчество" тогда
                ЭлСтр.ПолучитьПоля()[0].Значение.ПолучитьФорму().Открыть();
                прервать;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
Vofka
Цитата(bolobol @ 22.07.13, 15:09) необходимо зарегистрироваться для просмотра ссылки
А у меня в Отфильтровать и Офирмить пишет "Фамилия = Иванов Иван Иваныч", т.е. по ссылке фильтрует... Хелп!!

Вариант 2: а собственно, если у вас есть в запросе поле Фамилия, так отбирайте в отборе по нему.

Цитата(bolobol @ 22.07.13, 15:09) необходимо зарегистрироваться для просмотра ссылки
Вторая часть балета, кстати, выглядит так (может прокомментируете)):

Деталей построения вашего отчета я не знаю, поэтому тут что-то комментировать не возьмусь. Работает - да и хорошо smile.gif .
bolobol
Цитата(Vofka @ 22.07.13, 14:29) необходимо зарегистрироваться для просмотра ссылки
Вариант 2: а собственно, если у вас есть в запросе поле Фамилия, так отбирайте в отборе по нему.


Да, через кнопку "Дополнительно":
Отфильтровать:
Фамилия = Иванов Иван Иваныч
Дополнительно
позволяет выбрать любое поле, но пользователи этому не внемлят. Типа: "Я ткнула в фамилию, зачем мне дополнительно выбирать, что отфильтровать нужно именно по фамилии?"
А в дополнительно - там видно, что подставляется Ссылка, что для расшифровки отрабатывает. Сортировка явно указана в СКД по какому именно полю, а Отбор и Оформление так и остались по ссылке.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.