Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Загрузка ТабличнойЧасти на управляемой форме из реквизита (ТЧ "по умолчанию").

Загрузка ТабличнойЧасти на управляемой форме из реквизита (ТЧ "по умолчанию").
Я
   bplmeddy
 
10.09.18 - 10:27
Доброго времени суток.

Интересует такой вопрос: имеется некая обработка. В ней имеется табличная часть. При работе с формой обработки, программно создаются новые колонки этой ТЧ (которые не описаны в структуре конфигурации). Есть ли возможность программно загрузить, так сказать "чистую" (та что описана в структуре) ТЧ, не затронув остальную форму (поля ввода и так далее) ? Буду очень благодарен за помощь.
 
 
   RomaH
 
1 - 10.09.18 - 10:31
да - добавив в источник данные "остальной формы"
   bplmeddy
 
2 - 10.09.18 - 10:32
(1) Имеете ввиду что все поля нужно описывать реквизитами обработки ?
   МимохожийОднако
 
3 - 10.09.18 - 10:37
(2) Да. Но твои объяснения невнятные. Вариантов реализации - куча.
   bplmeddy
 
4 - 10.09.18 - 10:42
(3) Хм, попробую так: есть управляемая форма. На ней размещены несколько полей ввода и ТЧ. В реквизитах обработки описана только ТЧ. Во время работы с формой, при некоторых условиях программно создаются колонки ТЧ. Нужно при, например нажатии кнопки, программно созданные колонки убрать, и привести ТЧ к тому виду, который описан структурой конфигурации (реквизит обработки).
   МимохожийОднако
 
5 - 10.09.18 - 10:45
(4) Расшифруй слова:"который описан структурой конфигурации (реквизит обработки)."
   МимохожийОднако
 
6 - 10.09.18 - 10:47
Можно создать все колонки в ТЧ сразу и по нужной команде играться с видимостью и доступностью
   bplmeddy
 
7 - 10.09.18 - 10:55
(5) Сама таблица создана реквизитом в обработке.
Скриншот структуры обработки: http://i.piccy.info/i9/ab6e6a6ff33dac7b439d63683ce074a5/1536566116/14130/1248074/REKV.jpg
   bplmeddy
 
8 - 10.09.18 - 11:19
Так можно как-то "загрузить" ТЧ "первозданного" вида? Возможно кто-то сталкивался уже с подобной задачей ?
   bplmeddy
 
9 - 10.09.18 - 11:29
Есть кто-нибудь ? :)
   bplmeddy
 
10 - 10.09.18 - 11:46
Людии, ау ? Спасите-помогите :)
 
 Рекламное место пустует
   Вафель
 
11 - 10.09.18 - 11:47
запоминай созданные коолнки - потом их удалишь
   bplmeddy
 
12 - 12.09.18 - 14:10
Решение:



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

        нЭлемент = Элементы.Добавить(СтрЗаменить(Кол," ",""), Тип("ПолеФормы"), Элементы.КонтрольЦен); 
        нЭлемент.Вид = ВидПоляФормы.ПолеВвода; 
        нЭлемент.ПутьКДанным = "Объект.КонтрольЦен."+СтрЗаменить(Кол," ","");    
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ВидыУстанавливаемыхЦенПриИзменении(Элемент)
    ВидыУстанавливаемыхЦенПриИзмененииНаСервере();
КонецПроцедуры

&НаСервере
Процедура УдалитьКолонки()
    МассивУдаляемыхКолонок = ЭтаФорма.ВидыУстанавливаемыхЦен.ВыгрузитьЗначения();
    
    МассивУдаляемыхРеквизитов = Новый Массив;
    Для Каждого тЭлемент из МассивУдаляемыхКолонок Цикл
        Если ЭтаФорма.Элементы.Найти(СтрЗаменить(тЭлемент," ","")) <> Неопределено Тогда
            МассивУдаляемыхРеквизитов.Добавить("Объект.КонтрольЦен."+СтрЗаменить(тЭлемент," ",""));
        КонецЕсли;
    КонецЦикла;
    
    ЭтаФорма.ИзменитьРеквизиты(, МассивУдаляемыхРеквизитов);
    
    Для Каждого тЭлемент из МассивУдаляемыхКолонок Цикл
        нЭлемент = ЭтаФорма.Элементы.Найти(СтрЗаменить(тЭлемент," ",""));
        Если нЭлемент <> Неопределено Тогда
            Элементы.Удалить(нЭлемент);
        КонецЕсли;
    КонецЦикла;    
КонецПроцедуры

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

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