Имя: Пароль:
1C
1С v8
ТаблицаЗначений
0 Gill
 
12.08.11
18:30
Добрый вечер всем! Подскажите как выгрузить данные из запроса на форму вызываемой обаботки с предворительно настроенным расположением реквизитов табличного поля (тип - ТЗ)...СоздатьКолонки()не подходит,т.к. не сохраняется "предопределенное" расположение реквизитов
1 Gill
 
12.08.11
18:35
После запроса пишуОбработка.ЭлементыФормы.ГлобальнаяГруппировкаПоРазделамРабот.Значение=РезультатЗапроса.Выгрузить(); а дальше как?
2 Gill
 
12.08.11
18:38
точнее после текста запроса так: Обработка=Обработки.ПотребностиВыполненияРабот.ПолучитьФорму("Форма");
ЭлементыФормы.ГлобальнаяГруппировкаПоРазделамРабот.Значение=РезультатЗапроса.Выгрузить();

//Обработка.ЭлементыФормы.ГлобальнаяГруппировкаПоРазделамРабот.СоздатьКолонки(); Это не подходит
3 and2
 
12.08.11
18:53
в чем вопрос то?
в порядке колонок?
4 Gill
 
15.08.11
08:37
(3) У меня в конфигураторе подготовлена форма с след.расположением колонок

                Колонка2  
№Строки  Колонка1 Колонка3
и т.д.  

хотелось бы сохранить такое расположение.Метод СоздатьКолонки() располагает всё по "горизонтали".
5 aleks-id
 
15.08.11
08:40
а вывалить результат запроса в ТЗ, связанную с ТЧ не судьба?
6 Gill
 
15.08.11
08:41
(6) можно поподробнее
7 Gill
 
15.08.11
15:32
Запрос.Выполнить();
РезультатЗапроса=Запрос.Результат;
Выборка=РезультатЗапроса.Выбрать();
Обработка=Обработки.ПотребностиВыполненияРабот.Создать();
МояФорма=Обработки.ПотребностиВыполненияРабот.ПолучитьФорму("Форма");
МояФорма.Открыть();

Пока Выборка.следующий() цикл
           
Обработка.ГлобальнаяГруппировка.Загрузить(РезультатЗапроса.Выгрузить());
   
КонецЦикла;

//Почему в тч не загружаются данные?Результат запроса не пустой....
8 Gill
 
15.08.11
15:56
^
9 salvator
 
15.08.11
16:03
Имена колонок совпадают?
10 Gill
 
15.08.11
16:06
(9) совпадают.....
11 salvator
 
15.08.11
16:10
Ну попробуй вручную заполнить.

Пока Выборка.следующий() цикл
           
НовСтр = Обработка.ГлобальнаяГруппировка.Добавить();
НовСтр.Колонка1 = Выборка.Колонка1
и тд.
   
КонецЦикла;
12 skunk
 
15.08.11
16:12
ТабличноеПолеНаФорме.Загрузить(ТаблицаЗначения);
13 aleks-id
 
15.08.11
16:34
МояОбработка=Обработки.ПотребностиВыполненияРабот.Создать();
МояОбработка.МОЯ_ТАБЛИЧНАЯ_ЧАСТЬ_СВЯЗАННАЯ_С_ТАБЛИЧНЫМ_ПОЛЕМ = Запрос.Выполнить().Выгрузить();
МояФорма=МояОбработка.ПолучитьФорму("Форма");
МояФорма.Открыть();
14 aleks-id
 
15.08.11
16:36
+(13) МояОбработка.МОЯ_ТАБЛИЧНАЯ_ЧАСТЬ_СВЯЗАННАЯ_С_ТАБЛИЧНЫМ_ПОЛЕМ.Загрузить(Запрос.Выполнить().Выгрузить());
15 Gill
 
15.08.11
16:54
(13) Обращение к процедуре объекта как к функции (Выполнить)
МояОбработка.ГлобальнаяГруппировка = Запрос.Выполнить().Выгрузить();
16 mikecool
 
15.08.11
16:57
в твоем таб поле с типом тз пропишп данные полям(колонкам), как они называются в результате запроса и не надо будет создавать колонки
17 aleks-id
 
15.08.11
16:57
(15) а (14) ты читал или за тебя все переписывать т.к. ты мозг не хочешь включать????
18 mikecool
 
15.08.11
16:59
(14) а не быстрее будет Скопировать() ?
19 Gill
 
15.08.11
17:02
(17) можно без эмоционального всплеска,скажи лучше гдк ошибка
20 Gill
 
15.08.11
17:04
(14)...та же ошибка
21 aleks-id
 
15.08.11
17:04
МояОбработка=Обработки.ПотребностиВыполненияРабот.Создать();
МояОбработка.МОЯ_ТАБЛИЧНАЯ_ЧАСТЬ_СВЯЗАННАЯ_С_ТАБЛИЧНЫМ_ПОЛЕМ.Загрузить(Запрос.Выполнить().Выгрузить());
МояФорма=МояОбработка.ПолучитьФорму("Форма");
МояФорма.Открыть();
22 aleks-id
 
15.08.11
17:06
(18) а куда его там приткнуть? о_о
23 mikecool
 
15.08.11
17:09
у меня
ТЗ - промежуточная
ЖР - таб поле на форме с типом ТЗ, настроены колонки, прописаны данные в колонках

ТЗ = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(ТЗ);
ЖР = ТЗ.Скопировать();
24 aleks-id
 
15.08.11
17:12
(23) а если ты свяжешь ЖР с ТЗ, которую сделаешь табличной частью этого объекта, то третью строчку можешь вообще выкинуть ;)
25 aleks-id
 
15.08.11
17:13
+(24) и первую тоже
26 mikecool
 
15.08.11
17:14
(24) изначально я так и попытался, но - данные в колонках приобретали непонятное расположение, абсолютно не равное прописанному
только так и получилось нормально
27 mikecool
 
15.08.11
17:15
+26 такое очучение, что загружались не согласно привязке данных, а слева-направо, как в выгрузке из журнала
28 Gill
 
15.08.11
17:17
МояОбработка.ГлобальнаяГруппировка.Загрузить(Запрос.Выполнить().Выгрузить()); Всё та же ошибка коллеги!!!
29 Gill
 
15.08.11
17:18
+(28) Обращение к процедуре объекта как к функции (Выполнить)
30 aleks-id
 
15.08.11
17:22
что у тебя такое ГлобальнаяГруппировка ? это табличная часть? ее колонки совпадают с колонками запроса?
31 Gill
 
15.08.11
17:23
(30) теперь уже это таб.часть....колонки 100 пудов совпадают....блин вешалка, что не так?!
32 salvator
 
15.08.11
17:33
(31) Реквизиты табличной части, надеюсь, добавлял?
33 Gill
 
15.08.11
17:34
(32)обижаете....я вот что подумал, а ничего что у меня запрос лежит в отдельной функции()?
34 salvator
 
15.08.11
17:36
(33)
Да так-то ничего. Только вызывать уже нужно эту функцию, которая, надеюсь, возвращает таблицу значений.
Табличечка = ТвояСуперФункция(); МояОбработка.МОЯ_ТАБЛИЧНАЯ_ЧАСТЬ_СВЯЗАННАЯ_С_ТАБЛИЧНЫМ_ПОЛЕМ.Загрузить(Табличечка);
35 Gill
 
15.08.11
17:37
(34) а если все-таки речь идет о табличной части, а не о ТЗ?
36 salvator
 
15.08.11
17:39
(35) Да ясен-красен что про ТЧ.
У тебя запрос в функции. Она наверняка что-то там возвращает.
Скорее всего ТЗ.
Вот эту ТЗ ты и должен загрузить в ТЧ твоей обработки.
37 Gill
 
15.08.11
17:43
(36)Но ведь метод СоздатьКолонки() работает, меня только не устраивает расположение этих "злощастных" колонок...
38 Gill
 
15.08.11
17:44
(37) извиняюсь, не то хотел сказать...
39 salvator
 
15.08.11
17:44
Мля. Ты пробовал сделать как в (34) ?
40 Gill
 
