|
В коллекцию доступных полей компоновки данных попадают "лишние поля" | ☑ | ||
---|---|---|---|---|
0
kovalev_oleg
26.01.21
✎
12:00
|
Бухгалтерия
В коллекцию доступных полей компоновки данных попадают кроме реквизитов справочника "Организации". еще и реквизиты связанные по дополнительным характеристикам объектов метаданных Подскажите кто сталкивался, как сделать чтобы попадали только реквизиты справочника без связи по доп характеристикам ? Картинка https://ibb.co/CvNCvSy https://ibb.co/61X1RRx |
|||
1
ДенисЧ
26.01.21
✎
12:04
|
Автозаполнение убери и руками добавляй то, что нужно
|
|||
2
kovalev_oleg
26.01.21
✎
13:43
|
(1) Не корректно сформулировал вопрос
все формируется программно, формы нет. ОбъектВыбораЗначение="РегистрыНакопления"; ОбъектВыбора="АвансовыеПлатежиИностранцевПоНДФЛ"; СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных; НовыйИсточник = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить(); НовыйИсточник.Имя = "ИсточникДанных1"; НовыйИсточник.ТипИсточникаДанных = "Local"; НовыйНаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")); НовыйНаборДанных.ИсточникДанных = "Local"; НовыйНаборДанных.Имя = "Основной"; НовыйНаборДанных.ИмяОбъекта = "Основной"; НовыйНаборДанных.ИсточникДанных = "ИсточникДанных1"; ТаблицаМетаданных.Очистить(); Для Каждого ОбъектМетаданных Из Метаданные[ОбъектВыбораЗначение][Строка(ОбъектВыбора)].Измерения Цикл НоваяСтрока = ТаблицаМетаданных.Добавить(); НоваяСтрока.ИмяРеквизита = ОбъектМетаданных.Имя; НоваяСтрока.СинонимРеквизита = ОбъектМетаданных.Синоним; НоваяСтрока.ОписаниеТипов = ИсключитьНедопустимыеТипы(ОбъектМетаданных.Тип); НоваяСтрока.ОбъектМетаданных = ОбъектВыбораЗначение; КонецЦикла; Для Каждого ЭлементРеквизит Из ТаблицаМетаданных Цикл ИмяРеквизита=СтрЗаменить(ЭлементРеквизит.ИмяРеквизита,".","*$"); //ИмяРеквизита=ЭлементРеквизит.ИмяРеквизита; НовоеПолеНабораДанных = НовыйНаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); НовоеПолеНабораДанных.Заголовок = ЭлементРеквизит.СинонимРеквизита; НовоеПолеНабораДанных.Поле = ИмяРеквизита; НовоеПолеНабораДанных.ТипЗначения = ЭлементРеквизит.ОписаниеТипов; НовоеПолеНабораДанных.ПутьКДанным = ИмяРеквизита; Если ЭлементРеквизит.ИмяРеквизита = "ИмяТЧ" Тогда НовоеПолеНабораДанных.ОграничениеИспользования.Условие = Истина; НовоеПолеНабораДанных.ОграничениеИспользования.Порядок = Истина; КонецЕсли; КонецЦикла; НастройкиКомпоновки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; АдресСКД = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных,ЭтаФорма.УникальныйИдентификатор); ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД); Объект.Компоновщик.Инициализировать(ИсточникНастроек); Объект.Компоновщик.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); |
|||
3
kovalev_oleg
26.01.21
✎
13:54
|
Грубо говоря если Отбор поместить на форму то пользователю вылезает к примеру поле "Email" которого нет в реквизитах справочника, оно каким то образом лезет из характеристик
|
|||
4
Сергиус
26.01.21
✎
14:07
|
(3)Как вариант, после загрузки настроек, можно сделать обход полей компоновщика и убрать лишние.
|
|||
5
Андроны едут
26.01.21
✎
14:12
|
У компоновщика настроек есть метод Восстановить(Способ)
Вызов метода с параметром <Способ> = ПроверятьДоступность: удалит из настроек все элементы, которые содержат поля, не доступные для текущих функциональных опций и прав. |
|||
6
kovalev_oleg
26.01.21
✎
16:30
|
(4) Нужно удалять уже из поля - Организация.Email поле это "Организация" а удалять отбор надо уже из организации
К Примеру поле Организация.Код - это существующий реквизит -ОК , а Организация.Email -нет - если удалить Характеристики в справочнике Организации, то конечно выводит только реквизиты, но хочется универсальности (5) к сожалению не удалось, все равно выводит |
|||
7
LoneBull
26.01.21
✎
16:34
|
(0) Если задать секцию {ХАРАКТЕРИСТИКИ ...} в запросе то они не будут браться из метаданных.
Я так понял хочется именно этого (не понял, правда, зачем). Можно вписать в {ХАРАКТЕРИСТИКИ ...} какой-нибудь левый запрос и характеристик (в этом отчёте) не будет совсем. |
|||
8
kovalev_oleg
26.01.21
✎
16:39
|
(7) Это нужно для генерации запроса, когда пользователь выбирает несуществующий реквизит, то возникает ошибка
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |