Имя: Пароль:
1C
1С v8
Заполнение колонки
,
0 Учусь еще
 
14.04.12
12:05
скажите пож-та как заполнить колонку(Значение) ТП полученными значениями???
    СтрокаТаблицы=ЭлементыФормы.ТабличноеПоле1.ТекущаяКолонка;
    Для Каждого   СтрокаТаблицы Из ТабличноеПоле1 Цикл
        СтрокаТаблицы.Значение=ЗначКрит;
    КонецЦикла;
вот последний из вариантов моих извращений, все равно не получается..
1 GoldenCalf
 
14.04.12
12:10
Жесть
2 pumbaEO
 
14.04.12
12:13
ТекущиеДанные = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные;
Для каждого ЭлементСтроки из ТекущиеДанные Цикл
ЭлементСтроки.ПолеБлаБла = Значение;
КонецЕсли
3 GoldenCalf
 
14.04.12
12:15
Для Каждого СтрокаТаблицы Из ТабличноеПоле1 Цикл
   СтрокаТаблицы[ИмяКолонки] = ЗначКрит;
КонецЦикла;

Или так
ТабличноеПоле1.ЗаполнитьЗначения(ЗначКрит, "ИмяКолонки")
4 Учусь еще
 
14.04.12
12:28
да делала я уже так пишет поле объекта не обнаружено (Значение)
5 GoldenCalf
 
14.04.12
12:31
Так это как?
6 Учусь еще
 
14.04.12
12:34
все три варианта
7 GoldenCalf
 
14.04.12
12:38
Не может быть (с)
И на все три варианта одна и та же ошибка?
8 Учусь еще
 
14.04.12
12:46
нет последнее Ошибка при вызове метода контекста (ЗаполнитьЗначения)
9 experimentator76
 
14.04.12
12:46
фото где?
10 GoldenCalf
 
14.04.12
12:49
(8) так может быть нет переменной ЗначКрит?
11 Учусь еще
 
14.04.12
12:50
есть я ее вычисляю
12 Terve-R-
 
14.04.12
12:51
без фото не взлетит :)
13 Учусь еще
 
14.04.12
12:51
если через сообщиь(ЗначКрит)то она выводится
14 Учусь еще
 
14.04.12
12:52
ну не грузиться она, я пытаюсь загрузить ее, но почему старая появляется вместо новой
15 Terve-R-
 
14.04.12
12:52
у меня тоже были проблемы с заполнением колонки табличного поля, но я поставил фотку и все стало ok :0)
16 Terve-R-
 
14.04.12
12:53
(14) старая фотка вместо новой? Что-то и старой не видно :(
17 Учусь еще
 
14.04.12
12:57
вот опять загрузилась старая
18 GoldenCalf
 
14.04.12
12:58
Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   Для Сч = 1 По 10 Цикл
       ТабличноеПоле1.Добавить();
   КонецЦикла;
   ТабличноеПоле1.ЗаполнитьЗначения("111", "Колонка1");
КонецПроцедуры
19 GoldenCalf
 
14.04.12
12:59
Всё работает. Ты нас обманываешь ;)
20 hhhh
 
14.04.12
12:59
может не "ИмяКолонки", а без кавычек ИмяКолонки?
21 GoldenCalf
 
14.04.12
13:01
(20) смотри (18)
22 experimentator76
 
14.04.12
13:02
(12) не удается сосредоточиться на задаче :)
23 experimentator76
 
14.04.12
13:03
(0) кто из вас двоих задает вопрос ?
ну кто лапкаме по клавам нажимал ?
24 Terve-R-
 
14.04.12
13:09
ну вот, что бы вы без меня делали :))
25 Учусь еще
 
14.04.12
13:09
если брать другую колонку в этом поле то в нее заполняется, а в эту нет
26 GoldenCalf
 
14.04.12
13:10
Тип значения в колонке какой? И у переменной какой?
27 Учусь еще
 
14.04.12
13:14
переменная число, а колонку я просто вот так создала ТабПоле = ЭлементыФормы.ТабличноеПоле1;
ТабПоле.СоздатьКолонки();
ТабПоле.Колонки.Добавить("Значение");
28 GoldenCalf
 
14.04.12
13:17
А почему тип не указала? И зачем программно создаешь колонки? Почему их сразу нельзя создать на форме?
29 GoldenCalf
 
14.04.12
13:18
И кстати ТабличноеПоле1 - реквизит формы
30 Учусь еще
 
14.04.12
13:21
(28)Ну потому что это табличное поле!
и я в него выгружаю результат запроса, а потом программно добавиляю еще одну колонку что бы туда заносить уже расчитываеомое значение
(29)да реквизит - тип таблица значений
31 Terve-R-
 
14.04.12
13:21
(27) ОМГ... Условие задачи-то какое? Если сразу начать делать неправильно, то подсказки не помогут
32 GoldenCalf
 
14.04.12
13:24
(30) При создании колонки укажи её тип
33 Учусь еще
 
14.04.12
13:25
сделала так
Массив = Новый Массив;
Массив.Добавить(Тип("Число"));
ОписаниеТиповЧ = Новый ОписаниеТипов(Массив);
ТабПоле = ЭлементыФормы.ТабличноеПоле1;
ТабПоле.СоздатьКолонки();
ТабПоле.Колонки.Добавить("Значение",ОписаниеТиповЧ);
ошибок не вылетает
34 Учусь еще
 
14.04.12
13:26
или тоже не так??
35 GoldenCalf
 
14.04.12
13:31
:) Теперь заполняется?
36 Учусь еще
 
14.04.12
13:31
а колонка так и значениями не запоняется..
37 Учусь еще
 
14.04.12
13:31
Для Каждого СтрокаТаблицы Из ТабличноеПоле1 Цикл
   СтрокаТаблицы["Значение"] = ЗначКрит;
КонецЦикла;


Преобразование значения к типу Число не может быть выполнено
38 Terve-R-
 
14.04.12
13:32
беда... а ты заполняй таблицу значений, и колонку в нее добавь, а табличное поле все покажет :)
39 GoldenCalf
 
14.04.12
13:33
А что в ЗначКрит?
40 Terve-R-
 
14.04.12
13:33
(37) значит "ЗначКрит" у тебя или Null или Неопределено
41 Учусь еще
 
14.04.12
13:34
ЗначКрит - этой переменной хранятся вычисляемые значения, они точно есть
42 GoldenCalf
 
14.04.12
13:35
Тип этих значений какой?
43 Учусь еще
 
14.04.12
13:36
число
44 Учусь еще
 
14.04.12
13:36
с утра же 769,1..... относилось к числу???
45 Terve-R-
 
14.04.12
13:36
(41) точно есть? Точно - это когда ты напишешь ЗначКрит = 1, а если там вычисление по формуле, тем более из запросе берутся цифры, то это бабка надвое сказала что там на самом деле получается
46 GoldenCalf
 
14.04.12
13:37
(45) +1
47 GoldenCalf
 
14.04.12
13:37
(44) В каждую строку записываешь это значение?
48 Terve-R-
 
14.04.12
13:37
Да емае... Не надо там типизировать колонки! Просто у нее колонку заполнять нечем вот и не показывается ничего
49 Учусь еще
 
14.04.12
13:38
если я эти значения выгружаю в другую колонку то они выгружаются, цифры там появляются, правда почему то одинаковые
50 Terve-R-
 
14.04.12
13:38
А приведение этого "Ничего" к любому типу и будет выдавать ошибки
51 Terve-R-
 
14.04.12
13:39
*WALL*
52 Terve-R-
 
14.04.12
13:40
(49) конечно одинаковые... ЗначКрит -то у тебя одна)
53 Учусь еще
 
14.04.12
13:41
ну вообще их несколько
вот весь мой код по этому поводу

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

       СтаршийИндекс = ТабличноеПоле1.Количество() - 1;
      Для Сч = 0 по СтаршийИндекс Цикл
   ОбПр=ТабличноеПоле1[Сч].ОбъемПродаж;
   КолОб=ТабличноеПоле1[Сч].КоличествоОбращений;
   ВрОб=ТабличноеПоле1[Сч].ВремяОбслуживания;
   ЗначКрит=УдВремОб*ВрОб+УдКолОб*КолОб+УдОбПРод*ОбПр;
   
     
Для Каждого СтрокаТаблицы Из ТабличноеПоле1 Цикл
   СтрокаТаблицы["Значение"] = ЗначКрит;
КонецЦикла;
     КонецЦикла;
   КонецПроцедуры
54 GoldenCalf
 
14.04.12
13:42
(48) не свисти. Если Тип значения колонки будет число, а ты туда будешь писать дату, то колонка у тебя останется пустой
55 Terve-R-
 
14.04.12
13:46
(54) ну и не фиг типизировать, пиши че хочешь
56 Учусь еще
 
14.04.12
13:48
(54), (55) не спорьте!!!
57 GoldenCalf
 
14.04.12
13:48
Процедура Кнопка2Нажатие(Элемент)
               
   УдВремОб = ВходныеПараметры[0].УдельныйВес;
   УдКолОб  = ВходныеПараметры[1].УдельныйВес;
   УдОбПРод = ВходныеПараметры[2].УдельныйВес;
       
   ТабличноеПоле1.Колонки.Добавить("Значение", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
   ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

   Для Каждого СтрокаТЗ Из ТабличноеПоле1 Цикл
       ОбПр  = СтрокаТЗ.ОбъемПродаж;
       КолОб = СтрокаТЗ.КоличествоОбращений;
       ВрОб  = СтрокаТЗ.ВремяОбслуживания;
       
       ЗначКрит = УдВремОб * ВрОб + УдКолОб * КолОб + УдОбПРод * ОбПр; // Не факт что здесь число!
   
      СтрокаТЗ.Значение = ЗначКрит;

   КонецЦикла;

КонецПроцедуры
58 Terve-R-
 
14.04.12
13:48
Мдя... а зачем второй цикл?
59 Учусь еще
 
14.04.12
13:51
(57)благодарю, все работает
только скажи почему не факт что там  число, когда во всех ячейках стоят числа
60 GoldenCalf
 
14.04.12
13:53
Потому-что я не видел запрос и Входные параметры
61 Terve-R-
 
14.04.12
13:53
(59) мы сомневаемся, что во всех входящих параметрах числа
62 Учусь еще
 
14.04.12
13:55
еще вопрос
я сначала одной кнопкой выгружаю резальтат запроса в ТП, а потом другой кнопкой вычисляю значения ЗначКрит, почему если все сделать при нажатии одной кнопки выскакивают ошибки???
63 Учусь еще
 
14.04.12
13:56
хотя может он не успевает выгрузить и сразу считать значения...
64 GoldenCalf
 
14.04.12
13:57
(63) :) Не видя коду, не суйся в воду...
65 GoldenCalf
 
14.04.12
13:57
Покажи код
66 Учусь еще
 
14.04.12
13:58
я хочу вот это код

Процедура Кнопка1Нажатие(Элемент)
           Запрос = Новый Запрос;
           запрос.Текст=
           "ВЫБРАТЬ
           |    ПервоеОбращение.Контрагент,
           |    ПервоеОбращение.Дата КАК ДатаПервогоОбращения,
           |    ПоследнееОбращение.Дата КАК ДатаПоследнегоОбращения,
           |    КолвоОбращений.КоличествоОбращений,
           |    ВЫБОР
           |        КОГДА РАЗНОСТЬДАТ(ПервоеОбращение.Дата, ПоследнееОбращение.Дата, ДЕНЬ) <> 0
           |            ТОГДА РАЗНОСТЬДАТ(ПервоеОбращение.Дата, ПоследнееОбращение.Дата, ДЕНЬ)
           |        ИНАЧЕ ""Одно обращение""
           |    КОНЕЦ КАК ВремяОбслуживания,
           |    ОбъемПродажи.ОбъемПродаж
           |ИЗ
           |    (ВЫБРАТЬ
           |        МИНИМУМ(ЗаказПокупателя.Дата) КАК Дата,
           |        ЗаказПокупателя.Контрагент КАК Контрагент
           |    ИЗ
           |        Документ.ЗаказПокупателя КАК ЗаказПокупателя
           |    
           |    СГРУППИРОВАТЬ ПО
           |        ЗаказПокупателя.Контрагент) КАК ПервоеОбращение
           |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           |            МАКСИМУМ(ЗаказПокупателя.Дата) КАК Дата,
           |            ЗаказПокупателя.Контрагент КАК Контрагент
           |        ИЗ
           |            Документ.ЗаказПокупателя КАК ЗаказПокупателя
           |        
           |        СГРУППИРОВАТЬ ПО
           |            ЗаказПокупателя.Контрагент) КАК ПоследнееОбращение
           |        ПО ПервоеОбращение.Контрагент = ПоследнееОбращение.Контрагент
           |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           |            КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПокупателя.Дата) КАК КоличествоОбращений,
           |            ЗаказПокупателя.Контрагент КАК Контрагент
           |        ИЗ
           |            Документ.ЗаказПокупателя КАК ЗаказПокупателя
           |        
           |        СГРУППИРОВАТЬ ПО
           |            ЗаказПокупателя.Контрагент) КАК КолвоОбращений
           |        ПО ПервоеОбращение.Контрагент = КолвоОбращений.Контрагент
           |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           |            ЗаказПокупателя.Контрагент КАК Контрагент,
           |            СУММА(ЗаказПокупателя.ИтоговаяСумма) КАК ОбъемПродаж
           |        ИЗ
           |            Документ.ЗаказПокупателя КАК ЗаказПокупателя
           |        
           |        СГРУППИРОВАТЬ ПО
           |            ЗаказПокупателя.Контрагент) КАК ОбъемПродажи
           |        ПО ПервоеОбращение.Контрагент = ОбъемПродажи.Контрагент";
           
     
     результат=запрос.Выполнить().Выгрузить();
     
       ЭлементыФормы.ТабличноеПоле1.Значение=результат;
     ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

                     
         КонецПроцедуры
и вот этот (57) соединить в одну процедуру
67 experimentator76
 
14.04.12
14:01
покажи свой код
я хочу вот это код

)))
68 Учусь еще
 
14.04.12
14:05
ребят спокуха сделала, все работаетт
69 GoldenCalf
 
14.04.12
14:16
Молодец