|   |   | 
| 
 | Дублировать колонки табличной части | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Если у тебя ограниченное количество складов, то можно просто сразу добавить максимальное количество колонок, а потом просто рулить их видимостью.
 Так проще чем добавлять/удалять реквизиты формы. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |