Имя: Пароль:
1C
1С v8
Конвертация данных. ПКО ПослеЗагрузкиОбъекта
,
0 fitc
 
23.12.14
23:04
Друзья, требуется ваша помощь.

ПКО ПослеЗагрузкиОбъекта не срабатывает.
Объект выгружается, все реквизиты синхронизируются. Код написанный в ПКО ПослеЗагрузкиОбъекта(он там типовой кстати был) не срабатывает почему-то, не читает обработчик ПослеЗагрузкиОбъекта.

Обмен БП 3.0.36.21 -> УНФ 1.5.2.25

Подскажите пожалуйста если кто сталкивался, или имеет представление о данной проблеме.
1 Ник второй
 
23.12.14
23:06
ОТладчиком смотрел?
2 vicof
 
23.12.14
23:06
кривой код?
3 Alexor
 
23.12.14
23:36
Объект выгружается, а загружается ли?
4 Alexor
 
23.12.14
23:37
Может стоит галка "не изменять объект в приемнике"
5 fitc
 
24.12.14
06:31
(1) Отладчиком не смотрел, так и не научился правила конвертации отлаживать.
6 fitc
 
24.12.14
06:32
(2) Нет, код не кривой. В обработчик могу писать все что угодно, туда не заходит.
7 fitc
 
24.12.14
06:33
(3) Да, загружается, все что конвертируется по свойствам, нормально встает, а вот обработчик после загрузки почему-то не читается.
8 fitc
 
24.12.14
06:35
(4) Создаю новые объекты. Да и галки "не изменять объект в приемнике не" не стоит, поэтому дело не в этом. Спасибо за совет
9 Rie
 
24.12.14
06:51
(6) А откуда известно, что не заходит, если (5)?
(8) А вот тут - поподробнее. И желательно бы показать код, новые объекты создающий.
10 13_Mult
 
24.12.14
07:18
Отказ где то раньше срабатывает
11 fitc
 
24.12.14
09:24
(9) В обработчике могу писать любые переменные которые не определены и он не ругается т.е. в обработчике пиши что угодно, он не как не реагирует.

какой код? это настроено на уровне конвертации значения свойств (соответствие реквизитов), там все нормально по реквизитам переноситься. А вот в обработчик после загрузки не читает. Или вы имеете ввиду что в обработчиках конвертации свойств может быть программный код?
12 fitc
 
24.12.14
09:26
(10) Вы имеете ввиду в обработчиках значения свойств? т.к. во всех обработчиках объекта не чего не написано. И в правилах выгрузки данных тоже пусто. Спасибо за совет
13 fitc
 
24.12.14
20:26
Ребята, есть еще идеи?
14 fitc
 
24.12.14
20:58
В типовых правилах обмена (БП 3.0.36.21 -> УНФ 1.5.2.25), есть ПКО "ПоступлениеНаСчет", так вот там присутствует в обработчике после загрузки, программный код, который не каким образом не выполняется и так- все что угодно можно писать туда, все равно не читается. ПРАВИЛА ТИПОВЫЕ, что может быть? :(
15 Йохохо
 
24.12.14
21:40
(14) сам менял что то?
16 Rie
 
24.12.14
21:45
(9) То, что не реагирует - это естественно. Обработчики - не процедуры, а тексты. Выполнить() - и вперёд.
А обработчики - явно не пустые. Иначе и заходить было бы некуда.
Что касается отладчика - там у КД есть специальный режим для этого.
17 Йохохо
 
24.12.14
22:02
(16) он не работает местами, УТ 11.1.9 я не смог, но обошел, не сильно пытался
18 fitc
 
24.12.14
22:02
(15) Менял, но я типовые правила загрузил, он тоже не реагирует в обработчике "После загрузки".
19 hhhh
 
24.12.14
22:03
(14) правила которые  макете или те, что загружены в базу смотрите?
20 Rie
 
24.12.14
22:05
(17) да по большому счёту он и не нужен. Вставить Сообщить() туда, где действительно тонкое место - куда больше пользы, IMHO.
21 Йохохо
 
24.12.14
22:06
(18) попробуй форсировать модифицированность, вставь любой код в ПриЗагрузке
22 fitc
 
24.12.14
22:06
(16) Выполнить мне кажется немного не то.

К примеру я хочу В ПКО "ПослеЗагрузки", написать следующее:

Сообщить("Тестовое сообщение"); или к примеру

Объект.Комментарий = "Тест"; или к примеру

Перем1;

Не первое, не второе, не третье не срабатывает, т.е. в обработчик не заходит, как можно использовать Выполнить(), что бы скажем реализовать следующее:

Объект.Комментарий = "Тест"

Спасибо за помощь, отладчиком думаю научусь еще пользоваться :)
23 fitc
 
24.12.14
22:07
(17) К сожалению мне ни как не обойти, нужен данный обработчик
24 Йохохо
 
24.12.14
22:09
(22) оно классно, но у КД свой механизм есть и обработчики событий. Его надо провокать
25 Rie
 
24.12.14
22:09
(22) Я не о том, чтобы использовать Выполнить, а о том, что правила - это просто тексты, и поэтому "пиши что угодно". В (9) я просил показать код - но до сих пор этот код почему-то не увидел.
26 Йохохо
 
24.12.14
22:13
я не уверен, но послезагрузки не будет вызван без необходимости перезаписи
27 fitc
 
24.12.14
22:15
(25) Пишу что угодно, не срабатывает;

Если РежимЗагрузкиДанныхВИнформационнуюБазу() Тогда
    
    Пишу что угодно не срабатывает2;
    
    Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
        Объект.РасшифровкаПлатежа.Добавить();
        Объект.РасшифровкаПлатежа[0].СуммаПлатежа = Объект.СуммаДокумента;
    КонецЕсли;
    
    // Заполнение автора документа.
    Выполнить(Алгоритмы.ЗаполнитьАвтора);
    
    // Заполнение договора контрагента.
    Выполнить(Алгоритмы.ЗаполнитьДоговорКонтрагента);
    
    // Очистка реквизитов не используемых для видов операций.
    Если Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеНаСчет.ОтПодотчетника Тогда
        Объект.Корреспонденция = Неопределено;
        Объект.Контрагент = Неопределено;
        Объект.РасшифровкаПлатежа.Очистить();
    ИначеЕсли Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеНаСчет.Прочее Тогда
        Объект.Контрагент = Неопределено;
        Объект.Подотчетник = Неопределено;
        Объект.Документ = Неопределено;
        Объект.РасшифровкаПлатежа.Очистить();
    КонецЕсли;

Это то что написано в обработчике "ПослеЗагрузки";
28 fitc
 
24.12.14
22:19
(25) Хочу написать где-нибудь, скажем

Объект.Комментари = "Тест";
29 Rie
 
24.12.14
22:20
РежимЗагрузкиВИнформационнуюБазу()... А обмен идёт через файл?
30 fitc
 
24.12.14
22:21
(19) Правила загруженные в базу
31 fitc
 
24.12.14
22:21
(29) Да, через файл
32 fitc
 
24.12.14
22:22
(20) Все верно, через сообщить просто отлаживать, только в данном случае не чего не сообщает )
33 Йохохо
 
24.12.14
22:22
(32) есть мысли почему?
34 Rie
 
24.12.14
22:24
(32) Потому что не выполняется. А не выполняется потому, что РехимЗагрузкиВИнформационнуюБазу() возвращает Ложь.
35 fitc
 
24.12.14
22:28
(34) Я, перед РехимЗагрузкиВИнформационнуюБазу() пытался писать и сообщить и все что угодно, не срабатывает.

Т.е. думаете если написать:

Объект.Комментарий = "тест";
Объект.Записать();

Перед РехимЗагрузкиВИнформационнуюБазу(), то сработает?
36 fitc
 
24.12.14
22:29
(33)как я и говорил не заходит в обработчик, имхо
37 Йохохо
 
24.12.14
22:37
(36) там в отладчике есть условная остановка
38 fitc
 
24.12.14
22:38
(35) Попробовал, не получилось.
39 fitc
 
24.12.14
22:39
(37) С отладчиком дольше провожусь) Что-то нечего не выходит
40 Йохохо
 
24.12.14
22:41
(38) у меня вообще не получилось с отладкой на УТ 11.1.9, обошел чипыжами
41 fitc
 
24.12.14
22:42
(34) Перед РехимЗагрузкиВИнформационнуюБазу() Написал:

Объект.Комментарий = "тест";
Объект.Записать();

не чего не сработало, комментарий остался тот, который конвертируется ПКС.
42 Йохохо
 
24.12.14
22:45
(41) хз, F11
43 fitc
 
24.12.14
22:57
(42) Все равно спасибо за помощь
44 fitc
 
24.12.14
23:04
Друзья, может еще у кого-нибудь остались какие-то идеи?
45 fitc
 
24.12.14
23:24
(34) А как тогда быть? т.е. получается что если обмен происходит посредством файла, то В обработчике "ПередЗагрузкой" нельзя писать код? Rie на вас надежда)
46 Rie
 
24.12.14
23:47
(45) Почему нельзя? Можно. Вот только похоже, что у Вас используются не те правила, что Вы написали.
Какой-нибудь _другой_ обработчик срабатывает?
47 fitc
 
25.12.14
22:28
(46) Срабатывает только Перед Выгрузкой, При Выгрузке, После Выгрузки, После Выгрузки в Файл.

Обработчики:
Перед загрузкой
При загрузке
После загрузки

не срабатывают
48 hhhh
 
25.12.14
23:08
так вы где это делаете? В БП или в УНФ?
49 MadJhey
 
25.12.14
23:47
Посмотри какой стоит режим совместимости в правилах.
1.  если 2.0 и ниже тогда код обработчиков после загрузки  в конфигурации в соотв. обработках (см. модуль менеджера плана обмена там прописано название обработок).
2. если ничего не указано то код обработчиков после загрузки вызывается из правил, которые находятся в конф. приемнике - правила конфигурации корреспондента. Т.е. загружать надо не только в конфигурацию источник, но и в конф. приемник в правила конвертации корреспондента.
П.С после загрузки правил не забываем перезапускать 1с.
50 fitc
 
26.12.14
09:03
(48) Правила пишу в БП.
51 fitc
 
26.12.14
09:04
(49) Спасибо за совет обязательно проверю и отпишусь.
52 fitc
 
26.12.14
20:56
(49) Проверил, режим совместимости стоит

<ВерсияФормата РежимСовместимости="РежимСовместимостиСБСП20">2.01</ВерсияФормата>

Что можете посоветовать?
53 fitc
 
26.12.14
21:39
Господа, ВСЕ ПОЛУЧИЛОСЬ!!!

MadJhey, действительно обработчики вызываются из правил в конфигурации приемника. В файле CorrespondentExchangeRules.XML, всем огромно спасибо за помощь!!!! (49) (46)  Отдельное спасибо Вам!
54 hhhh
 
26.12.14
21:42
загрузку в унф запускаете?
55 fitc
 
26.12.14
21:44
(54) в УНФ