Имя: Пароль:
1C
1С v8
КД Всю номенклатуру источника на одну приемника
0 Aswed
 
26.02.15
13:55
Есть задача написать обмен из не типовой конфы с БП 3.0
Но переносить всю номенклатуру не нужно, вся номенклатура в БП должна будет приходить на один элемент справочника "Товары"

Собственно как это лучше всего сделать?
1 Naumov
 
26.02.15
14:02
да тут по разному можно.
2 D_E_S_131
 
26.02.15
14:04
Раньше хоть делали "Товары18", "Товары10", "ТоварыБез"...
3 Aswed
 
26.02.15
14:07
(1) Ну да.
Можно через поиск по коду в момент загрузки, можно после загрузки пройтись.
Но как будет лучше?
4 GreatOne
 
26.02.15
14:09
в ПКС для номенклатуры ПередВыгрузкой() Выражение = Справочники.Номенклатура.НайтиПоКоду();

Освободит обработку от дальнейших телодвижений(ибо Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена) + уменьшит размер файла xml
5 SleepyHead
 
гуру
26.02.15
14:22
(4) да просто в ПКС для кода нужный код прописать

Значение = "....";
6 SleepyHead
 
гуру
26.02.15
14:23
А чтобы размер файла уменьшить, пусть ключ выгружаемых данных в ПКО пропишет.
7 GreatOne
 
26.02.15
14:30
(5) значение разве не для предопределенных?
8 anatoly
 
26.02.15
14:38
(0) а с ценами как?...
9 SleepyHead
 
гуру
26.02.15
14:41
(7) Нет, не для предопределенных :)

Это значение свойства в ПКС.
10 SleepyHead
 
гуру
26.02.15
14:43
(7) Выражение удобно использовать, когда из 77 переносишь в предопределенный элемент справочника

Выражение = "Справочники.ВидСправочника.ИмяПредопределенногоЭлемента";
11 GreatOne
 
26.02.15
14:43
(9) разница не велика получается и в данном примере не прокатит через Значение = ""
12 GreatOne
 
26.02.15
14:43
(10) ок, как сделать через значение? Как перенести все в справочник с кодом 007?
13 SleepyHead
 
гуру
26.02.15
14:43
(11) Чойт не прокатит? Я на днях подобный перенос из файла KillFish делал, все работает.
14 GreatOne
 
26.02.15
14:46
(13) поделись простым кодом. Мне не понять. Я максимум что делал это "Значение = "51"" для счетов. Как тут указать элемент справочника, который меня интересует?
15 SleepyHead
 
гуру
26.02.15
14:46
(12) Делаешь ПКО для номенклатуры, источник не указываешь, приемник указываешь справочник "Номенклатура"

Добавляешь единственное свойство "Код", в обработчике "перед выгрузкой" прописываешь

Значение = "007";

В обработчике ПКО "перед выгрузкой" прописываешь

КлючВыгружаемыхДанных = "007";

Пользуешься этим ПКО там, где есть ссылка на номенклатуру.

А в пользовательском режиме заводишь товар с кодом "007", перед тем как загружать, чтобы было с чем сопоставлять.
16 GreatOne
 
26.02.15
14:47
(15) да нуууууууууууууу.... столько гемора. Хотя конечно удобно во многих случаях.
17 SleepyHead
 
гуру
26.02.15
14:48
(14) Для счетов как раз без разницы, в значение ты запишешь имя предопределенного элемента или в выражение

Значение = "ТоварыНаСкладах"

и

Выражение = "планыСчетов.Хозрасчетный.ТоварыНаСкладах"

будет работать одинаково
18 SleepyHead
 
гуру
26.02.15
14:49
(16) Где гемор то? Вот с выражением точно гемор, поиск по выражению будет тыркаться каждый раз, а это отдельный серверный вызов, причем поиск не запросом, а с использованием объектной модели, что более затратно по ресурсам.
19 SleepyHead
 
гуру
26.02.15
14:49
(16) а если пропишешь ключ выгружаемых данных, поиск будет выполнен 1 (один) раз при загрузке.
20 Aswed
 
26.02.15
18:10
Я вот как раз бился между тремя этими способами. Решил пойти тем же которым во всем этом обмене пользуюсь.
Т.е. через ПКО с указанием кода.
21 Aswed
 
26.02.15
18:15
нашел грабли не пойму откуда взялись)))
Хочу доку в базе приемнике установить определенное значение типа перечисления в документе.
Сделал как обычно.
ПКО источник строка, в конвертации значений прописал соответствие.
В документе прописал перед выгрузкой всё как полагается.
Теперь пытаюсь загрузить правила в базу источник ругается

Ссылка на несуществующий объект метаданных в правилах обмена
    Объект                 =  Строка
    ОписаниеОшибки         =  Значение не является значением объектного типа (ПКО)
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(2176)
    КодСообщения           =  11

Что за хрень такая???
22 Aswed
 
26.02.15
18:36
+ (21)
при этом обмен проходит нормально и все данные заходят как и должны о_0

Вот чудеса на виражах то)))
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс