Имя: Пароль:
1C
1С v8
1с 8,,2 Конвертация данных табличная часть
,
0 KonstantinK90
 
22.07.15
09:52
Всем привет! Подскажите с чего начать и где именно! В источнике есть табЧ Товары в ней к примеру 3 строки с номенклатурной позицией мне нужно что при при загрузке в базу приемник эти строки легли не важно какая была номенклатура в источнике в приемнике должно получится одна строка с конкретным названием номенклатуры количество =3 т.к в источнике было 3 строки и сумма по трем строкам из источника
1 KonstantinK90
 
22.07.15
09:55
как это сделать? хоть на правте в какой стороне это делать
2 salvator
 
22.07.15
09:58
Свернуть ТЧ
3 KonstantinK90
 
22.07.15
10:00
а где это именно в каком месте?
4 KonstantinK90
 
22.07.15
10:00
нужно написать подскажите а то с кд мало сталкивался
5 Naumov
 
22.07.15
10:03
(4) у группы, соответствующей ТЧ в событии ПередВыгрузкой можно переопределить КоллекциЯОбъектов как угодно.
Читаем описание обработчика в хелпе.
6 KonstantinK90
 
22.07.15
10:12
ОбъектКолекции а как объеденить строки ?
7 KonstantinK90
 
22.07.15
10:17
в хелпе ни чего такого не описано
8 Aprobator
 
22.07.15
10:25
Ну да, как свернуть строки в хелпе по КД точно нет.
9 ixijixi
 
22.07.15
10:27
ТвояТаблица.Свернуть();
10 salvator
 
22.07.15
10:29
+(9) Про метод Свернуть() предварительно почитай в СП
11 KonstantinK90
 
22.07.15
10:37
мояТабЧ.Свернуть это где именно писать?
12 ixijixi
 
22.07.15
10:44
(11) ПриВыгрузке
13 KonstantinK90
 
22.07.15
10:45
а если номенклатура в табЧасти будет разная она получится свернуть?
14 KonstantinK90
 
22.07.15
10:46
При выгрузке в ПКС?
15 ixijixi
 
22.07.15
10:51
Ты реально не хочешь СП почитать?
16 KonstantinK90
 
22.07.15
10:52
да читаю ни чет не понятно!
17 ixijixi
 
22.07.15
10:55
Синтаксис:

Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
Параметры:

<КолонкиГруппировок> (обязательный)

Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений.
<КолонкиСуммирования> (необязательный)

Тип: Строка.
Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках таблицы значений.
Описание:

Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
18 KonstantinK90
 
22.07.15
10:56
В ПКС при выгрузке пишу Значение=Товары.Свернуть("Количество");
выдает ошибку
Начало выгрузки:   22.07.2015 13:53:03

Ошибка в обработчике события ПриВыгрузке (свойства)
    ПКО                    =  уатРемонтныйЛист  (Документ: Заказ наряд)
    ПКС                    =  32  (Количество --> Количество)
    Объект                 =  Заказ наряд С0063100 от 19.07.2015 21:11:53  (Заказ наряд)
    СвойствоПриемника      =  Количество  (Число)
    КонвертируемоеЗначение =  1  (Число)
    Обработчик             =  ПриВыгрузкеСвойства
    ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,10)}: Переменная не определена (Товары)
    ПозицияМодуля          =  Обработка.УниверсальныйОбменДаннымиXML(8930)
    КодСообщения           =  56
19 ixijixi
 
22.07.15
10:58
ТвояТаблица.ЗаполнитьЗначения(ТвояНоменклатура, "Номенклатура");
    ТвояТаблица.ЗаполнитьЗначения(1, "Количество");
    ТвояТаблица.Свернуть("Номенклатура", "Количество");


При таком раскладе у тебя на выходе будет ТЗ с 1 строкой, с твоей номенклатурой и количеством, равным количеству строк
20 Альбатрос
 
22.07.15
10:59
(18) Источник.Товары.Свернуть("Количество");
Но ты ведь понял, что произойдет после этого куска кода?
21 Альбатрос
 
22.07.15
11:00
(19) сумму забыл
22 KonstantinK90
 
22.07.15
11:02
ваш код нужно писать в ПКО(при выгрузке) или в ПКС(при выгрузке)?
23 Альбатрос
 
22.07.15
11:03
(22) см (5)
24 KonstantinK90
 
22.07.15
11:08
пишу при выгрузке Источник.Товары.Свернуть("Количество","СебестоимостьСумма");
Ошибка в обработчике события ПриВыгрузке (свойства)
    ПКО                    =  уатРемонтныйЛист  (Документ: Заказ наряд)
    ПКС                    =  31  (Номенклатура --> Номенклатура)
    Объект                 =  Заказ наряд С0063100 от 19.07.2015 21:11:53  (Заказ наряд)
    СвойствоПриемника      =  Номенклатура  (СправочникСсылка.Номенклатура)
    КонвертируемоеЗначение =  Болт с шестигранной головкой М20х160  (Номенклатура)
    Обработчик             =  ПриВыгрузкеСвойства
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (Свернуть): Объект недоступен для изменения.
    ПозицияМодуля          =  (1)
    КодСообщения           =  56
25 KonstantinK90
 
22.07.15
11:10
что далать подскажите?
26 Альбатрос
 
22.07.15
11:13
(25) ТвояТЗ = Источник.Товары.Выгрузить();
ТвояТЗ.Свернуть();
27 KonstantinK90
 
22.07.15
11:26
пишу в ПКС при выгрузке  ТвояТЗ = Источник.Товары.Выгрузить();
ТвояТЗ.Свернуть("Количество");
Для Каждого СТР Из ТвояТЗ Цикл
     Результат = СТР.Количество;
     КонецЦикла;
Значение =Результат;
28 KonstantinK90
 
22.07.15
11:27
не сворачивает или нужно по всем реквизитам табЧ сделать так?
29 KonstantinK90
 
22.07.15
11:29
а нет он свернул правда все равно выгрузилось 3 строки как в источнике
30 KonstantinK90
 
22.07.15
11:35
как правильно свернуть ?
31 ixijixi
 
22.07.15
11:35
В (19) правильно свернуть
32 KonstantinK90
 
22.07.15
11:37
я одного не пойму мне куда именно это писать в пкс для каждого реквизита табЧасти?
33 Альбатрос
 
22.07.15
11:40
(32) Млять, очень внимательно прочитай (5), Значение у тебя должно равняться результирующей таблице, а не реквизиту. Давай не тупи, врубай мозги!
34 Альбатрос
 
22.07.15
11:40
+(33) и сверни как в (19), только сумму еще добавь в суммируемые поля, раз она тебе тоже нужна.
35 KonstantinK90
 
22.07.15
11:48
не могли бы вы на примере показать я чет въехать не могу?!
36 KonstantinK90
 
22.07.15
11:49
ТвояТЗ = Источник.Товары.Выгрузить();
ТвояТЗ.Свернуть("Количество","СебестоимостьСумма");
Свернули а дальше как правильно их передать
37 KonstantinK90
 
22.07.15
11:55
выже наверняка знаете как сделать !? помогите?
38 Альбатрос
 
22.07.15
12:01
В ПКГС "ТвояТЧ" в событии ПередВыгрузкой пишем:

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

КоллекциЯОбъектов = ТвояТЗ;

// Где ТвояНоменклатура = той ссылке на номенклатуру, которую ты хочешь подставить.
39 KonstantinK90
 
22.07.15
12:07
ага спасибо а куда именно этот код вставить
40 Альбатрос
 
22.07.15
12:08
Ты меня троллишь что ли?
41 KonstantinK90
 
22.07.15
12:08
нет я 2 раз с кд дело имею
42 KonstantinK90
 
22.07.15
12:09
ПередВыгрузкой  в ПКО?
43 KonstantinK90
 
22.07.15
12:09
Правило конвертации объектов
44 Альбатрос
 
22.07.15
12:10
Я тебе русским языком написал: В ПКГС "ТвояТЧ".
Как там твоя ТЧ называется я хз, предполагаю что "товары".
45 KonstantinK90
 
22.07.15
12:21
вот ссылка http://savepic.org/7478472.png
46 Альбатрос
 
22.07.15
12:23
Я устал, гугли, что такое ПКГС
47 KonstantinK90
 
22.07.15
12:28
правиле конвертации группы свойств
48 KonstantinK90
 
22.07.15
12:29
где это?
49 KonstantinK90
 
