![]() |
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) Это нужно для генерации запроса, когда пользователь выбирает несуществующий реквизит, то возникает ошибка |
|
Список тем форума |