|
Дублировать колонки табличной части | ☑ | ||
---|---|---|---|---|
0
ac13
01.08.18
✎
11:25
|
Есть табличная часть "Таблица". В ней колонка - "Номенклатура".
Если выбрать один склад, то в таблицу добавляется колонка "Остаток" с остатками по товарам для этого склада. Если выбрать три склада, то в таблицу должно добавиться три колонки Остатков для каждого склада. Как такое реализовывается? |
|||
1
Sergei_vasil
01.08.18
✎
11:25
|
(0) Кодом написанным в конфигураторе.
|
|||
2
Михаил Козлов
01.08.18
✎
11:26
|
Это не колонки ТЧ дублируются, а колонки табличного поля.
|
|||
3
ac13
01.08.18
✎
11:27
|
(1) ну это понятно.
Может кто знает примеры типовых объектов где можно наглядно посмотреть? |
|||
4
Малыш Джон
01.08.18
✎
11:27
|
(0) в табличную часть колонки ты не добавишь
а в табличное поле - именно так и реализуется, как ты описал |
|||
5
ac13
01.08.18
✎
11:28
|
(4) а имена этих колонок? типа Остаток1, Остаток2 и т.д.?
|
|||
6
ac13
01.08.18
✎
11:29
|
да, у меня не табличная часть, а как раз табличное поле на форме обработки
|
|||
7
Малыш Джон
01.08.18
✎
11:30
|
(5)что "имена"? тебе подсказать, как сформировать строку из слова "Остаток" и номера добавляемой колонки?
|
|||
8
Sergei_vasil
01.08.18
✎
11:30
|
(6) А в чем вопрос? Тебе готовый код?
|
|||
9
AneJIbcuH
01.08.18
✎
11:32
|
(0) ОФ или УФ ?
|
|||
10
ac13
01.08.18
✎
11:34
|
(8) нет, с кодом сам разберусь
хочу понять алгоритм вот есть у меня Склад1, Склад2 и Склад3 для каждого из складов добавил колонки Остаток1, Остаток2 и Остаток3. и потом просто если Склад1, то заполнять остатки в колонку Остаток1, если Склад2, то остатки в колонку Остаток2 и всё? |
|||
11
ac13
01.08.18
✎
11:34
|
(9) оф
|
|||
12
ac13
01.08.18
✎
11:37
|
я думал всё это можно сделать "одной строкой" быстро и красиво
|
|||
13
Sergei_vasil
01.08.18
✎
11:40
|
(12) Кнопка "Сделать все!" тебе в помощь.
|
|||
14
ac13
02.08.18
✎
13:54
|
Добавил колонки, когда добавляю новые строки, значения колонок не заполняются. Чего не хватает?
НомерКолонки = 0; Для каждого ЗначениеСклад из СписокСкладов Цикл НомерКолонки = НомерКолонки + 1; НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить("ОстатокСклад"+Строка(НомерКолонки), "Остаток"); НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода")); НоваяКолонка.Данные = "ОстатокСклад"+Строка(НомерКолонки); НоваяКолонка.ЭлементУправления.ТипЗначения = Новый ОписаниеТипов("Число"); КонецЦикла; |
|||
15
hhhh
02.08.18
✎
14:01
|
(14) колонки ты добавил для отображения данных. А сами данные добавить забыл. Поэтому пусто там.
|
|||
16
ac13
02.08.18
✎
14:05
|
Данные добавляю так:
НомерСклада = 0; Для каждого ЗначениеСклад из СписокСкладов Цикл НомерСклада = НомерСклада + 1; НоваяСтрока = ТаблицаюДобавить(); НоваяСтрока["ОстатокСклад"+Строка(НомерСклада)] = 1; КонецЦикла; На что мне выдает, что поле ОстатокСклад1 не обнаружено |
|||
17
hhhh
02.08.18
✎
14:10
|
(16) ну значит ты забыл в Таблица добавить эту колонку. В ЭлементыФормы добавил, а в саму таблицу нифига.
поэтому читай (4) "в табличную часть колонки ты не добавишь" |
|||
18
ac13
02.08.18
✎
14:15
|
(17) У меня не табличная часть, а табличное поле на форме
|
|||
19
Kondarat
02.08.18
✎
14:16
|
(18) У табличного поля тоже есть источник данных.
|
|||
20
ac13
02.08.18
✎
14:19
|
Хорошо, тогда я значит не понимаю как добавить колонки в эту таблице. Этот метод неверный?
НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить("ОстатокСклад"+Строка(НомерКолонки), "Остаток"); НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода")); НоваяКолонка.Данные = "ОстатокСклад"+Строка(НомерКолонки); НоваяКолонка.ЭлементУправления.ТипЗначения = Новый ОписаниеТипов("Число"); |
|||
21
Kondarat
02.08.18
✎
14:21
|
(20) Ну глянь тип реквизита "Таблица". Думаю, что это ТаблицаЗначений. Нет?
|
|||
22
ac13
02.08.18
✎
14:24
|
(21) Да
|
|||
23
s03
02.08.18
✎
14:25
|
(22) вот и отлично, а в эту ТЗ ты колонки добавил?
|
|||
24
ac13
02.08.18
✎
14:43
|
(23) (21) всё понял, спасибо
|
|||
25
ac13
02.08.18
✎
17:05
|
А вот для таких добавленных колонок можно прописать процедуру "ПриИзменении"?
|
|||
26
s03
02.08.18
✎
17:07
|
(14) вот здесь добавь назначение обработчика
|
|||
27
ac13
02.08.18
✎
17:17
|
(26) спасибо!
ЭлементыФормы.Таблица.Значение.Колонки[ИмяКолонки1].ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("ОбработчикПриИзменении")); Процедура ОбработчикПриИзменении() Сообщить("111"); КонецПроцедуры |
|||
28
ac13
02.08.18
✎
17:32
|
Всё работает, только при добавлении колонок ошибку выдает:
Ошибка при вызове метода контекста (УстановитьДействие) ЭлементыФормы.Таблица.Колонки[ИмяКолонки1].ЭлементУправления.УстановитьДействие("ПриИзменении", "ОбработчикПриИзменении"); по причине: Несоответствие типов (параметр номер '2') |
|||
29
s03
02.08.18
✎
17:34
|
(28) а разница с (27), где работает заметна?
|
|||
30
ac13
02.08.18
✎
17:40
|
(29) там другая ошибка:
{Обработка.ОбработкаСозданияТоварнойМатрицы.Форма.Форма.Форма(1426)}: Ошибка при вызове метода контекста (УстановитьДействие) ЭлементыФормы.Таблица.Колонки[ИмяКолонки1].ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("ОбработчикПриИзменении")); по причине: Процедура, указанная в качестве обработчика события, имеет неверное количество параметров |
|||
31
s03
02.08.18
✎
17:42
|
(30) Правильно, потому что там должен быть параметр, один это точно (это по памяти).
|
|||
32
s03
02.08.18
✎
17:43
|
(30) Если ты обработчик не для программно добавленной колонки добавишь, там что будет? Вот такой же параметр/параметры и в свою процедуру добавь
|
|||
33
hhhh
02.08.18
✎
17:43
|
(30) ну сделайте ей верное количество параметров. Это дело 5 минут. Даже простым перебором, ставишь по очереди от одного параметра до пяти.
|
|||
34
aleks_default
02.08.18
✎
17:55
|
Если у тебя ограниченное количество складов, то можно просто сразу добавить максимальное количество колонок, а потом просто рулить их видимостью.
Так проще чем добавлять/удалять реквизиты формы. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |