Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

В коллекцию доступных полей компоновки данных попадают "лишние поля"

В коллекцию доступных полей компоновки данных попадают  "лишние поля"
Я
   kovalev_oleg
 
26.01.21 - 12:00
Бухгалтерия
В коллекцию доступных полей компоновки данных попадают кроме реквизитов справочника "Организации".  
еще и реквизиты связанные по дополнительным характеристикам объектов метаданных

Подскажите кто сталкивался, как сделать чтобы попадали только реквизиты справочника без связи по доп характеристикам ?

Картинка
https://ibb.co/CvNCvSy
https://ibb.co/61X1RRx
   ДенисЧ
 
1 - 26.01.21 - 12:04
Автозаполнение убери и руками добавляй то, что нужно
   kovalev_oleg
 
2 - 26.01.21 - 13:43
(1) Не корректно сформулировал вопрос
все формируется программно, формы нет.

    
    ОбъектВыбораЗначение="РегистрыНакопления";
    ОбъектВыбора="АвансовыеПлатежиИностранцевПоНДФЛ";
    
    
    СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
    НовыйИсточник = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
    НовыйИсточник.Имя = "ИсточникДанных1";
    НовыйИсточник.ТипИсточникаДанных = "Local";
    
    НовыйНаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
    НовыйНаборДанных.ИсточникДанных = "Local";
    
    НовыйНаборДанных.Имя = "Основной";
    НовыйНаборДанных.ИмяОбъекта = "Основной";     
    НовыйНаборДанных.ИсточникДанных = "ИсточникДанных1";
    
    ТаблицаМетаданных.Очистить();
    
        
    Для Каждого ОбъектМетаданных Из Метаданные[ОбъектВыбораЗначение][Строка(ОбъектВыбора)].Измерения Цикл
        
        НоваяСтрока = ТаблицаМетаданных.Добавить();
        
        НоваяСтрока.ИмяРеквизита = ОбъектМетаданных.Имя;
        НоваяСтрока.СинонимРеквизита = ОбъектМетаданных.Синоним;
        НоваяСтрока.ОписаниеТипов = ИсключитьНедопустимыеТипы(ОбъектМетаданных.Тип); 
        НоваяСтрока.ОбъектМетаданных = ОбъектВыбораЗначение;
        
        
    КонецЦикла;
    
    
    
    Для Каждого ЭлементРеквизит Из ТаблицаМетаданных Цикл
        
        ИмяРеквизита=СтрЗаменить(ЭлементРеквизит.ИмяРеквизита,".","*$");
        //ИмяРеквизита=ЭлементРеквизит.ИмяРеквизита;

        
        НовоеПолеНабораДанных = НовыйНаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
        НовоеПолеНабораДанных.Заголовок = ЭлементРеквизит.СинонимРеквизита;
        
        
        
        НовоеПолеНабораДанных.Поле = ИмяРеквизита;
        НовоеПолеНабораДанных.ТипЗначения = ЭлементРеквизит.ОписаниеТипов;
        НовоеПолеНабораДанных.ПутьКДанным = ИмяРеквизита;
        
        Если ЭлементРеквизит.ИмяРеквизита = "ИмяТЧ" Тогда
            
            НовоеПолеНабораДанных.ОграничениеИспользования.Условие = Истина;
            НовоеПолеНабораДанных.ОграничениеИспользования.Порядок = Истина;
            
        КонецЕсли;
        
    КонецЦикла;
    
    НастройкиКомпоновки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    

        
    АдресСКД = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных,ЭтаФорма.УникальныйИдентификатор);
    
    ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСКД);
    
    Объект.Компоновщик.Инициализировать(ИсточникНастроек);
    
    Объект.Компоновщик.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
   kovalev_oleg
 
3 - 26.01.21 - 13:54
Грубо говоря  если Отбор поместить на форму то пользователю вылезает к примеру поле "Email"  которого нет в реквизитах справочника,  оно каким то образом лезет из характеристик
   Сергиус
 
4 - 26.01.21 - 14:07
(3)Как вариант, после загрузки настроек, можно сделать обход полей компоновщика и убрать лишние.
   Андроны едут
 
5 - 26.01.21 - 14:12
У компоновщика настроек есть метод Восстановить(Способ)

Вызов метода с параметром <Способ> = ПроверятьДоступность:
удалит из настроек все элементы, которые содержат поля, не доступные для текущих функциональных опций и прав.
   kovalev_oleg
 
6 - 26.01.21 - 16:30
(4) Нужно удалять уже из поля - Организация.Email поле это "Организация"  а удалять отбор надо уже из организации  
К Примеру поле Организация.Код - это существующий реквизит -ОК ,  а Организация.Email  -нет     -
если удалить Характеристики в справочнике Организации,  то конечно выводит только реквизиты,  но хочется универсальности

(5) к сожалению не удалось, все равно выводит
   LoneBull
 
7 - 26.01.21 - 16:34
(0) Если задать секцию {ХАРАКТЕРИСТИКИ  ...} в запросе то они не будут браться из метаданных.
Я так понял хочется именно этого (не понял, правда, зачем).
Можно вписать в {ХАРАКТЕРИСТИКИ  ...} какой-нибудь левый запрос и характеристик (в этом отчёте) не будет совсем.
   kovalev_oleg
 
8 - 26.01.21 - 16:39
(7) Это нужно для генерации запроса,   когда пользователь выбирает несуществующий реквизит, то возникает ошибка

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.