17.08.11
12:30
Спасибо Всем разобрался!И еще вопросик.  У меня Колонка1 это результат агрегатной функции в запросе. а как в запросе можно указать что значение колонки1 = значению другой колонки2....Ну вообщем на выходе мне нужно:
Колонка1  Колонка2
БлаБлабла БлаБлабла

Всем спасибо!
41 Gill
 
17.08.11
14:18
^
42 Gill
 
17.08.11
14:24
Колонка1 вычисляется так
|    УчетРабот.КоличествоОборот КАК ОбъемРабот,
                              |    ВЫБОР
                              |        КОГДА УчетРабот.ГруппаРаботы = &Факт
                              |            ТОГДА СУММА(УчетРабот.КоличествоОборот)
                              |    КОНЕЦ КАК
ФактическийПоказатель,

как записать чтобы ФактическийПоказатель был равен значению колонки2
43 Gill
 
17.08.11
14:26
+(42) точнее в колонку2 нужно поместить значение из колонки1
44 Gill
 
17.08.11
14:33
Попробую объяснить по-другому: в выборке есть Поле1,Поле2 и т.д...есть ТЧ с полями ввода Колонка1 Колонка2 Колонка3...В колонку1 выгружается значение(см.выше в запросе), в колонки2 - значение Поле1, в колонку3 - тоже нужно поместить значение Поле1
45 Megas
 
17.08.11
14:38
Колонка2 вычисляется так

|    УчетРабот.КоличествоОборот КАК ОбъемРабот,
                              |    ВЫБОР
                              |        КОГДА УчетРабот.ГруппаРаботы = &Факт
                              |            ТОГДА СУММА(УчетРабот.КоличествоОборот)
                              |    КОНЕЦ КАК
ФактическийПоказатель2,
46 Megas
 
17.08.11
14:38
Кароче делаешь тоже самое =)
47 Gill
 
17.08.11
14:46
Попробуем так: Есть ТЧ у которой Колонка1(ТипЧисло), колонка2 (Тип Число), Колонка3(ТипЧисло)....Пишем запрос и врезультате получем Значение в колонке1-(см.выше в запросе), в колонке2 - поле1 из таблицы регистратора в выборке, а вот в колонку3 надо записать значение равное (=) из колонки1
48 Gill
 
17.08.11
14:57
Запрос.Выполнить();
РезультатЗапроса=Запрос.Результат;
Выборка=РезультатЗапроса.Выбрать();
Пока Выборка.следующий() цикл    
КонецЦикла;
           
МояФорма=МояОбработка.ПолучитьФорм("ГлобальнаяГруппировка");
МояФорма.Открыть();
Обработка=Обработки.ФормаПотребностиРабот.ПолучитьФорму("ГлобальнаяГруппировка");
Обработка.ЭлементыФормы.ГлобальнаяГруппировкаПоРазделамРабот.Значение=РезультатЗапроса.Выгрузить();
Обработка.ЭлементыФормы.ГлобальнаяГруппировкаПоРазделамРабот.Значение.Свернуть("...","...");
           
Обработка.ЭлементыФормы.ГлобальнаяГруппировкаПоРазделамРабот.СоздатьКолонки();
ТаблицаДанных=РезультатЗапроса.Выгрузить();
МояОбработка.ГлобальнаяГруппировка.Загрузить(ТаблицаДанных);
МояОбработка.ГлобальнаяГруппировка.Свернуть("...","...");

?
49 Gill
 
17.08.11
15:01
+(48) Вначале второго абзаца МояОбработка=Обработки.ФормаПотребностиРабот.Создать();
50 Gill
 
17.08.11
15:05
Какие будут мысли кроме того,чтобы вызвать программиста и того,что мне пора увольняться.Представьте программистов в округе нет...одна надежда на меня....Прошу помощи многоуважаемые Гуру 1С
51 salvator
 
17.08.11
15:05
(40)
ДанныеДляКолонки2 = ТаблицаДанных.ВыгрузитьКолонку("Колонка1");
МояОбработка.ГлобальнаяГруппировка.ЗагрузитьКолонку(ДанныеДляКолонки2,"Колонка2");
52 Gill
 
17.08.11
15:21
(51) спасибо
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.