|   |   | 
| 
 | Программное изменение динамического списка | ☑ | ||
|---|---|---|---|---|
| 0
    
        Wefast 04.08.23✎ 12:04 | 
        УФ.
 На форме есть динамический список. Хочу добавить в него 1 поле и вывести его на форму. Пишу: Процедура ПриСозданииНасервере(отказ, стандартнаяобработка) МойДинСписок.ТекстЗапроса = МойНовыйЗапрос(); НовКолонка = Элементы.Вставить("НовоеПоле",Тип("ПолеФормы"), Элементы.ДинСписок, Элементы.СуществующееПолеНаФорме) НовКолонка.ПутьКДанным = "МойДинСписок.НовоеПоле"; КонецПроцедуры На строке НовКолонка.ПутьКДанным = "МойДинСписок.НовоеПоле"; падает с ошибкой "Недопустимое значение" | |||
| 1
    
        Garykom 04.08.23✎ 12:24 | 
        >НовКолонка.ПутьКДанным = "МойДинСписок.НовоеПоле";
 уверен что "МойДинСписок"? | |||
| 2
    
        Garykom 04.08.23✎ 12:27 | ||||
| 3
    
        Gucci76 04.08.23✎ 13:06 | 
        А текст запроса разве не надо изменять?
 В ЗУП есть доработка динсписка для справочника сотрудников. Посмотрите как там реализовано. | |||
| 4
    
        Garykom 04.08.23✎ 13:13 | 
        (3) текст запроса он изменил
 но накой то хрен написал НовКолонка.ПутьКДанным = "МойДинСписок.НовоеПоле"; вместо НовКолонка.ПутьКДанным = "Список.НовоеПоле"; мог бы сам догадаться по аналоги и с программным добавлением элементов формы для объектов, там "Объект.НовоеПоле" | |||
| 5
    
        Wefast 04.08.23✎ 13:38 | 
        Да, пример то писал от руки, поэтому опечатки могут быть.
 Не помогло по ссылке В итоге такой код: &НаСервере Процедура ZUP_ПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка) Список.ТекстЗапроса = НовыйТекстЗапросаДинамическогоСпискаСписок(); Список.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное); НовЭлемент = ЭтаФорма.Элементы.Вставить("Премия", Тип("ПолеФормы"), Элементы.Список, Элементы.СписокФОТ); НовЭлемент.Вид = ВидПоляФормы.ПолеНадписи; НовЭлемент.ПутьКДанным = "Список.Премия"; НовЭлемент.Заголовок = "Премия"; КонецПроцедуры https://forum.infostart.ru/forum9/topic187815/?ysclid=lkwg5u3c5n382289636 - тут пишут, что у ДинСписка должна стоять галка "Использовать всегда". Попробую, но теряется тогда весь смысл, я не хотел править что либо на форме. В отладке в Список.КомпоновщикНастроек.Поля - нет моего поля. Думаю может в этом еще дело. | |||
| 6
    
        Гипервизор 04.08.23✎ 13:41 | 
        (3) Ну если надо , например, вывести реквизит ссылки, которая и так есть в запросе ДС, так зачем править запрос? ПутьКДанным = "Список.Ссылка.Реквизит" и готово.     | |||
| 7
    
        Wefast 04.08.23✎ 13:43 | 
        (6) нет, добавлено левое соединение с другим источником и вывод поля из этого источника.     | |||
| 8
    
        Garykom 04.08.23✎ 13:57 | ||||
| 9
    
        Wefast 04.08.23✎ 14:26 | 
        В общем если поставить у дин списка галочку "Автозаполнение доступных полей" то работает такой вариант:
 Список.ТекстЗапроса = НовыйТекстЗапросаДинамическогоСпискаСписок(); НовЭлемент = ЭтаФорма.Элементы.Вставить("Премия", Тип("ПолеФормы"), Элементы.Список, Элементы.СписокФОТ); НовЭлемент.Вид = ВидПоляФормы.ПолеНадписи; Надо будет поискать как это обойти | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |