Имя: Пароль:
1C
1С v8
заполнить ТЧ данными из другой ТЧ
0 lero4ka23
 
11.04.16
11:59
Есть документ в нем две табличные части,в ТЧ СписНом запросом заполняются поля номенклатура, ценовая группа, сумма. Ребят подскажите как реализовать чтобы считалась общая сумма одной ценовой группы и зполнялась ТЧ Ценовая группа как на картинке https://cloud.mail.ru/public/6ynC/5Hv2JmmFr
1 Маратыч
 
11.04.16
12:00
Свернуть() не катит?

З.Ы. Картинку не вижу, аккаунта на мылру нет.
2 Маратыч
 
11.04.16
12:01
+(1) Точнее, сначала Выгрузить() из первой ТЧ, затем Свернуть("ЦеноваяГруппа", "Сумма").
3 lero4ka23
 
11.04.16
12:01
пробовала вот так, но не получилось, может не так что то написала
&НаСервере
Процедура ЗаполнитьТЧ()

СписокНоменклатуры = РеквизитФормыВЗначение("СписокНоменклаиуры");
СписокНоменклатуры.Свернуть("ЦеноваяГруппа", "Сумма");
Объект.ЦеноваяГруппа.Загрузить(СписокНоменклатуры);

КонецПроцедуры
4 Маратыч
 
11.04.16
12:01
+(2) Т.е. ТЗ = СписНом.Выгрузить(); ТЗ.Свернуть("ЦеноваяГруппа", "Сумма"); ЦеноваяГруппа.Загрузить(ТЗ);
5 Маратыч
 
11.04.16
12:02
(3) СписокНоменклатуры = РеквизитФормыВЗначение("СписокНоменклаИуры");

Здесь синтаксическая ошибка.
6 lero4ka23
 
11.04.16
12:02
7 lero4ka23
 
11.04.16
12:06
Просто ничего не происходит
&НаКлиенте
Процедура СписокНоменклатурыПриИзменении(Элемент)
    Элементы.Декорация1.Видимость = Истина;
    Объект.ТребуетсяПерерасчет = Истина;
    
    ЗаполнитьТЧ()

    
    
КонецПроцедуры




&НаСервере
Процедура ЗаполнитьТЧ()

СписокНоменклатуры = РеквизитФормыВЗначение("СписокНоменклатуры");
СписокНоменклатуры.Свернуть("ЦеноваяГруппа", "Сумма");
Объект.ЦеноваяГруппа.Загрузить(СписокНоменклатуры);

КонецПроцедуры
8 Pro-tone
 
11.04.16
12:08
(7) а тип какой у СписокНоменклатуры?
9 lero4ka23
 
11.04.16
12:09
(8) (ДокументТабличнаяЧасть.РасчетыСпецификаций.СписокНоменклатуры)
10 Маратыч
 
11.04.16
12:13
(9) Эмм... А разве у нас ТЧ из ТЧ загружается? Может, все-таки сначала промежуточную ТЗ создать (ТЗ = СписокНоменклатуры.Выгрузить()), затем ее свернуть и уже ее загружать в ЦеноваяГруппа?
11 Маратыч
 
11.04.16
12:15
Таки даже в СП залез = в методе Загрузить() ТЧ используется параметр с типом ТаблицаЗначений.

Ну и имена колонок должны совпадать, ессно.
12 Pro-tone
 
11.04.16
12:19
(9) я думаю Маратыч прав в (10) и (11)
13 lero4ka23
 
11.04.16
12:22
Сделала вот так


&НаСервере
Процедура ЗаполнитьТЧ()
        

ТЗ = Объект.СписокНоменклатуры.Выгрузить();
ТЗ.Свернуть("ЦеноваяГруппа", "Сумма");
Объект.ЦеноваяГруппа.Загрузить(ТЗ);

КонецПроцедуры
14 lero4ka23
 
11.04.16
12:23
но снова ничего не происходит
15 Маратыч
 
11.04.16
12:27
(14) Во второй табличной части колонки тоже называются ЦеноваяГруппа и Сумма?
16 Pro-tone
 
11.04.16
12:28
(14) посмотри отладчиком что в ТЗ
17 Маратыч
 
11.04.16
12:28
+(15) Кстати, а отладчик что говорит? Можешь глянуть в табло значение ТЗ после выполнения Выгрузить()?
18 Pro-tone
 
11.04.16
12:28
(13) в ТЗ должно быть 2 колонки: "ЦеноваяГруппа" и "Сумма"
19 lero4ka23
 
11.04.16
12:29
(15) да называются одинаково
20 lero4ka23
 
11.04.16
12:29
(18) да две колонки
21 Быдло замкадное
 
11.04.16
12:29
табличка не обновляется. Закрой документ, открой, данные будут. Перед этим сохранить естессно
22 Pro-tone
 
11.04.16
12:29
и как ты можешь сворачивать по ценовой группе, когда у тебя есть колонки с номенклатурой, у тебя ж не дерево значений-то!
23 lero4ka23
 
11.04.16
12:31
(21) пусто
24 lero4ka23
 
11.04.16
12:31
(17) отладчик молчит,Ю вообще ничего не пишет
25 Маратыч
 
11.04.16
12:31
(22) А какая разница? У нее колонки Номенклатура, ЦеноваяГруппа, Сумма. При выполнении Свернуть("ЦеноваяГруппа", "Сумма"), колонка Номенклатура выкидывается.
26 Маратыч
 
11.04.16
12:32
(24) Точка останова после Выгрузить() вообще отрабатывает?
27 Маратыч
 
11.04.16
12:36
+(26) А, и самый животрепещущий вопрос: отладка-то на сервере включена? :)
28 lero4ka23
 
11.04.16
12:38
(27) да включена, по отладчику получается что эта процедара вообще не отрабатывается
29 Маратыч
 
11.04.16
12:49
(28) Таакс, уже ближе. Конфа на УФ или обычных формах?
30 lero4ka23
 
11.04.16
12:51
(29) УФ
31 lero4ka23
 
11.04.16
12:52
РЕБЯТА!!!!!!!!!!!!!!ПОЛУЧИЛОСЬ!!!!!!!!!!!!!!!!!!!
32 lero4ka23
 
11.04.16
12:52
Сейчас проверю, и напишу как сделала
33 Pro-tone
 
11.04.16
12:56
(25) так вот какой в этом смысл тогда сворачивать тч если номенклатура выкидывается?

(28) могу еще предположить проблемы с кэшем, или проблема тут Объект.ЦеноваяГруппа
34 Маратыч
 
11.04.16
13:02
(33) >так вот какой в этом смысл тогда сворачивать тч если номенклатура выкидывается?

Как это какой? Получить таблицу с группировкой по ценовым группам.
35 Pro-tone
 
11.04.16
13:04
(34) это понятно, просто подумал, что в свернутой тч должна быть номенклатура тоже, в общем, это я проглядел имя тч "Ценовые группы"
36 lero4ka23
 
11.04.16
13:05
может кому пригодится

&НаКлиенте
Процедура обновитьТовГруппы()
    соотв    = Новый Соответствие;
    Для Каждого стр Из Объект.СписокНоменклатуры Цикл
        Если соотв[стр.ЦеноваяГруппа] = Неопределено Тогда
            соотв[стр.ЦеноваяГруппа]    = стр.ВсегоСоСкидкой;
        Иначе
            соотв[стр.ЦеноваяГруппа]    = соотв[стр.ЦеноваяГруппа] + стр.ВсегоСоСкидкой;
        КонецЕсли;
    КонецЦикла;
    ЦеноваяГруппа.Очистить();
    Для Каждого пара Из соотв Цикл
        стр    = ЦеноваяГруппа.Добавить();
        стр.ВсегоСоСкидкой        = пара.Значение;
        стр.ЦеноваяГруппа    = пара.Ключ;
    КонецЦикла;
КонецПроцедуры
37 Маратыч
 
11.04.16
13:06
(36) О_о

Ну вы, блин, даете (с) :)
38 Pro-tone
 
11.04.16
13:12
(36) о_О, хардкод какой-то
39 Маратыч
 
11.04.16
13:14
(38) Изобретательная девушка, однако :)
40 hhhh
 
11.04.16
13:45
но вообще реально, чтобы сработало выражение??

СписокНоменклатуры = РеквизитФормыВЗначение("СписокНоменклатуры");

??