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

Помогите отобразить колонку в динамическом списке программно

Помогите отобразить колонку в динамическом списке программно
Я
   tciban
 
06.07.20 - 15:35
Уважаемые коллеги! нужна помощь:
в конфе на поддержке понадобилось добавить пару реквизитов в документ. Теперь надо вывести их в форме списка. В расширении.
Добавил в основной конфигурации реквизиты. Добавил в расширение форму списка, в форме добавил обработчик события
ПриСозданииНаСервереПосле

в нем прописал
        Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "itilprofИнциденты.КодЗавершения,", "itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, ");

        НоваяКолонка = Элементы.Вставить("ЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.ЧисловойПриоритет";
    НоваяКолонка.Заголовок = "Приоритет(Ч)";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;

    НоваяКолонка = Элементы.Вставить("КрайнийСрок", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.КрайнийСрок";
    НоваяКолонка.Заголовок = "Крайний срок";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;

Колонки появились. Но в них не отображаются значения! Отбор меж тем работает. Добавил реквизиты в расширение - не помогло. Что я делаю не так?!
   asady
 
1 - 06.07.20 - 15:36
(0) запрос измени в расширении - в данных динамического списка нет твоих реквизитов
   tciban
 
2 - 06.07.20 - 15:37
(1) Есть! см. строку 
 Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "itilprofИнциденты.КодЗавершения,", "itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, "); 

И отбор работает!
   sitex
 
3 - 06.07.20 - 15:53
(0) Отладчиком смотрел , после выполнения кода ?
   tciban
 
4 - 06.07.20 - 15:58
А что смотреть? Строки в СписокПриПолученииДанныхНаСервереПосле посмотрел, там нет этих данных :(
   tciban
 
5 - 06.07.20 - 16:01
(4) Не, ошибся - есть там.
Строки[45].Значение.Данные.ЧисловойПриоритет    77    Число
   tciban
 
6 - 06.07.20 - 16:01
а на экране - нет :(
   asady
 
7 - 06.07.20 - 16:02
(0) конфа? релиз?, платформа?
   tciban
 
8 - 06.07.20 - 16:04
Платформа распоследняя 1С:Предприятие 8.3 (8.3.17.1496)
Чем поможет релиз и конфа - непонятно, но это 1С:ITIL Управление информационными технологиями предприятия. КОРП, редакция 1.2 (1.2.3.3)
   sitex
 
9 - 06.07.20 - 16:05
(6) может Обновить данные на форме
   asady
 
10 - 06.07.20 - 16:05
(0)     
после правки текста запроса динамического списка
УстановитьСвойстваДинамическогоСписка(Элементы.Список,СвойстваСписка);


&НаСервере
Процедура УстановитьСвойстваДинамическогоСписка(Список, СтруктураПараметров)
    
    Форма = Список.Родитель;
    ТипУправляемаяФорма = Тип("УправляемаяФорма");
    
    Пока ТипЗнч(Форма) <> ТипУправляемаяФорма Цикл
        Форма = Форма.Родитель;
    КонецЦикла;
    
    ДинамическийСписок = Форма[Список.ПутьКДанным];
    ТекстЗапроса = СтруктураПараметров.ТекстЗапроса;
    
    Если Не ПустаяСтрока(ТекстЗапроса) Тогда
        ДинамическийСписок.ТекстЗапроса = ТекстЗапроса;
    КонецЕсли;
    
    ОсновнаяТаблица = СтруктураПараметров.ОсновнаяТаблица;
    
    Если Не ПустаяСтрока(ОсновнаяТаблица) Тогда
        ДинамическийСписок.ОсновнаяТаблица = ОсновнаяТаблица;
    КонецЕсли;
    
    ДинамическоеСчитываниеДанных = СтруктураПараметров.ДинамическоеСчитываниеДанных;
    
    Если ТипЗнч(ДинамическоеСчитываниеДанных) = Тип("Булево") Тогда
        ДинамическийСписок.ДинамическоеСчитываниеДанных = ДинамическоеСчитываниеДанных;
    КонецЕсли;
    
КонецПроцедуры
   acht
 
11 - 06.07.20 - 16:06
(0) НоваяКолонка.Вид = ВидПоляФормы.ПолеНадписи;
   asady
 
12 - 06.07.20 - 16:07
(10)

СвойстваСписка = СтруктураСвойствДинамическогоСписка();
    СвойстваСписка.ОсновнаяТаблица = "Документ.itilprofИнциденты";
    СвойстваСписка.ДинамическоеСчитываниеДанных = Истина;
СвойстваСписка.ТекстЗапроса = ТекстЗапроса;
   asady
 
13 - 06.07.20 - 16:07
(10)
&НаСервереБезКонтекста
Функция СтруктураСвойствДинамическогоСписка()
    
    Возврат Новый Структура("ТекстЗапроса, ОсновнаяТаблица, ДинамическоеСчитываниеДанных");
    
КонецФункции
   tciban
 
14 - 06.07.20 - 16:08
3 варианта... А в статьях что в инете нашел все было просто, так как я и написал изначально :( Буду пробовать сейчас
   asady
 
15 - 06.07.20 - 16:13
(14) какие три варианта?

(10)+(12)+(14) это один код по кусочкам - просто получилось так
   tciban
 
16 - 06.07.20 - 16:14
(11) ПолеНадписи и так стоит по умолчанию после  Элементы.Вставить("ЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
   tciban
 
17 - 06.07.20 - 16:14
(15) Значит вариант один :)
   asady
 
18 - 06.07.20 - 16:14
(0) это из БСП если не хочешь так то попробуй вызвать код из БСП

ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(...)
   tciban
 
19 - 06.07.20 - 16:18
Не, не помогло
   asady
 
20 - 06.07.20 - 16:20
(19) выложи сюда ПриСозданииНаСерверепосле -
   tciban
 
21 - 06.07.20 - 16:23
&НаСервере
Процедура ДобавитьКолонкиНаСервере()
    Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "itilprofИнциденты.КодЗавершения,", "itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, ");
    
    СтруктураПараметров = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
    СтруктураПараметров.ТекстЗапроса = Список.ТекстЗапроса;
    СтруктураПараметров.ОсновнаяТаблица = "Документ.itilprofИнциденты";
    СтруктураПараметров.ДинамическоеСчитываниеДанных = Истина;
    
    ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, );
    
    
    НоваяКолонка = Элементы.Вставить("ЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.ЧисловойПриоритет";
    НоваяКолонка.Заголовок = "Приоритет(Ч)";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода; 

    НоваяКолонка = Элементы.Вставить("КрайнийСрок", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.КрайнийСрок";
    НоваяКолонка.Заголовок = "Крайний срок";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода; 
    
КонецПроцедуры

&НаСервере
Процедура ЦЕВПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    ДобавитьКолонкиНаСервере();
КонецПроцедуры
   tciban
 
22 - 06.07.20 - 16:27
Ну и "ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СтруктураПараметров);" конечно же
   tciban
 
23 - 06.07.20 - 16:30
вот точно что то не хватает в 
    НоваяКолонка = Элементы.Вставить("ЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.ЧисловойПриоритет";
    НоваяКолонка.Заголовок = "Приоритет(Ч)";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
   tciban
 
24 - 06.07.20 - 16:41
Может с компоновщиком что то сделать надо?
Коллеги! неужели никто такого не делал? Не поверю никак!
   hhhh
 
25 - 06.07.20 - 16:55
(23) похоже это не поле ввода, а что-то другое. Почему влруг поле ввода?
   asady
 
26 - 06.07.20 - 17:01
(21) а текст запроса кто менять будет? Пушкин?
   hhhh
 
27 - 06.07.20 - 17:12
(26) поменял же
        Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "itilprofИнциденты.КодЗавершения,", "itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, ");
   asady
 
28 - 06.07.20 - 17:16
(27) вот сдается мне что нет.
выложит тест запроса.
   tciban
 
29 - 06.07.20 - 18:26
(28) ну а почему отбор работает если не поменял текст запроса?
   tciban
 
30 - 06.07.20 - 18:27
может с компоновщиком динамического запроса что нибудь надо сделать?
 
 Рекламное место пустует
   hhhh
 
31 - 06.07.20 - 20:32
(30) всё-таки попробуйте
   НоваяКолонка.Вид = ВидПоляФормы.ПолеНадписи;


как везде, во всех списках.
   tciban
 
32 - 07.07.20 - 08:56
(31) Пробовал - не помогло. И потом я подозреваю что это ограничит возможность сортировки списка.
   acht
 
33 - 07.07.20 - 09:08
(32) Не парь мозг СтрЗаменить. Ты все равно затащил форму в расширение, сделай все по-человечески.

Там скорей всего еще структуру вывода компоновщика поправить надо, чтобы эти твои поля в доступные для выбора попали и т.п. Это все весьма неявно на галочку "Автозаполнение" и конструкции {} в запросе.
   tciban
 
34 - 07.07.20 - 09:11
(33) цитата с сайта Павла Чистова (https://expert.chistov.pro/public/1018735/)
"Но для вывода данного реквизита на форму элемента добавлять саму форму в расширение совсем не хотелось.

Во-первых добавление (заимствование) формы в расширение может привести к некоторым нежелательным эффектам, которые могут возникнуть после обновления конфигурации. Приведем немного теории.

Платформа использует сразу три формы:

    Форму из основной конфигурации
    Сохраненную форму
    Форму из расширения

Данные формы взаимодействуют между собой и в результате такого взаимодействия получается Результирующая форма, которую видит пользователь. В ходе взаимодействия указанных форм может возникнуть нежелательная ситуация, например, мы доработали форму в расширении, потом в новом релизе добавились реквизиты и они на форме не отображаются! Более подробно тут.

Во-вторых добавление формы в расширение привело бы к автоматическому добавлению всех реквизитов этого объекта и объектов метаданных (соответствующих ссылочным типам реквизитов объекта) в данное расширение, что загромождало бы само расширение и также не желательно.

Поэтому возникла задача программного создания элемента формы для добавленного реквизита в самом расширении, этому и посвящена данная публикация."

вот поэтому я должен (ТЗ такое) добавить в расширении в форму программно.
   acht
 
35 - 07.07.20 - 09:15
(34) Ну ок.
   tciban
 
36 - 07.07.20 - 09:29
Люди!
Памагитя!!!

Как сделать то требуемое?!
   asady
 
37 - 07.07.20 - 10:11
(36) выложи текст запроса
   tciban
 
38 - 07.07.20 - 10:18
Изначальный текст запроса:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    itilprofИнциденты.Номер,
    itilprofИнциденты.Дата,
    itilprofИнциденты.Ссылка,
    itilprofИнциденты.Наименование,
    itilprofИнциденты.Организация,
    itilprofИнциденты.Маршрут,
    itilprofИнциденты.ТекущийИсполнитель,
    itilprofИнциденты.Инициатор,
    itilprofИнциденты.КодЗавершения,
    itilprofИнциденты.Приоритет,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.КрайнийСрокУстранения) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.КрайнийСрокУстранения, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК КрайнийСрокУстранения,
    ВЫБОР
        КОГДА itilprofИнциденты.ТекущийЭтап.Ссылка ЕСТЬ NULL 
            ТОГДА itilprofИнциденты.КодЗавершения
        ИНАЧЕ itilprofИнциденты.ТекущийЭтап
    КОНЕЦ КАК ТекущийЭтап,
    itilprofИнциденты.Статус,
    itilprofИнциденты.Статус.Порядок,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.ДатаСоздания) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.ДатаСоздания, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК ДатаИВремяСоздания,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.ДатаЗавершения) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.ДатаЗавершения, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК ДатаИВремяЗавершения,
    itilprofИнциденты.Массовый,
    itilprofИнциденты.Ответственный,
    itilprofИнциденты.Аналитика1,
    itilprofИнциденты.Услуга,
    &ПользовательСеанса КАК ПользовательСеанса,
    ВЫБОР КОГДА itilprofИнциденты.ТекущийИсполнитель = &ПользовательСеанса И itilprofИнциденты.ТекущийЭтап <> ЗНАЧЕНИЕ(Справочник.itilprofЭтапыМаршрутов.ПустаяСсылка) ТОГДА
        Истина
    ИНАЧЕ
        Ложь
    КОНЕЦ КАК ВозможенПереход,
    ВЫБОР КОГДА itilprofИнциденты.ТекущийЭтап = itilprofИнциденты.Маршрут.КонецМаршрута ТОГДА
        Истина
    ИНАЧЕ
        Ложь
    КОНЕЦ КАК ВозможноЗакрытие
ИЗ
    Документ.itilprofИнциденты КАК itilprofИнциденты
   tciban
 
39 - 07.07.20 - 10:19
(36) Текст запроса после изменения:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    itilprofИнциденты.Номер,
    itilprofИнциденты.Дата,
    itilprofИнциденты.Ссылка,
    itilprofИнциденты.Наименование,
    itilprofИнциденты.Организация,
    itilprofИнциденты.Маршрут,
    itilprofИнциденты.ТекущийИсполнитель,
    itilprofИнциденты.Инициатор,
    itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, 
    itilprofИнциденты.Приоритет,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.КрайнийСрокУстранения) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.КрайнийСрокУстранения, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК КрайнийСрокУстранения,
    ВЫБОР
        КОГДА itilprofИнциденты.ТекущийЭтап.Ссылка ЕСТЬ NULL 
            ТОГДА itilprofИнциденты.КодЗавершения
        ИНАЧЕ itilprofИнциденты.ТекущийЭтап
    КОНЕЦ КАК ТекущийЭтап,
    itilprofИнциденты.Статус,
    itilprofИнциденты.Статус.Порядок,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.ДатаСоздания) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.ДатаСоздания, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК ДатаИВремяСоздания,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.ДатаЗавершения) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.ДатаЗавершения, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК ДатаИВремяЗавершения,
    itilprofИнциденты.Массовый,
    itilprofИнциденты.Ответственный,
    itilprofИнциденты.Аналитика1,
    itilprofИнциденты.Услуга,
    &ПользовательСеанса КАК ПользовательСеанса,
    ВЫБОР КОГДА itilprofИнциденты.ТекущийИсполнитель = &ПользовательСеанса И itilprofИнциденты.ТекущийЭтап <> ЗНАЧЕНИЕ(Справочник.itilprofЭтапыМаршрутов.ПустаяСсылка) ТОГДА
        Истина
    ИНАЧЕ
        Ложь
    КОНЕЦ КАК ВозможенПереход,
    ВЫБОР КОГДА itilprofИнциденты.ТекущийЭтап = itilprofИнциденты.Маршрут.КонецМаршрута ТОГДА
        Истина
    ИНАЧЕ
        Ложь
    КОНЕЦ КАК ВозможноЗакрытие
ИЗ
    Документ.itilprofИнциденты КАК itilprofИнциденты
   asady
 
40 - 07.07.20 - 10:19
(38) выкладывай результирующий текст запроса
   tciban
 
41 - 07.07.20 - 10:22
(40) см. (39)
   tciban
 
42 - 07.07.20 - 10:23
См. строку itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок,
   asady
 
43 - 07.07.20 - 10:31
(42)в типовых прокатывает только если в расширении
ПриСозданииНаСервереПеред()
- здесь делаем изменение запроса динамического списка
ПриСозданииНаСервереПосле()
- здесь делаем добавление колонок на форму
   tciban
 
44 - 07.07.20 - 10:33
(43) Сейчас попробуем :)
   tciban
 
45 - 07.07.20 - 10:46
не помогло :(
   asady
 
46 - 07.07.20 - 10:48
(45) в отладчике посмотри свойства (текст запроса) динамического списка в событии  После()
   tciban
 
47 - 07.07.20 - 11:16
(46) После:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    itilprofИнциденты.Номер,
    itilprofИнциденты.Дата,
    itilprofИнциденты.Ссылка,
    itilprofИнциденты.Наименование,
    itilprofИнциденты.Организация,
    itilprofИнциденты.Маршрут,
    itilprofИнциденты.ТекущийИсполнитель,
    itilprofИнциденты.Инициатор,
    itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, 
    itilprofИнциденты.Приоритет,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.КрайнийСрокУстранения) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.КрайнийСрокУстранения, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК КрайнийСрокУстранения,
    ВЫБОР
        КОГДА itilprofИнциденты.ТекущийЭтап.Ссылка ЕСТЬ NULL 
            ТОГДА itilprofИнциденты.КодЗавершения
        ИНАЧЕ itilprofИнциденты.ТекущийЭтап
    КОНЕЦ КАК ТекущийЭтап,
    itilprofИнциденты.Статус,
    itilprofИнциденты.Статус.Порядок,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.ДатаСоздания) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.ДатаСоздания, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК ДатаИВремяСоздания,
    ВЫБОР
        КОГДА ГОД(itilprofИнциденты.ДатаЗавершения) > 1
            ТОГДА ДОБАВИТЬКДАТЕ(itilprofИнциденты.ДатаЗавершения, ЧАС, &Смещение)
        ИНАЧЕ ""
    КОНЕЦ КАК ДатаИВремяЗавершения,
    itilprofИнциденты.Массовый,
    itilprofИнциденты.Ответственный,
    itilprofИнциденты.Аналитика1,
    itilprofИнциденты.Услуга,
    &ПользовательСеанса КАК ПользовательСеанса,
    ВЫБОР КОГДА itilprofИнциденты.ТекущийИсполнитель = &ПользовательСеанса И itilprofИнциденты.ТекущийЭтап <> ЗНАЧЕНИЕ(Справочник.itilprofЭтапыМаршрутов.ПустаяСсылка) ТОГДА
        Истина
    ИНАЧЕ
        Ложь
    КОНЕЦ КАК ВозможенПереход,
    ВЫБОР КОГДА itilprofИнциденты.ТекущийЭтап = itilprofИнциденты.Маршрут.КонецМаршрута ТОГДА
        Истина
    ИНАЧЕ
        Ложь
    КОНЕЦ КАК ВозможноЗакрытие
ИЗ
    Документ.itilprofИнциденты КАК itilprofИнциденты
   asady
 
48 - 07.07.20 - 11:21
(0)

новРеквизиты = новый Массив;
новРеквизиты.Добавить(новый РеквизитФормы(имяПоля,ОписаниеТипаПоля));
Форма.ИзменитьРеквизиты(новРеквизиты);

этого я не увидел у тебя
   asady
 
49 - 07.07.20 - 11:23
В твоем случае

новРеквизиты = новый Массив;
новРеквизиты.Добавить(новый РеквизитФормы("СписокЧисловойПриоритет",Новый ОписаниеТипов("Число")));
новРеквизиты.Добавить(новый РеквизитФормы("СписокКрайнийСрок",Новый ОписаниеТипов("Дата")));
Форма.ИзменитьРеквизиты(новРеквизиты);
   tciban
 
50 - 07.07.20 - 11:23
(48) а это то зачем? Реквизит список уже есть, я туда добавляю новые колонки

    НоваяКолонка = Элементы.Вставить("ЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.ЧисловойПриоритет";
    НоваяКолонка.Заголовок = "Приоритет(Ч)";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода; 

    НоваяКолонка = Элементы.Вставить("КрайнийСрок", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.КрайнийСрок";
    НоваяКолонка.Заголовок = "Крайний срок";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
   tciban
 
51 - 07.07.20 - 11:24
(50) Так во всех примерах в инете написано
   asady
 
52 - 07.07.20 - 11:25
(51) плохо читал видимо
   tciban
 
53 - 07.07.20 - 11:26
Этот код до или после добавления колонок? или вместо?
   asady
 
54 - 07.07.20 - 11:27
(53) До
   tciban
 
55 - 07.07.20 - 11:28
Вместо Форма что писать? Форма не знает этого, ругается

{РасширениеЦыбань Документ.itilprofИнциденты.Форма.ФормаСписка.Форма(19,2)}: Переменная не определена (Форма)
    <<?>>Форма.ИзменитьРеквизиты(новРеквизиты); (Проверка: Сервер)
ЭтаФорма?
   tciban
 
56 - 07.07.20 - 11:29
Вот весь текст модуля

&НаСервере
Процедура ДобавитьКолонкиНаСервере()
    
    новРеквизиты = новый Массив;
    новРеквизиты.Добавить(новый РеквизитФормы("СписокЧисловойПриоритет",Новый ОписаниеТипов("Число")));
    новРеквизиты.Добавить(новый РеквизитФормы("СписокКрайнийСрок",Новый ОписаниеТипов("Дата")));
    ЭтаФорма.ИзменитьРеквизиты(новРеквизиты);
    
    НоваяКолонка = Элементы.Вставить("ЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.ЧисловойПриоритет";
    НоваяКолонка.Заголовок = "Приоритет(Ч)";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода; 

    НоваяКолонка = Элементы.Вставить("КрайнийСрок", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.КрайнийСрок";
    НоваяКолонка.Заголовок = "Крайний срок";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода; 
    
КонецПроцедуры

&НаСервере
Процедура ЦЕВПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    ДобавитьКолонкиНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЦЕВПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка)
    Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "itilprofИнциденты.КодЗавершения,", "itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, ");
КонецПроцедуры
   tciban
 
57 - 07.07.20 - 11:34
И этот код тоже не работает!
   asady
 
58 - 07.07.20 - 11:41
(57)
НоваяКолонка = Элементы.Вставить("СписокЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
   tciban
 
59 - 07.07.20 - 11:44
(58) и это тоже не помогло
   tciban
 
60 - 07.07.20 - 11:45
вот последняя версия кода:

&НаСервере
Процедура ДобавитьКолонкиНаСервере()
    
    новРеквизиты = новый Массив;
    новРеквизиты.Добавить(новый РеквизитФормы("СписокЧисловойПриоритет",Новый ОписаниеТипов("Число")));
    новРеквизиты.Добавить(новый РеквизитФормы("СписокКрайнийСрок",Новый ОписаниеТипов("Дата")));
    ЭтаФорма.ИзменитьРеквизиты(новРеквизиты);
    
    НоваяКолонка = Элементы.Вставить("СписокЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.ЧисловойПриоритет";
    НоваяКолонка.Заголовок = "Приоритет(Ч)";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеНадписи; 

    НоваяКолонка = Элементы.Вставить("СписокКрайнийСрок", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.КрайнийСрок";
    НоваяКолонка.Заголовок = "Крайний срок";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеНадписи; 
    
КонецПроцедуры

&НаСервере
Процедура ЦЕВПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    ДобавитьКолонкиНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЦЕВПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка)
    Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, "itilprofИнциденты.КодЗавершения,", "itilprofИнциденты.КодЗавершения, itilprofИнциденты.ЧисловойПриоритет, itilprofИнциденты.КрайнийСрок, ");
КонецПроцедуры
 
 Рекламное место пустует
   tciban
 
61 - 07.07.20 - 12:05
Кстати, сейчас попробовал такое не в расширении, а прямо в конфигурации - тоже не работает!
   asady
 
62 - 07.07.20 - 12:18
(61) перед полем
Элементы.ТекущийИсполнитель это зачем?
уверен что называется так а не СписокТекущийИсполнитель
попробуй вообще без него.
   tciban
 
63 - 07.07.20 - 12:22
(62) ну вставляет то перед ним :)
   asady
 
64 - 07.07.20 - 12:24
(63) посмотри на форме как называются реквизиты динамического списка -
не сами реквизиты - а их поля на форме:
   sitex
 
65 - 07.07.20 - 12:29
(60) Попробовал прям копипастом этот код на зупе , динам сп. начисления.  Запрос только другой. все норм все выводит
   sitex
 
66 - 07.07.20 - 12:32
(47) А этот запрос ПОСЛЕ точно выводит инфу ?
   tciban
 
67 - 07.07.20 - 12:34
(64) Я смотрел когда с Добавить менял на Вставить.

(66) Я попробовал этот код прямо в конфе, не в расширении - все равно не работает!
   sitex
 
68 - 07.07.20 - 12:36
(67) ТОлько я ЦЕВПриСозданииНаСервереПеред , убрал. все в после засунул.
   sitex
 
69 - 07.07.20 - 12:40
(67) Не работает это одно. А запрос то сам данные заполненными должен выводить.
   tciban
 
70 - 07.07.20 - 13:05
(69) Посоветуй как и где это посмотреть в отладчике?
   sitex
 
71 - 07.07.20 - 13:10
(70) Запрос после изменений скопируй, и  в какую нить УФ консоль.  и увидишь есть там что в твоих колонках или нет.
А так можешь НоваяКолонка.ПутьКДанным = "Список.<сюда любой другое поле вставить>" , и должно вывести.
   tciban
 
72 - 07.07.20 - 13:16
(71) Сейас попробую. Но сдается мне в конфе какая то хитрость есть. У всех работает, во всех статьях так как делаю написано, только у меня не работает...
   tciban
 
73 - 07.07.20 - 14:53
(71) Попробовал НоваяКолонка.ПутьКДанным = "Список.<сюда любой другое поле вставить>". Выводит.
   tciban
 
74 - 07.07.20 - 15:51
Йесс!!! Нашел! Не поверите - в исходной форме списка в ПриОткрытии запрос полностью подменялся!!!

Кароче работает все в простейшей форме без всякого шаманства,

чисто 
        НоваяКолонка = Элементы.Вставить("СписокЧисловойПриоритет", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.ЧисловойПриоритет";
    НоваяКолонка.Заголовок = "Приоритет(Ч)";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеНадписи; 

    НоваяКолонка = Элементы.Вставить("СписокКрайнийСрок", Тип("ПолеФормы"), Элементы.Список, Элементы.ТекущийИсполнитель);
    НоваяКолонка.ПутьКДанным = "Список.КрайнийСрок";
    НоваяКолонка.Заголовок = "Крайний срок";
    НоваяКолонка.Вид = ВидПоляФормы.ПолеНадписи;

 просто в расширении сделал изменение запроса в ПриОткрытииПосле
   tciban
 
75 - 07.07.20 - 16:04
Всем принявшим участие - огромное спасибо!!!
Вы - лучшие!


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