Имя: Пароль:
1C
1С v8
КД2 Конвертация Справочника в перечисление
0 zak555
 
02.03.14
00:11
интересует реализация через ПКО, где источник (7ка) справочник , а приёмник (8ка) перечисление не через пкз...

видел, что можно в обработчике после выгрузки этого пко писать значение перечисления в УзелСсылки (пример

Если Источник.Ставка = 18 тогда
    
    УзелСсылки  = "НДС18";
КонецЕсли;


) и обязательного указания у пко галки не запоминать выгруженные объекты..

а вот как реализовать тоже самое, но чтобы не ставить эту галку ?
1 Aleksey
 
02.03.14
00:11
УзелСсылки  = "НДС18";?

А что значение = "НДС18" уже нельзя писать?
2 zak555
 
02.03.14
00:12
(1) не взлетает
3 zak555
 
02.03.14
00:13
по идеи можно написать
Приемник.text =  "НДС18";


но тогда загрузка не работает
4 Aleksey
 
02.03.14
00:13
5 Aleksey
 
02.03.14
00:14
там как раз справочник ставки НДС в перечисление через УзелСсылки
6 zak555
 
02.03.14
00:16
(4) так я это и описал в 0
там кстати не указано, что нужно поставить галку о незапоминании выгруженных объектов
7 Aleksey
 
02.03.14
00:18
(6) ну я вообще не понмаю как это у него работает, ибо УзелСсылки  - это XML, а он тупо присваивает ему строку. И что в итоги получится?
8 Aleksey
 
02.03.14
00:18
Так а почему через значение в ПКС невзлетело?
9 Aleksey
 
02.03.14
00:21
(6) я так понимаю типа тут видел http://www.itland.ru/forum/index.php?showtopic=7757
10 zak555
 
02.03.14
01:07
(7) тогда файл выгрузи получается такой

<Объект ИмяПравила="ПКОСтавкиНДС" Тип="ПеречислениеСсылка.СтавкиНДС" Нпп="2"/>
//...
<ТабличнаяЧасть Имя="Услуги">
<Запись>
<Свойство Тип="ПеречислениеСсылка.СтавкиНДС" Имя="СтавкаНДС">

<Значение>НДС18</Значение>

</Свойство>
//...
11 zak555
 
02.03.14
01:14
(10) а тут антилогика...

если бы не было первой строки -- всё логично,
а если есть должно быть что-то типа такого

<Объект ИмяПравила="ПКОСтавкиНДС" Тип="ПеречислениеСсылка.СтавкиНДС" Нпп="2">
<Ссылка Нпп="2">
<Значение>НДС18</Значение>
//...

<ТабличнаяЧасть Имя="Услуги">
<Запись>
<Свойство Тип="ПеречислениеСсылка.СтавкиНДС" Имя="СтавкаНДС">

<Ссылка Нпп="2" />

</Свойство
12 zak555
 
02.03.14
01:14
(8) тогда нужно будет у всех свой источника это прописывать, что нелогично
надо в одном месте прописать
13 zak555
 
02.03.14
01:29
что бы не создавалось

<Объект ИмяПравила="ПКОСтавкиНДС" Тип="ПеречислениеСсылка.СтавкиНДС" Нпп="2"/>

забыл в обработчике после выгрузки написать отказ = 1;
14 Aleksey
 
02.03.14
03:16
(12) Зачем? Пропиши в ПКО правила конвертации перечисления. И не надо во всех местах
15 zak555
 
02.03.14
11:00
(14) ты же в 8 мне другое советовал

Значение = "НДС18";

взлетает только у пкс
16 Aleksey
 
02.03.14
11:02
(15) Почему? в ПКО подменяй источник
Типа
Если Источник =  18 тогда
   Источник ="НДС18"
...
17 zak555
 
02.03.14
11:29
(16) в каком обработчике ?
18 Aleksey
 
02.03.14
11:30
(16) ПКО перед выгрузкой
19 Alexor
 
02.03.14
11:38
А в ПКО указать произвольное значение в перечисление.
И при выгрузке указывать значение перечисления разве не взлетает?
20 Aleksey
 
02.03.14
11:42
(19) Ему лень это везде прописывать (во всех документах, справочниках)
21 Naumov
 
02.03.14
11:43
(0) Пример такой конвертации есть в демке.
22 zak555
 
02.03.14
12:28
(18) написал

Источник ="НДС18";

ничего не выгружает
23 zak555
 
02.03.14
12:29
(21) между пубом и упп, видел
24 Сияющий Асинхраль
 
02.03.14
12:57
ПередВыгрузкой:

Если Источник.Ставка = 18 тогда
    Значение  = "НДС18";
КонецЕсли;

И собсно все...
25 Aleksey
 
02.03.14
13:09
(24) не хочет он так
26 Aleksey
 
02.03.14
13:10
а если через глобальнуую процедуру

Обработчики "Конвертация"
Перед конвертацией объекта
Условия возникновения события
Событие выполняется перед началом конвертации объекта по правилу конвертации. Вызов осуществляется до вызова обработчика "Перед выгрузкой" правила конвертации объектов. Могут использоваться все параметры орпределенные для указанного обработчика правила конвертации объектов. По сути и назначению это тот же обработчик что и "Перед выгрузкой" в правиле конвертации, но определенный на глобальном уровне - то есть вызываемый для всех правил конвертации. Обработчик удобен, например, когда для справочников всех видов нужно установить НеЗамещатьОбъектПриЗагрузке = Истина или ВсеОбъектыВыгружены = Истина. Обработчик вызывается для всех объектов не зависимо от того выгружается этот объект непосредственно, или потому, что на него есть ссылки.

Параметры:
Полностью совпадают с параметрами обработчика "Перед выгрузкой" у "Правила конвертации объектов"

Пример:
Если Лев(ПКО.Приемник, 10) = "Справочник" Тогда
НеЗамещатьОбъектПриЗагрузке = Параметры.НеЗамещатьСправочникиПриЗагрузке;
ИначеЕсли Лев(ПКО.Приемник, 8) = "Документ" Тогда
НеЗамещатьОбъектПриЗагрузке = Параметры.НеЗамещатьДокументыПриЗагрузке;
КонецЕсли;
27 Сияющий Асинхраль
 
02.03.14
13:22
(25) Почему у меня везде работает, а у вас не хочет?
28 Йохохо
 
02.03.14
14:18
(27) может у него ПКО нету
В типовой поставке есть правила ПУБ - УПП, там есть пример
29 Aleksey
 
02.03.14
14:26
(27) вопрос не в том работает или нет. Вопрос в лени прописывать эти условия во все документы и справочниках
30 Йохохо
 
02.03.14
14:35
а так
Выражение - Неопределено. Может быть указано произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена. Данная возможность, используется только если конфигурация-приемник реализована на платформе V8
31 zak555
 
02.03.14
14:53
(29) это не лень, верность мысли
32 zak555
 
02.03.14
14:54
(26) что туда передавать ?
33 zak555
 
02.03.14
14:55
(30) сейчас проверю
34 zak555
 
02.03.14
14:56
(30) так это в пкс писать...
не пойдёт
35 Aleksey
 
02.03.14
15:18
(32)? Т.е. это глобальный обработчик который вызывается всегда при конвертации любого объекта
36 Йохохо
 
02.03.14
15:36
(35) типа так?

Если ТипЗначения(Источник) = Тип(СправочникССылка.СтавкаНДС) Тогда
ИмяПКО = "СтавкиНДС";
КонецЕсли
37 Йохохо
 
02.03.14
15:37
если ошибки исправить)
38 Aleksey
 
02.03.14
15:42
ну имя не нужно, а вот значение, точнее источник нужно
39 mulmulya
 
02.03.14
16:01
из 7 ставки ндс переносила конвертацией значений
40 zak555
 
02.03.14
16:02
(35) не пойму : через какие "параметры" передавать значение ?
41 zak555
 
02.03.14
16:02
(39) в 0 написано не через пкз
это тоже нелогичный способ