22.07.15
12:30
по подробнее объясните
50 KonstantinK90
 
22.07.15
12:42
вы мне написали  ТвояТЗ = Источник.Товары.Выгрузить();
ТвояТЗ.ЗаполнитьЗначения(ТвояНоменклатура, "Номенклатура");
ТвояТЗ.ЗаполнитьЗначения(1, "Количество");
ТвояТЗ.Свернуть("Номенклатура", "Количество,СебестоимостьСумма");

КоллекциЯОбъектов = ТвояТЗ; куда это нужно вставить я уже все по пробовал ни чего не получается подскажите
51 KonstantinK90
 
22.07.15
12:43
куда это вставить и как потом передеть в табЧ приемника?
52 icrocodile
 
22.07.15
12:57
у тебя должно быть ПКГС твоей табличной части. В этой ПКГС в обработчике ПередОбработкой необходимо определить КоллекцияОбъектов.
из хелпа :
КоллекцияОбъектов - Неопределено. Если в теле обработчика определить коллекцию (присвоив данной переменной значение, например, описывающее табличную часть или набор движений, например, типа ТаблицаЗначений), то стандартное получение коллекции выполняться не будет.
53 KonstantinK90
 
22.07.15
13:01
у тебя должно быть ПКГС твоей табличной части. В этой ПКГС в обработчике ПередОбработкой  Где у меня э
пкгс находится?
54 KonstantinK90
 
22.07.15
13:02
55 icrocodile
 
22.07.15
13:04
в списке ПКС "Товары - Материалы" - это ПКГС.
56 Aprobator
 
22.07.15
13:05
(54) встань на папку товары и жми F2 там будет тебе счастье )))
57 KonstantinK90
 
22.07.15
13:13
на шел пкгс перед выгрузкой на писал  ТвояТЗ = Источник.Товары.Выгрузить();
ТвояТЗ.ЗаполнитьЗначения(Справочники.Номенклатура.НайтиПоКоду("00000000007"), "Номенклатура");
ТвояТЗ.ЗаполнитьЗначения(1, "Количество");
ТвояТЗ.Свернуть("Номенклатура", "Количество,СебестоимостьСумма");

КоллекциЯОбъектов = ТвояТЗ;
а в ПКС написал Значение = КоллекциЯОбъектов.Количество;
и выдало ошибку
Ошибка в обработчике события ПередВыгрузкой (свойства)
    ПКО                    =  уатРемонтныйЛист  (Документ: Заказ наряд)
    ПКС                    =  32  (Количество --> Количество)
    Объект                 =  Заказ наряд С0063100 от 19.07.2015 21:11:53  (Заказ наряд)
    СвойствоПриемника      =  Количество  (Число)
    Обработчик             =  ПередВыгрузкойСвойства
    ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,12)}: Переменная не определена (КоллекциЯОбъектов)
    ПозицияМодуля          =  Обработка.УниверсальныйОбменДаннымиXML(8807)
    КодСообщения           =  55
58 icrocodile
 
22.07.15
13:15
(57) ПередВыгрузкой нет КоллекцииОбъектов, там уже ОбъектКоллекции, тебе надо ПередОбработкой
59 KonstantinK90
 
22.07.15
13:19
что перед обработкой мне нужно сделать?
60 ВРедная
 
22.07.15
13:22
(59) Сколько тебе за это платят?
61 KonstantinK90
 
22.07.15
13:26
о все получилось? А как теперь при загрузке указывать нужную номенклатуру?
62 KonstantinK90
 
22.07.15
13:26
мало!
63 KonstantinK90
 
22.07.15
13:35
как при загрузке указать необходимую номенклатуру
64 KonstantinK90
 
22.07.15
13:56
вы еще здесь?
65 ixijixi
 
22.07.15
14:27
ОбъектКоллекции.Номенклатура = ТвойАлгоритмПоискаНоменклатуры();
66 Aprobator
 
22.07.15
16:09
(60) я бы спросил по другому - за это вообще платят?
67 Naumov
 
22.07.15
17:14
(63) В Конвертации группы свойств у ТЧ не ставишь выгрузку номенклатуры, в событии ПослеЗагрузки для ПКО документ-документ перебираешь получившуюся ТЧ и ставишь любую нужную тебе номенклатуру