Имя: Пароль:
1C
1С v8
Ковертация 2,0 ошибка Переменная не определена (Объект)
,
0 Игорь_МММ
 
12.01.16
19:49
в событии ПередВыгрузкой написал вот это:
Отказ = Объект.ВыгружатьВБП
выдает такую ошибку:
Ошибка в обработчике события ПередВыгрузкойОбъекта
    ПКО                    =  Номенклатура  (Справочник: Номенклатура)
    Объект                 =  (Выборка из результата запроса)
    Обработчик             =  ПередВыгрузкойОбъекта
    ОписаниеОшибки         =  Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,9)}: Переменная не определена (Объект)
    ПозицияМодуля          =  ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9230)
    КодСообщения           =  41

почему не работает?
1 Игорь_МММ
 
12.01.16
19:58
нужно не выгружать в БП номенклатуру у которой реквизит ВыгружатьВБП = Ложь ...
2 ДенисЧ
 
12.01.16
20:01
А что справка по обработчику говорит? Там вообще Объект описан?
3 Игорь_МММ
 
12.01.16
20:11
(2) уже теплее. из справки:
Пример:
Отказ = Источник.ЭтоГруппа();

Если (ПустаяСтрока(Источник.Адрес) = 1) И  
(ПустаяСтрока(Источник.АдресПочт) = 1) И
(ПустаяСтрока(Источник.Телефоны) = 1) И
(ПустаяСтрока(Источник.eMail) = 1) Тогда
Отказ = 1;
КонецЕсли;

написал по аналогии : Отказ = Источник.ВыгружатьВБП
ругается: ОписаниеОшибки  =  Поле объекта не обнаружено (ВыгружатьВБП)
4 ДенисЧ
 
12.01.16
20:12
Сообщить(ТипЗнч(Источник))
5 PuhUfa
 
12.01.16
20:17
(3) а в чьем событии ПередВыгрузкой ты написал?
6 Игорь_МММ
 
12.01.16
20:18
(5) ПКО Номенклатура
7 PuhUfa
 
12.01.16
20:20
(6) а у групп ВыгружатьВБП есть?
8 Игорь_МММ
 
12.01.16
20:25
(7) блин...
Если Не Источник.ЭтоГруппа() Тогда
    Отказ = Источник.ВыгружатьВБП
КонецЕсли
итого: ОписаниеОшибки         =  Метод объекта не обнаружен (ЭтоГруппа)
9 Игорь_МММ
 
12.01.16
20:29
(4) этого намека я уже не осиливаю (( Источник - это не Номенклатура?
10 Popkorm
 
12.01.16
20:29
(8)как в (4) сделал, что показывает?
11 Игорь_МММ
 
12.01.16
20:35
(10) чувствую себя полным идиотом ... скажите по-русски чего делать? просто написать (4) и выполнить пробовал - ничего не сообщает. Можно ли как-то поставить типа точку останова в конвертации? в Конвртации только осваиваюсь - не ругайте сильно
12 mehfk
 
12.01.16
20:45
Залей правила на файлообменник.
13 PuhUfa
 
12.01.16
20:46
(11) Где то ты нас обманываешь -)
Сообщить(ТипЗнч(Источник));
вставь вместо своего кода в ПередВыгрузкой
и сделай выгрузку
14 Игорь_МММ
 
12.01.16
20:47
(4) (10) оставил только Сообщить(ТипЗнч(Источник))
Сообщает след:
Выборка из результата запроса
Номенклатура
Номенклатура
15 mehfk
 
12.01.16
20:48
ну вот же
>>Выборка из результата запроса
16 mehfk
 
12.01.16
20:50
добавь условие Если ТипЗнч(Источник) = Тип("СправочникССылка.Номенклатура") .....
.....
.....
Иначе
Сообщить(ТипЗнч(Источник));
КонецЕсли;
17 PuhUfa
 
12.01.16
20:53
Откуда там вообще выборка взялась? -)
18 Игорь_МММ
 
12.01.16
20:57
(16) Если ТипЗнч(Источник) = Тип("СправочникССылка.Номенклатура") Тогда
    Если Не Источник.ЭтоГруппа() Тогда
        Отказ = Источник.ВыгружатьВБП
    КонецЕсли
КонецЕсли

итого = ОписаниеОшибки         =  Метод объекта не обнаружен (ЭтоГруппа)
19 mehfk
 
12.01.16
20:58
(18) Врешь.
20 hhhh
 
12.01.16
21:01
(18) а если обмануть ее? Например так

   Если Не Источник.ЭтоГруппа Тогда
21 Игорь_МММ
 
12.01.16
21:01
(19) если бы. залил сюда https://cloud.mail.ru/public/8ADu/w2uoG7FFe
22 mehfk
 
12.01.16
21:03
(18) Тьфу. Нет такого метода. "ЭтоГруппа()". Есть поле "ЭтоГруппа"
23 Игорь_МММ
 
12.01.16
21:03
попробовал так
Если ТипЗнч(Источник) = Тип("СправочникССылка.Номенклатура") Тогда
    
        Отказ = Источник.ВыгружатьВБП
КонецЕсли

= Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9238)}: Преобразование значения к типу Булево не может быть выполнено
24 Jofa
 
12.01.16
21:06
(23)Попробуй вариант (20)
25 Jofa
 
12.01.16
21:07
Если Не Источник.ЭтоГруппа Тогда
   Отказ = Источник.ВыгружатьВБП;
КонецЕсли;
26 Игорь_МММ
 
12.01.16
21:08
сделал так
Если ТипЗнч(Источник) = Тип("СправочникССылка.Номенклатура") Тогда
    Если Не Источник.ЭтоГруппа Тогда
        Сообщить(Источник.Наименование);
        Отказ = Источник.ВыгружатьВБП
    КонецЕсли
КонецЕсли

ошибок не выдает , но и сообщений нет - не значит ли это что и выгрузки нет?
27 Игорь_МММ
 
12.01.16
21:11
если пишет выгружено 2900 объектов, а у них у всех ВыгружатьВБП = Ложь, значит в ветку "Если Не Источник.ЭтоГруппа Тогда" не заходит?
28 Игорь_МММ
 
12.01.16
21:12
то бишь выгружает все подряд?
29 mehfk
 
12.01.16
21:12
Смотри правила выгрузки данных. У тебя выгрузка по произвольному алгоритму. Поэтому и типЗнч = Выборка из результата запроса
30 Игорь_МММ
 
12.01.16
21:18
(29) спасибище-е-е...
блин, кто же это накалякал ?
31 Игорь_МММ
 
12.01.16
21:27
поставил на стандартный алгоритм
написал
Если ТипЗнч(Источник) = Тип("СправочникССылка.Номенклатура") Тогда    
    Если Не Источник.ЭтоГруппа Тогда
        Сообщить(Источник.Наименование);
        Отказ = Источник.ВыгружатьВБП
    КонецЕсли
КонецЕсли
сообщила наименования, и выгружено 3050 объектов - это значит что именно "выгружено" или просто "просмотрено и проверено на условие"?
32 mehfk
 
12.01.16
21:27
Ну ты уж глянь в файл сам.
33 Игорь_МММ
 
12.01.16
21:32
(32) м-да ..
спасибо, разобрался
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс