Имя: Пароль:
1C
1С v8
КД ВыгрузитьПоПравилу, что то не пойму почему так работает.
,
0 Aswed
 
20.04.15
11:56
В ТЧ документа в ПКС реквизита Номенклатура прописал

Если ОбъектКоллекции.Номенклатура.ТипНоменклатуры = Справочники.ТипыНоменклатуры.МатериалыИСпецоснастка Тогда
    ВыгрузитьПоПравилу(ОбъектКоллекции.Номенклатура,,,,"Номенклатура");
Иначе
    ВыгрузитьПоПравилу("00-00000005",,,,"НоменклатуруПоКоду");

КонецЕсли;

Условие срабатывает, но почему то ВСЯ номенклатура идет по первому правилу. При этом в правиле самого реквизита ни какое правило не указано. Не могу понять что не так.
1 Альбатрос
 
20.04.15
11:57
То есть не заходит в иначе?
2 Aswed
 
20.04.15
12:00
Ну получается что так.
3 mikecool
 
20.04.15
12:01
емнип - даже если не укажешь правило, то кд сама подбирает подходящее по типу(пример - субконто)
4 Aswed
 
20.04.15
12:03
+2  сейчас проверил заходит.
Но выгружает почему то по правилу обмена именно номенклатуры, а не скидывания всех на одну.
Т.е. по правилу из первой ВыгрузитьПоКоду
5 Aswed
 
20.04.15
12:04
(3) Ну вот видимо так и получается.
Выходит что у меня не правильно указано второе правило.

ВыгрузитьПоПравилу("00-00000005",,,,"НоменклатуруПоКоду");

В Правиле "НоменклатураПоКоду" идёт тупо поиск в Приемнике по коду указанной позиции.

Как его правильно записать?
6 lxndr
 
20.04.15
12:06
укажи просто
ИмяПКО = "НоменклатуруПоКоду"
7 Поpyчик-4
 
20.04.15
12:08
(0) Правильней так

Если ОбъектКоллекции.Номенклатура.ТипНоменклатуры = Справочники.ТипыНоменклатуры.МатериалыИСпецоснастка Тогда
    ИмяПКО = "Номенклатура";
Иначе
    ИмяПКО = "НоменклатуруПоКоду";
КонецЕсли;
8 Aswed
 
20.04.15
12:10
(6) О сработало!
Но теперь все выгружается по этому правилу)))
9 Aswed
 
20.04.15
12:12
(7) Млять что за хня.
Теперь оба выгружаются по правилу Номенклатуру(

Если ОбъектКоллекции.Номенклатура.ТипНоменклатуры = Справочники.ТипыНоменклатуры.МатериалыИСпецоснастка Тогда
    ИмяПКО = "Номенклатура";
Иначе
    ИмяПКО = "НоменклатуруПоКодуТовар";
КонецЕсли;
10 Альбатрос
 
20.04.15
12:19
(9) D GRC ghfdbkj rjydthnfwbb ns rjytxyj jxbcnbk&
11 Альбатрос
 
20.04.15
12:19
что в переводе: ты очистил правило конвертации у ПКС?
12 Aswed
 
20.04.15
12:21
(11) Да, оно пустое.
13 Aswed
 
20.04.15
12:25
14 Jaap Vduul
 
20.04.15
12:30
(13)
Поле Источник очистить, код передавать через ИсходящиеДанные (в ПКО для свойств указав получать значения из входящих данных).
15 Aswed
 
20.04.15
12:44
(14) Таким образом ругается

Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1694)}: Ошибка получения свойства подчиненного объекта из входящих данных
    ПКО                    =  ПоступлениеТоваровУслугТовары  (Документ: Поступление товаров)
    ПКС                    =  15  (--> Номенклатура)
    Объект                 =  Поступление товаров АВ00000026 от 22.01.2015 12:58:00  (Поступление товаров)
    СвойствоПриемника      =  Номенклатура  (СправочникСсылка.Номенклатура)
    ОписаниеОшибки         =  Получение элемента по индексу для значения не определено
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8283)
    КодСообщения           =  67


http://s009.radikal.ru/i308/1504/83/2b6d77e827ed.jpg
16 Aswed
 
20.04.15
12:49
Вообще ВыгрузитьПоПравилу можно применять для ПКС? Или только в правилах выгрузки?
17 Jaap Vduul
 
20.04.15
12:51
(15)Номенклатуру-то не надо через исходящие данные - где ты там её из входящих вытащишь?
И если у тебя код статический, то исходящие данные вообще не нужны, в ПКО сразу пишешь Значение = "00-0000005" и всё.
18 Aswed
 
20.04.15
12:54
(17) Дык в (15) жеж)))
"код передавать через ИсходящиеДанные"
19 Aswed
 
20.04.15
12:55
Всё пошло)
Спасибо)))

Если ОбъектКоллекции.Номенклатура.ТипНоменклатуры = Справочники.ТипыНоменклатуры.МатериалыИСпецоснастка Тогда
    ИсходящиеДанные = ОбъектКоллекции.Номенклатура;
    ИмяПКО = "Номенклатура";
Иначе
    Значение = "00-00000005";
    ИмяПКО = "НоменклатуруПоКоду";
КонецЕсли;

так заработало.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший