Имя: Пароль:
1C
 
Определение типа источника в обработчике ПКО
, ,
0 falselight
 
02.02.17
06:44
Необходимо определить тип источника в обработчике ПередКонвертациейОбъекта, в правилах конвертации данных.
В этом обработчике все объекты выгружаются как Источник.

ПКО.Источник
ТипЗнч(Источник)

эти конструкции возвращают синоним объекта, представление объекта в режиме предприятие. Но не его тип.

Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Источник.Ссылка))

эта конструкция ломается на Ссылке.

Как можно универсально определять тип выгружаемого объекта по переменной Источник в ПКО ?
1 falselight
 
02.02.17
07:31
Задача вроде проще некуда.
Я сам не сталкивался особо с источником.
2 Lexey_
 
02.02.17
07:42
(0) ТипЗнч(Источник) не может возвращать синоним или представление, она возвращает тип
3 falselight
 
02.02.17
07:55
(2) Но если я вывожу что оно возвращает методом СООБЩИть()
почему она выводит мне синонимы объектов с пробелами?

Или это не вывести методом СООБЩИТЬ()? Не бывает ведь такого.
4 Dmitry1c
 
02.02.17
07:56
(3) Если ТипЗнч(ТвойОбъект) = Тип("СправочникСсылка.Договоры")

вот так надо проверять
5 Lexey_
 
02.02.17
07:59
(3) я ему про тип, а он про пробелы
6 falselight
 
02.02.17
08:03
(4) То есть это будет отрабатывать, а выводиться будут в сообщить синонимы все равно?

(4) Я не стал пока рассматривать этот метод, так как мне нужно в условие пустить только к примеру документы и справочники.
Это тогда получится что нужно мне все идентификаторы документов и справочников переписывать???????

Есть функция которая не ломается ни на чем что идет в выгрузке, и возвращает тип, документ это, справочник, либо что то другое?
7 Lexey_
 
02.02.17
08:05
(6) да какие, синонимы?Покажи цитату из СП, что эта функция возвращает синоним, а не тип
8 falselight
 
02.02.17
08:05
(5) Ну тип этот, который возвращает эта функция должен идти же как "СправочникСсылка.Контрагенты" к примеру? И так же выводиться через сообщить?
А по сообщить, выводятся синонимы!
9 falselight
 
02.02.17
08:05
(7) Я смотрю что выводится по сообщить, и говорю.
10 Рэйв
 
02.02.17
08:07
(9)а ты не смотри на Сообщить. Оно приводит к строке для вывода и получает синоним.
11 Lexey_
 
02.02.17
08:07
(8) это ты сам придумал?
12 falselight
 
02.02.17
08:10
(10) Ну ок! То есть что бы пустить в условие документы и справочники нужно перечислять все идентификаторы по методу (4) ?

И это единственное решение?
13 falselight
 
02.02.17
08:10
(11) тебе в (10) это подтверждают
14 Рэйв
 
02.02.17
08:11
(12)Если нужны какието конкретные выборочные типы, то да.
15 Рэйв
 
02.02.17
08:12
+(14)чтобы не париться можно в СЗ их загнать и просто проверять на вхождение
16 Lexey_
 
02.02.17
08:15
(13) в (11) о том, что функция Сообщить() приводит тип к строке, а не о том, что тип, возвращаемый ТипЗнч() "должен идти же как "СправочникСсылка.Контрагенты""
17 falselight
 
02.02.17
08:18
(14) Нет все, просто Документы и Справочники
18 falselight
 
02.02.17
08:21
(16) То есть сообщить, приводит возвращаемый тип к строке и показывает его синоним?
Не знал что сообщить так делает. Я Всегда считал, что она возвращает то что возвращает функция, в таком же именно виде.
19 Рэйв
 
02.02.17
08:21
(17)тогда как в сабже у тебя через ТипВсеСсылки.
а почему падает на Источник.Ссылка - это смотреть надо в отладчике
20 Рэйв
 
02.02.17
08:22
(18)как она тебе "в таком же виде" объект в виде текста на экране покажет в виде текста?
21 Lexey_
 
02.02.17
08:23
(18) сообщить() ничего не возвращает, а принимает на вход строку или неявно приводит к строке переданное значение
22 falselight
 
02.02.17
08:38
(20) Ну преобразовывает в строку любое значение и показывает, я так всегда считал.
(21) Я имел ввиду выводит. Ну да приводит к строке переданное значение и выводит.
Я в первые узнал, что она переданный идентификатор типа выводит как синоним.
23 falselight
 
02.02.17
08:39
(19) Падает потому что видимо у какого то объекта нет Ссылки (
24 Рэйв
 
02.02.17
08:47
(23)Тип источника проверяй если не ссылочный тип, то не обрабатывай
25 falselight
 
02.02.17
08:52
(20) Да она показывает и объект и ссылку.
Объект это наверное то что выгружается.
А ссылка это то что в объектах содержится.
К примеру РеализацияТоваровУслуг и СчетФактуравыданная.

РТиУ - объект
СФВ - ссылка

если я не ошибаюсь
26 falselight
 
02.02.17
08:53
(24) Подскажите как проверять на ссылочный тип?
27 falselight
 
02.02.17
08:55
(26+) Я так понимаю, что если не ссылочный тип, то есть идет объект то нужно передавать Источник.Ссылка, иначе как Источник, так как там и так ссылка.
28 Абыр
 
02.02.17
08:59
Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Источник))
29 falselight
 
02.02.17
09:03
(25) или наоборот счет фактура выданная идет как объект
30 falselight
 
02.02.17
09:05
(28) Это проверяет является ли документом выгружаемый источник?
31 Абыр
 
02.02.17
09:07
(30) Да
32 falselight
 
02.02.17
09:13
(31) Ясно вставил это условие, оно вроде отрабатывает нормально, сейчас ещё раз проверю.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.