Имя: Пароль:
1C
1С v8
Подмена данных табличного поля данными из ТЗ
0 Kuklachel
 
08.08.13
09:13
Доброе утро. Подскажите, пожалуйста, как подменить данные табличного поля, данными из ТЗ?
    
    ОбъектДокДобавитьКол = ЭлементыФормы.ТабличнаяЧастьПрогнозаФорма;
    ДВТ=новый ТаблицаЗначений;
    ДВТ = ЭтотОбъект.ТабличнаяЧастьПрогноза.Выгрузить();
    ДатаМесяц=Месяц(Двт[0].ДатаОкончания);
    Пока ДатаМесяц <= 12 Цикл
           ДатаОк="Месяц"+ДатаМесяц;
           ДВТ.Колонки.Добавить(ДатаОк) ;
          
           Для каждого строка Из ДВТ Цикл
              Если строка.ПроцентПовышенияСтавки <> 0 Тогда
                    СуммаСПроцентом = строка.СтавкаВМесяц / 100 * строка.ПроцентПовышенияСтавки + строка.СтавкаВМесяц;
                    строка[ДатаОк]= СуммаСПроцентом;
              КонецЕсли;
           КонецЦикла;
         ДатаМесяц=ДатаМесяц+1;  
     КонецЦикла;
    ЭлементыФормы.ТабличнаяЧастьПрогнозаФорма.Значение=ДВТ;
    ЭлементыФормы.ТабличнаяЧастьПрогнозаФорма.СоздатьКолонки();

Делаю вот так, но ничего не получается.
1 Defender aka LINN
 
08.08.13
09:23
Жесть какая...
2 Oleg_Kag
 
08.08.13
09:30
Гы гы...
У чела на форме есть ТЗ, не понятно связанная с чем нибудь или нет.
Он делает другую ТЗ добавляет к ней колонки.
Мало мало заполняет.
Хочет что бы теперь вместо ТЗ появилась ту что он сей час сделал. С новыми колонками...

Начнем пытать:
Вопрос Раз.
ТЗ на форме как-то связана с другими данными (ТЗ является ТЧ документа и выводится на форму документа )
Вопрос Два. Собственно как и сказано в (1) НЕ просматривается конечная цель пыток программиста.
3 Kuklachel
 
08.08.13
09:38
Она связанна с ТЧ документа. В ТЧ документа загружается результат запроса. В одной из колонок я проставляю процент повышения ставки и по кнопке добавляются колонки с суммой равные количеству месяцев от ДатаОкончания, т.е. от 1 до 12.
4 Oleg_Kag
 
08.08.13
09:45
В ТЧ документа есть колонки с названиями
"Месяц1", "Месяц2"..."Месяц12"
?
5 Kuklachel
 
08.08.13
09:47
Нет, я изначально не знаю сколько колонок у меня будет.
6 Лодырь
 
08.08.13
09:48
УФ или обычные?
7 Kuklachel
 
08.08.13
09:50
Это 8.1, обычные.
8 Лодырь
 
08.08.13
09:51
СоздатьКолонки()
9 Kuklachel
 
08.08.13
09:53
Последней строкой я это и делаю
10 Лодырь
 
08.08.13
09:56
Вопрос, а что тогда не получается? В чем это проявляется?
11 Лодырь
 
08.08.13
09:57
Может стоит задуматьтся о типизированных колонках скажем?
12 Kuklachel
 
08.08.13
09:59
На форму не добавляются нужные колонки. В ТЗ они создаются.
13 Oleg_Kag
 
08.08.13
10:09
Вопрос: НЕ создаются или НЕ заполняются?
14 Kuklachel
 
08.08.13
10:09
Именно не создаются.
15 Kuklachel
 
08.08.13
10:10
Сейчас попробую с типизированными колонками.
16 Kuklachel
 
08.08.13
10:22
Не получилось. В ЭлементыФормы.ТабличнаяЧастьПрогнозаФорма не добавляются колонки.
17 Oleg_Kag
 
