|
Конвертация данных. ПКО ПослеЗагрузкиОбъекта | ☑ | ||
---|---|---|---|---|
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) в УНФ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |