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


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

Дублировать колонки табличной части

Дублировать колонки табличной части
Я
   ac13
 
01.08.18 - 11:25
Есть табличная часть "Таблица". В ней колонка - "Номенклатура".
Если выбрать один склад, то в таблицу добавляется колонка "Остаток" с остатками по товарам для этого склада. Если выбрать три склада, то в таблицу должно добавиться три колонки Остатков для каждого склада.
Как такое реализовывается?
 
 
   Sergei_vasil
 
1 - 01.08.18 - 11:25
(0) Кодом написанным в конфигураторе.
   Михаил Козлов
 
2 - 01.08.18 - 11:26
Это не колонки ТЧ дублируются, а колонки табличного поля.
   ac13
 
3 - 01.08.18 - 11:27
(1) ну это понятно.
Может кто знает примеры типовых объектов где можно наглядно посмотреть?
   Малыш Джон
 
4 - 01.08.18 - 11:27
(0) в табличную часть колонки ты не добавишь

а в табличное поле - именно так и реализуется, как ты описал
   ac13
 
5 - 01.08.18 - 11:28
(4) а имена этих колонок? типа Остаток1, Остаток2 и т.д.?
   ac13
 
6 - 01.08.18 - 11:29
да, у меня не табличная часть, а как раз табличное поле на форме обработки
   Малыш Джон
 
7 - 01.08.18 - 11:30
(5)что "имена"? тебе подсказать, как сформировать строку из слова "Остаток" и номера добавляемой колонки?
   Sergei_vasil
 
8 - 01.08.18 - 11:30
(6) А в чем вопрос? Тебе готовый код?
   AneJIbcuH
 
9 - 01.08.18 - 11:32
(0) ОФ или УФ ?
   ac13
 
10 - 01.08.18 - 11:34
(8) нет, с кодом сам разберусь
хочу понять алгоритм
вот есть у меня Склад1, Склад2 и Склад3
для каждого из складов добавил колонки Остаток1, Остаток2 и Остаток3.
и потом просто если Склад1, то заполнять остатки в колонку Остаток1, если Склад2, то остатки в колонку Остаток2 и всё?
 
 Рекламное место пустует
   ac13
 
11 - 01.08.18 - 11:34
(9) оф
   ac13
 
12 - 01.08.18 - 11:37
я думал всё это можно сделать "одной строкой" быстро и красиво
   Sergei_vasil
 
13 - 01.08.18 - 11:40
(12) Кнопка "Сделать все!" тебе в помощь.
   ac13
 
14 - 02.08.18 - 13:54
Добавил колонки, когда добавляю новые строки, значения колонок не заполняются. Чего не хватает?


НомерКолонки  = 0;

Для каждого ЗначениеСклад из СписокСкладов Цикл
     НомерКолонки = НомерКолонки + 1;
     НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить("ОстатокСклад"+Строка(НомерКолонки), "Остаток");
     НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));
     НоваяКолонка.Данные = "ОстатокСклад"+Строка(НомерКолонки);
     НоваяКолонка.ЭлементУправления.ТипЗначения = Новый ОписаниеТипов("Число");
КонецЦикла;
   hhhh
 
15 - 02.08.18 - 14:01
(14) колонки ты добавил для отображения данных. А сами данные добавить забыл. Поэтому пусто там.
   ac13
 
16 - 02.08.18 - 14:05
Данные добавляю так:

НомерСклада = 0;

Для каждого ЗначениеСклад из СписокСкладов Цикл
     НомерСклада = НомерСклада + 1;
     НоваяСтрока = ТаблицаюДобавить();
     НоваяСтрока["ОстатокСклад"+Строка(НомерСклада)] = 1;
КонецЦикла;

На что мне выдает, что поле ОстатокСклад1 не обнаружено
   hhhh
 
17 - 02.08.18 - 14:10
(16) ну значит ты забыл в Таблица добавить эту колонку. В ЭлементыФормы добавил, а в саму таблицу нифига.

поэтому читай (4)

"в табличную часть колонки ты не добавишь"
   ac13
 
18 - 02.08.18 - 14:15
(17) У меня не табличная часть, а табличное поле на форме
   Kondarat
 
19 - 02.08.18 - 14:16
(18) У табличного поля тоже есть источник данных.
   ac13
 
20 - 02.08.18 - 14:19
Хорошо, тогда я значит не понимаю как добавить колонки в эту таблице. Этот метод неверный?

НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить("ОстатокСклад"+Строка(НомерКолонки), "Остаток");
     НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));
     НоваяКолонка.Данные = "ОстатокСклад"+Строка(НомерКолонки);
     НоваяКолонка.ЭлементУправления.ТипЗначения = Новый ОписаниеТипов("Число");
   Kondarat
 
21 - 02.08.18 - 14:21
(20) Ну глянь тип реквизита "Таблица". Думаю, что это ТаблицаЗначений. Нет?
   ac13
 
22 - 02.08.18 - 14:24
(21) Да
   s03
 
23 - 02.08.18 - 14:25
(22) вот и отлично, а в эту ТЗ ты колонки добавил?
   ac13
 
24 - 02.08.18 - 14:43
(23) (21) всё понял, спасибо
   ac13
 
25 - 02.08.18 - 17:05
А вот для таких добавленных колонок можно прописать процедуру "ПриИзменении"?
   s03
 
26 - 02.08.18 - 17:07
(14) вот здесь добавь назначение обработчика
   ac13
 
27 - 02.08.18 - 17:17
(26) спасибо!

ЭлементыФормы.Таблица.Значение.Колонки[ИмяКолонки1].ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("ОбработчикПриИзменении"));

Процедура ОбработчикПриИзменении()

     Сообщить("111");

КонецПроцедуры
   ac13
 
28 - 02.08.18 - 17:32
Всё работает, только при добавлении колонок ошибку выдает:

Ошибка при вызове метода контекста (УстановитьДействие)
            ЭлементыФормы.Таблица.Колонки[ИмяКолонки1].ЭлементУправления.УстановитьДействие("ПриИзменении", "ОбработчикПриИзменении");
по причине:
Несоответствие типов (параметр номер '2')
   s03
 
29 - 02.08.18 - 17:34
(28) а разница с (27), где работает заметна?
   ac13
 
30 - 02.08.18 - 17:40
(29) там другая ошибка:

{Обработка.ОбработкаСозданияТоварнойМатрицы.Форма.Форма.Форма(1426)}: Ошибка при вызове метода контекста (УстановитьДействие)
            ЭлементыФормы.Таблица.Колонки[ИмяКолонки1].ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("ОбработчикПриИзменении"));
по причине:
Процедура, указанная в качестве обработчика события, имеет неверное количество параметров
   s03
 
31 - 02.08.18 - 17:42
(30) Правильно, потому что там должен быть параметр, один это точно (это по памяти).
   s03
 
32 - 02.08.18 - 17:43
(30) Если ты обработчик не для программно добавленной колонки добавишь, там что будет? Вот такой же параметр/параметры и в свою процедуру добавь
   hhhh
 
33 - 02.08.18 - 17:43
(30) ну сделайте ей верное количество параметров. Это дело 5 минут. Даже простым перебором, ставишь по очереди от одного параметра до пяти.
 
 
   aleks_default
 
34 - 02.08.18 - 17:55
Если у тебя ограниченное количество складов, то можно просто сразу добавить максимальное количество колонок, а потом просто рулить их видимостью.
Так проще чем добавлять/удалять реквизиты формы.


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