08.08.13
10:42
Давай проще...
Встань в Форме на ту табличную часть (вроде называется ТабличнаяЧастьПрогноза) и напиши сюда что находится справа от слов "Тип значения" (в свойствах... что там?)
18 Kuklachel
 
08.08.13
10:45
ДокументТабличнаяЧасть.ПрогнозПоступленияДС.ТабличнаяЧастьПрогноза
19 Лодырь
 
08.08.13
10:47
Вот этот код у меня отлично отрабатывает:
В нем Табчасть - это табличнаячасть объекта
ТабличноеПоле1 - реквизит формы, и одноименный элемент управления - табличное поле на форме.

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Таб = ТабЧасть.Выгрузить();    
    
    Массив = Новый Массив;
    Массив.Добавить(Тип("Строка"));

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

Процедура ПриОткрытии()
    Для Ы = 1 По 10 Цикл
        НоваяСтрока = ТабЧасть.Добавить();
        НоваяСтрока.СтарыйРеквизит = "Строка№"+Ы;
    КонецЦикла;
    ТабличноеПоле1 = ТабЧасть.Выгрузить();
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    
КонецПроцедуры
20 cw014
 
08.08.13
10:47
Смотри как в УТ 10 установка цен номенклатуры реализовано, так и делай.
21 Oleg_Kag
 
08.08.13
10:48
(18) Держись чувак щас тебе накидают на вентилятор :)))

Короче берешь УТ 10.3 и смотришь документ УстновкаЦенНоменклатуры.
22 Лодырь
 
08.08.13
10:49
+(19)В принципе в Процедура КнопкаВыполнитьНажатие(Кнопка) создать колонки лишнее
23 Oleg_Kag
 
08.08.13
10:51
Там должно быть просто ТаблицаЗначений
24 zladenuw
 
08.08.13
10:51
(3) а не проще в результате запроса посчитать. а по кнопке просто отобразить эту колонку, не ?
25 Kuklachel
 
08.08.13
11:07
Качаю УТ, спасибо за помощь.
26 Oleg_Kag
 
08.08.13
11:10
Процедура ОсновныеДействияФормыДобКол(Кнопка)
    ДВТ = Новый ТаблицаЗначений;
    ДВТ = ТЗНаФорме.СкопироватьКолонки();
    ДатаМесяц=Месяц(ТекущаяДата());
    Пока ДатаМесяц <= 12 Цикл
        ДатаОк="Месяц"+ДатаМесяц;
        ДВТ.Колонки.Добавить(ДатаОк);
        ДатаМесяц=ДатаМесяц+1;  
    КонецЦикла;
    ЭлементыФормы.ТЗНаФорме.Значение=ДВТ;
    ЭлементыФормы.ТЗНаФорме.СоздатьКолонки();
КонецПроцедуры
27 cw014
 
08.08.13
11:16
А можно создать таблицу с чиселками глобальную и при выводе строки просто текст устанавливать
28 Kuklachel
 
08.08.13
11:53
Олег, у ТЗНаФорме нет метода СкопироватьКолонки();
29 Oleg_Kag
 
08.08.13
12:04
(28) Ну, ну... куда говоришь базу послать?
30 Kuklachel
 
08.08.13
12:04
У меня табличная часть называется: ТабличнаяЧастьПрогноза, а табличное поле на форме: ТабличнаяЧастьПрогнозаФорма, я так понял, что ТЗНаФорме == ТабличнаяЧастьПрогнозаФорма.
31 Oleg_Kag
 
08.08.13
12:08
ТабличнаяЧастьПрогнозаФорма
Так и есть.
Это ТабличноеПоле (добавлено через Вставить элемент управления) имеющее тип значения ТаблицаЗначений и имя ТЗНаФорме
32 Oleg_Kag
 
08.08.13
12:10
... а еще я ищу работу "стажера 1С", ибо капитально потерял занания :(
33 Kuklachel
 
08.08.13
13:14
Так у меня же ТабличнаяЧастьПрогнозаФорма имеет тип значения ДокументТабличнаяЧасть.ПрогнозПоступленияДС.ТабличнаяЧастьПрогноза с реквизитами
34 cw014
 
08.08.13
13:20
Развернули дискуссию...