|
|
|
создание и заполнение таблицы значений на форме обработки | ☑ | ||
|---|---|---|---|---|
|
0
NIGHTHUNTER
01.10.20
✎
09:25
|
Решил спросить. А то долго уже сижу. Буду по шагам.
Есть обработка. Мне нужно создать таблицу значений на ее форме, и динамически создавать ее колонки и заполнять значениями. Все есть но вот с само таблицей на форме что то не идет. Первый вопрос, я разместить для этого на форме должен Табличное Поле? |
|||
|
1
NIGHTHUNTER
01.10.20
✎
09:59
|
у внешней обработки нет таблицы значений
таблица значений лежит на форме обработки, без колонок создаются программно и заполняются ВОПРОС. Я заполнил таблицу, создались колонки и заполнились строки. Потом нажимаю ещё раз. Нужно ее очистить, но идет ошибка. Как правильно очищать? // // ОЧИСТКА ВСЕГО ТаблицаЗагрузки.Очистить(); ТаблицаЗагрузки.Колонки.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Колонки.Очистить(); // |
|||
|
2
Ёпрст
гуру
01.10.20
✎
10:01
|
(0) ё...
|
|||
|
3
Ёпрст
гуру
01.10.20
✎
10:01
|
ТаблицаЗагрузки.Очистить();
всё |
|||
|
4
Ёпрст
гуру
01.10.20
✎
10:02
|
ЭлементыФормы.ТаблицаЗагрузки.ОбновитьСтроки() если очень надо еще потом
|
|||
|
5
NIGHTHUNTER
01.10.20
✎
10:14
|
(4)
Я делаю вот так // // ОЧИСТКА ВСЕГО ТаблицаЗагрузки.Очистить(); ТаблицаЗагрузки.Колонки.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Значение.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Значение.Колонки.Очистить(); // Но вот при повторном выполнении, когда все должно быть тоже самое, вылетает ошибка {ВнешняяОбработка.ЗагрузкаИзБП_0_2.Форма.Форма.Форма(102)}: Ошибка при вызове метода контекста (Добавить) КолонкаТаблицыНаФорме = ЭлементыФормы.ТаблицаЗагрузки.Колонки.Добавить(ИмяКолонки, ИмяКолонки); по причине: Недопустимое значение параметра (параметр номер '1') Но если вот это выполняется ОЧИСТКА ВСЕГО, то загрузка идет как и при первом нажатии, от чего такая ошибка ???? |
|||
|
6
NIGHTHUNTER
01.10.20
✎
10:17
|
Что вот это за ошибка, как ее исключить? Срабатывает при повторном выполнении!
{ВнешняяОбработка.ЗагрузкаИзБП_0_2.Форма.Форма.Форма(104)}: Ошибка при вызове метода контекста (Добавить) КолонкаТаблицыНаФорме = ЭлементыФормы.ТаблицаЗагрузки.Колонки.Добавить(ИмяКолонки, ИмяКолонки); по причине: Недопустимое значение параметра (параметр номер '1') Первый раз таблица формируется на форме. При повторном выполнении, то есть при пересоздании этой таблицы, идет ошибка, эта. |
|||
|
7
NIGHTHUNTER
01.10.20
✎
10:18
|
Полный код. При повторном нажатии идет ошибка ...
// Процедура ЗагрузитьДанныеНажатие(Элемент) // Если Не ЗначениеЗаполнено(ЭтотОбъект.ФайлЗагрузки) Тогда Предупреждение("Необходимо выбрать файл для загрузки!",2,"ЗАГРУЗКА НЕ ВОЗМОЖНА!"); Возврат; КонецЕсли; // // ОПИСЧАНИЕ ТИПОВ // КЧК = Новый КвалификаторыЧисла(15,3); КЧЦ = Новый КвалификаторыЧисла(15,2); КС = Новый КвалификаторыСтроки(200); КД = Новый КвалификаторыДаты(ЧастиДаты.Дата); // Массив = Новый Массив; Массив.Добавить(Тип("Строка")); ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС); // // ОЧИСТКА ВСЕГО ТаблицаЗагрузки.Очистить(); ТаблицаЗагрузки.Колонки.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Значение.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Значение.Колонки.Очистить(); // ЭлементыФормы.ТаблицаЗагрузки.ОбновитьСтроки(); // ТаблицаЗагрузки2 = Новый ТаблицаЗначений; // ЭтотОбъект.ФайлЗагрузки; // ЭлементыФормы.ФайлЗагрузки.Значение; ЗагружаемыйФайл = Новый ТекстовыйДокумент; ЗагружаемыйФайл.Прочитать(ЭтотОбъект.ФайлЗагрузки); Шапка = ЗагружаемыйФайл.ПолучитьСтроку(1); МассивКолонок = РазложитьСтрокуВМассивПодстрок(Шапка,Разделитель); Для Каждого ИмяКолонки Из МассивКолонок Цикл Если ИмяКолонки = "" Тогда Прервать; КонецЕсли; ИмяБезПробелов = СтрЗаменить(ИмяКолонки," ",""); // убираем из имени колонок пробелы ТаблицаЗагрузки2.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки); // ИмяКолонки = ИмяБезПробелов; КолонкаТаблицы = ТаблицаЗагрузки.Колонки.Добавить(ИмяКолонки, ОписаниеТиповС, ИмяКолонки, 30); КолонкаТаблицыНаФорме = ЭлементыФормы.ТаблицаЗагрузки.Колонки.Добавить(ИмяКолонки, ИмяКолонки); КолонкаТаблицыНаФорме.Данные = ИмяКолонки; КолонкаТаблицыНаФорме.Положение = ПоложениеКолонки.НоваяКолонка; КонецЦикла; // // 1. Номер // 2. Дата // 3. ВидОперации // 4. Организация // 5. Склад // 6. Контрагент // 7. ДоговорКонтрагента // 8. СпособЗачетаАвансов // 9. ТипЦен // 10. КурсВзаиморасчетов // 11. КратностьВзаиморасчетов // 12. СуммаВключаетНДС // 13. СчетНаОплатуПокупателю // 14. Грузоотправитель // 15. Грузополучатель // 16. АдресДоставки // 17. БанковскийСчетОрганизации // 18. СуммаДокумента // 19. Ответственный // 20. Комментарий // 21. Руководитель // 22. Номенклатура // 23. Количество // 24. Цена // 25. Сумма // 26. СтавкаНДС // 27. СуммаНДС // 28. СчетУчета // 29. СчетДоходов // 30. Субконто // 31. СчетУчетаНДСПоРеализации // 32. СчетРасходов // 33. КонтрагентИНН // 34. НоменклатураАртикул // Для НомерСтроки = 2 по ЗагружаемыйФайл.КоличествоСтрок() Цикл Строка = ЗагружаемыйФайл.ПолучитьСтроку(НомерСтроки); Если Не ЗначениеЗаполнено(Строка) Тогда Продолжить; КонецЕсли; МассивКолонок = РазложитьСтрокуВМассивПодстрок(Строка,Разделитель); // НоваяСтрока = ТаблицаЗагрузки.Добавить(); // НоваяСтрока2 = ТаблицаЗагрузки2.Добавить(); // //Если МассивКолонок.Количество() <> ЭлементыФормы.ТаблицаЗагрузки.Колонки.Количество() - 1 Тогда // Продолжить; //КонецЕсли; Для НомерКолонки = 1 по МассивКолонок.Количество() Цикл ТекущееЗначение = МассивКолонок[НомерКолонки - 1]; // ИмяКолонки = ТаблицаЗагрузки.Колонки[НомерКолонки - 1].Имя; НоваяСтрока[ИмяКолонки] = ТекущееЗначение; // ИмяКолонки = ТаблицаЗагрузки2.Колонки[НомерКолонки - 1].Имя; НоваяСтрока2[ИмяКолонки] = ТекущееЗначение; // КонецЦикла; КонецЦикла; КонецПроцедуры // |
|||
|
8
NIGHTHUNTER
01.10.20
✎
10:19
|
и я вижу что визуально
после вот этого колонки так же есть на форме, очищаются только строки // ОЧИСТКА ВСЕГО ТаблицаЗагрузки.Очистить(); ТаблицаЗагрузки.Колонки.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Значение.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Значение.Колонки.Очистить(); // |
|||
|
9
NIGHTHUNTER
01.10.20
✎
10:24
|
никто не подскажет? проблему описал в (7)(6)
|
|||
|
10
Ёпрст
гуру
01.10.20
✎
11:08
|
(9) см.(3)
|
|||
|
11
NIGHTHUNTER
01.10.20
✎
11:09
|
(10) это сделано
там программно создаются же колонки и строки |
|||
|
12
NIGHTHUNTER
01.10.20
✎
11:10
|
(10) вот же
// ОЧИСТКА ВСЕГО ТаблицаЗагрузки.Очистить(); ТаблицаЗагрузки.Колонки.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Очистить(); ЭлементыФормы.ТаблицаЗагрузки.Колонки.Очистить(); // |
|||
|
13
Ёпрст
гуру
01.10.20
✎
11:10
|
ёё.. ну выкинь добавление колонок у табличного поля, достаточно, ЭлементыФормы.ТвоёТабПоле.СоздатьКолонки() и всё
|
|||
|
14
Ёпрст
гуру
01.10.20
✎
11:10
|
+13
// ЭлементыФормы.ТаблицаЗагрузки.Очистить(); // ЭлементыФормы.ТаблицаЗагрузки.Колонки.Очистить(); |
|||
|
15
Ёпрст
гуру
01.10.20
✎
11:11
|
// КолонкаТаблицыНаФорме = ЭлементыФормы.ТаблицаЗагрузки.Колонки.Добавить(ИмяКолонки, ИмяКолонки);
// КолонкаТаблицыНаФорме.Данные = ИмяКолонки; // КолонкаТаблицыНаФорме.Положение = ПоложениеКолонки.НоваяКолонка; |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |