Имя: Пароль:
1C
 
Вопрос по программной навигации по отчету
0 NaRaz
 
23.11.20
12:13
Всем привет.

Вопрос:
Есть отчет типа

СчетУчета
ПоказательУр2    ОборотУр2
ДетальныеЗаписи  ОборотДетЗаписи

Когда пользователь нажимает 2 раза на поле ОборотДетЗаписи нужно сделать расшифровку, нужно ОСВ по Счету, как понять в группировке какого счета делать расшифровку?
1 RomanYS
 
23.11.20
12:15
(0) Нужно иметь нужные ключевые поля в значении расшифровки ячейки. Отчет кодом выводится(не СКД)?
2 NaRaz
 
23.11.20
12:18
(1) Отчет на СКД, но кнопка сформировать уже не типовая.
3 RomanYS
 
23.11.20
12:27
(2) По СКД отдельная тема, гугли "расшифровка в СКД". Там специальный объект есть типа "ДанныеРасшифровки" (не точно)
4 NaRaz
 
24.11.20
10:43
Да, все верно, расшифровка скд есть, еще офигенная статья:
https://wiki.programstore.ru/obrabotka-rasshifrovki-v-skd/
5 NaRaz
 
24.11.20
11:42
задача неного изменилась, теперь надо обратиться не только к счету учета, тут я сделал, как для родителя, а надо при нажатии на ОборотДетЗаписи и расшифровке обратиться к ДетальныеЗаписи.Поле1. Секс с мозгом приобретает 50 оттенков серого
6 NaRaz
 
24.11.20
11:46
Что бы поменьше троллинга было:

СчетУчета
Поле 2                           ОборотУр2
Контрагент  Договор              ОборотДетЗаписи

Т.е. при расшифровке я получаю ОСВ по счету в группировке, это все ок, но мне надо еще выдернуть в отбор для ОСВ контрика и его договор. Кто сталкивался с этим или знает как это сделать?
7 RomanYS
 
24.11.20
11:48
(6) разве этого в (4) нет?
8 NaRaz
 
24.11.20
11:53
(7) вопрос филосовский, кажется, что есть, но если делать по ветке описанной в "Произвольная обработка расшифровки 1С СКД", то можно обратить внимание на:

Функция ПолучитьДоступноеПолеПоПолюКомпоновкиДанных(ПолеКомпоновкиДанных, ОбластьПоиска) Экспорт

    Если ТипЗнч(ПолеКомпоновкиДанных) = Тип("Строка") Тогда

        ПолеПоиска = Новый ПолеКомпоновкиДанных(ПолеКомпоновкиДанных);

    Иначе

        ПолеПоиска = ПолеКомпоновкиДанных;

    КонецЕсли;

    Если ТипЗнч(ОбластьПоиска) = Тип("КомпоновщикНастроекКомпоновкиДанных")

        ИЛИ ТипЗнч(ОбластьПоиска) = Тип("ДанныеРасшифровкиКомпоновкиДанных")

        ИЛИ ТипЗнч(ОбластьПоиска) = Тип("НастройкиВложенногоОбъектаКомпоновкиДанных") Тогда

        Возврат ОбластьПоиска.Настройки.ДоступныеПоляВыбора.НайтиПоле(ПолеПоиска);

    Иначе

        Возврат ОбластьПоиска.НайтиПоле(ПолеПоиска);

    КонецЕсли;

КонецФункции

Функция ДобавитьРодителей(ЭлементРасшифровки, ТекущийОтчет, МассивПолейРасшифровки, ВключатьРесурсы = Ложь) Экспорт

    Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда

        Для каждого Поле Из ЭлементРасшифровки.ПолучитьПоля() Цикл

            ДоступноеПоле = ПолучитьДоступноеПолеПоПолюКомпоновкиДанных(Новый ПолеКомпоновкиДанных(Поле.Поле), ТекущийОтчет);

            Если ДоступноеПоле = Неопределено Тогда

                Продолжить;

            КонецЕсли;

            Если Не ВключатьРесурсы И ДоступноеПоле.Ресурс Тогда

                Продолжить;

            КонецЕсли;

            МассивПолейРасшифровки.Добавить(Поле);

        КонецЦикла;

    КонецЕсли;

    Для каждого Родитель Из ЭлементРасшифровки.ПолучитьРодителей() Цикл

        ДобавитьРодителей(Родитель, ТекущийОтчет, МассивПолейРасшифровки, ВключатьРесурсы);

    КонецЦикла;

КонецФункции

И тут мы видим, что оно развернет по полю, выбранном на форме отчете + его родителей, а вот то о чем я пишу в (6) нету
9 NaRaz
 
24.11.20
12:25
тут косяк в том, что ЭлементРасшифровки.ПолучитьПоля() воозвращает только данные по ОборотДетЗаписи
10 Вафель
 
24.11.20
12:26
ЭлементРасшифровки.ПолучитьРодителя() или что-то подобное
11 NaRaz
 
24.11.20
12:28
ЭлементРасшифровки.ПолучитьРодителя() - возвращает Поле 2. Не могу до контрика достучаться. Как то надо поля элемента заполнить
12 NaRaz
 
24.11.20
12:33
ЭлементРасшифровкиКомпоновкиДанныхПоля (DataCompositionFieldDetailsItem)
Свойства:
Идентификатор (ID)
ОсновноеДействие (MainAction)
Методы:
ПолучитьПоля (GetFields)
ПолучитьРодителей (GetParents)
Описание:
Элемент расшифровки, содержащий значения полей.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер).
Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data-composition-system/details}. Имя типа XDTO: DetailsItemFields.
Использование в версии:
Доступен, начиная с версии 8.1.
     Методическая информация

Но тут нет ничего про добавить. Блиииин, косяк
13 NaRaz
 
24.11.20
12:45
Все? Блин неужели на мисте остались только ветки про украину и белорусь? Прогеры, ау?
14 NaRaz
 
24.11.20
16:21
В общем, кто столкнется, пишите, [email protected] за $$$ подскажу некрасивый рабочий вариант. А всем кто дал подсказку спасибо, кто знал и не подсказал, тому ваще респект, я теперь в СКД лучше разбираться стал.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший