|
Конвертация УТ-БП | ☑ | ||
---|---|---|---|---|
0
alex-ander-777
24.02.14
✎
22:57
|
Господа, затупил.
Есть односторонняя конвертация УТ-БП on-line. Уже и редактировал правила, и свои создавал, но тут споткнулся. Надо после выгрузки документа сделать записи в некоторый регистр сведений (без регистратора) базы-приемника. Одно из измерений - данный документ, то есть как минимум он должен быть записан. 1. То есть наверное надо написать что-то в обработчике ПКО "после выгрузки в файл"? Вообще, в случае on-line этот обработчик когда срабатывает? 2. Как обратиться к базе-приемнику из обработчика? Какая переменная? Какая-нибудь Параметры.Объект подключения? Большая просьба знающим ответ подсказать... |
|||
1
zmaximka
24.02.14
✎
23:27
|
а чего обработчик после загрузки не устраивает?
|
|||
2
alex-ander-777
24.02.14
✎
23:30
|
Не хочу трогать БП. Хочется всё на стороне УТ сделать.
|
|||
3
zmaximka
24.02.14
✎
23:31
|
ну ссылка то у тебя есть так что можно и после выгрузки в файл.
|
|||
4
alex-ander-777
24.02.14
✎
23:34
|
Пока допустим. А что по поводу второго пункта?
|
|||
5
zmaximka
24.02.14
✎
23:41
|
(4) а зачем? нужно ПКО которое будет делать запись в регистр и в ПослеВыгрузкиВфайл делать ВыгрузитьПоПравилу(бла,бла,бла);
|
|||
6
zmaximka
24.02.14
✎
23:45
|
в хелпе по обработчику пример есть
|
|||
7
alex-ander-777
24.02.14
✎
23:46
|
Типа ПКО Документ-Регистр? Ну... может быть. Завтра буду пробовать.
|
|||
8
alex-ander-777
25.02.14
✎
08:59
|
Всё-таки не въехал.
В базе приемнике надо сделать запись в независимом регистре сведений. Одно из измерений - ссылка на созданный документ в базе-приемнике, другие измерения зависят от реквизитов документа в базе-источнике. У документа в базе-приемнике соответствующих реквизитов нету. Вот как это сделать? |
|||
9
Godofsin
25.02.14
✎
09:02
|
(8) Читай (5) еще раз
|
|||
10
alex-ander-777
25.02.14
✎
09:04
|
Да читал. Как ссылку на объект в базе-приемнике-то получить?
|
|||
11
Godofsin
25.02.14
✎
09:07
|
(10) Зачем? в ПКО по твоему реквизиту, где ссылка нужна, указываешь ПКО этого документа и передаешь туда ссылку из источника
|
|||
12
Godofsin
25.02.14
✎
09:07
|
))) во написал )))
|
|||
13
alex-ander-777
25.02.14
✎
09:13
|
Да... ну попробую разобраться, как до работы доеду...
|
|||
14
SleepyHead
гуру
25.02.14
✎
09:25
|
> Да читал. Как ссылку на объект в базе-приемнике-то получить?
Открой в ПКО обработчик "После загрузки", нажми кнопку "Информация по обработчикам". Если память не изменяет, он так и называеся - Объект. |
|||
15
floody
25.02.14
✎
09:27
|
Решение в (1).
|
|||
16
SleepyHead
гуру
25.02.14
✎
09:28
|
В обработчике "После загрузки" документа есть ссылка на объект-документ, Объект.Ссылка - это уже ссылка на документ, вот в этом обработчике и прописывай код записи в регистр сведений.
В конце обработчика не забудь прописать ОбъектМодифицирован = Ложь; чтобы не выполнялась повторная запись объекта системой конвертации данных. |
|||
17
alex-ander-777
25.02.14
✎
09:46
|
(14) > обработчик "После загрузки"
Это уже на стороне базы-приемника? Но там другая сложность: =========================== Одно из измерений - ссылка на созданный документ в базе-приемнике, другие измерения зависят от реквизитов документа в базе-источнике. У документа в базе-приемнике соответствующих реквизитов нету. =========================== вот для этих других измерений информации в базе-приемнике не существует. Или я словами не понимаю - нужна схема, а здесь её не нарисуешь.. |
|||
18
alex-ander-777
25.02.14
✎
09:47
|
Ладно, видимо, вопрос сырой, поковыряюсь - созрею для более внятного.
|
|||
19
SleepyHead
гуру
25.02.14
✎
09:53
|
Тогда создавай ПВД с произвольным алгоритмом для переноса этого регистра, значения измерений будут конвертироваться штатными средствами КД, правила конечно пропишешь.
|
|||
20
SleepyHead
гуру
25.02.14
✎
09:57
|
Что конкретно надо переносить в тот регистр, можешь накапливать в параметрах конвертации, а потом в ПВД этот параметр использовать.
Примерно так: 1. В обработчике "Перед конвертацией" создать параметр конвертации (допустим, таблица значений) 2. В обработчиках выгрузки документов добавлять в эту таблицу значений нужные значения (ссылки на стороне базы-источника) 3. к моменту выгрузки ПВД этого регистра таблица значений будет заполнена, в ПВД ставишь тип алгоритма - произвольный, в переменную ВыборкаДанных приписываешь ссылку на эту коллекцию, а в ПКС измерений прописываешь правила конвертации объектов исходной базы |
|||
21
alex-ander-777
25.02.14
✎
11:20
|
Ага, уже что-то дельное! Спасибо, буду думать.
|
|||
22
SleepyHead
гуру
25.02.14
✎
11:22
|
В марте открывается очередной поток курса по конвертации у Гилева, автор, записывайся, не пожалеешь.
|
|||
23
alex-ander-777
25.02.14
✎
11:23
|
А в апреле общероссийская выставка по тематике нашей фирмы. Не будет времени.
|
|||
24
Aleksey
25.02.14
✎
11:24
|
(1) А он разве работает при онлайн обмене?
|
|||
25
SleepyHead
гуру
25.02.14
✎
11:26
|
(24) С чего бы ему не работать? Возьмите правила УТ11-> БП.30, к примеру документ ввода начальных остатков, вот текст обработчика "После загрузки"
Выполнить(Алгоритмы.ОбработатьЗаписьДокументаПослеЗагрузки); Для Каждого СтрокаТаблицы Из Объект.БухСправка Цикл ЧислоАктивныхСубконто = СтрокаТаблицы.СчетУчета.ВидыСубконто.Количество(); Для Сч = 1 По ЧислоАктивныхСубконто Цикл ТипСубк = СтрокаТаблицы.СчетУчета.ВидыСубконто[Сч - 1].ВидСубконто.ТипЗначения; Если ТипСубк.ПривестиЗначение(СтрокаТаблицы["Субконто" + Сч]) <> СтрокаТаблицы["Субконто" + Сч] Тогда СтрокаТаблицы["Субконто" + Сч] = ТипСубк.ПривестиЗначение(СтрокаТаблицы["Субконто" + Сч]); КонецЕсли; КонецЦикла; Для Сч = (ЧислоАктивныхСубконто + 1) По 3 Цикл Если Не СтрокаТаблицы["Субконто" + Сч] = Неопределено Тогда СтрокаТаблицы["Субконто" + Сч] = Неопределено; КонецЕсли; КонецЦикла; КонецЦикла; |
|||
26
Aleksey
25.02.14
✎
11:27
|
(25) А ничего что это не онлайн обмен?
|
|||
27
Aleksey
25.02.14
✎
11:27
|
у меня есть правило в котором после загрузки прописано
Выполнить(Алгоритмы.ПровестиДокументы); Если я выгружаю через файл - то алгоритм отрабатывает Если делаю онлайн-обмен - то алгоритм не работает |
|||
28
SleepyHead
гуру
25.02.14
✎
11:30
|
Возможно, у вас корпоративный обмен, и обработчики выгружены в отдельную обработку и встроены в план обмена.
|
|||
29
SleepyHead
гуру
25.02.14
✎
11:32
|
Ну и можно же сообщений навтыкать, пред вызовом алгоритма, после вызова, посмотреть что в алгоритме.
Опять же, режим совместимости с БСП надо смотреть. |
|||
30
13_Mult
25.02.14
✎
11:56
|
Имхо при онлайн обмене правила лежат в макете плана обмена. И не помню что и где но не всё при онлайн обмене работает и наоборот.
Что то можно посмотреть в Конвертации. |
|||
31
SleepyHead
гуру
25.02.14
✎
11:59
|
> Имхо при онлайн обмене правила лежат в макете плана обмена
Не совсем так, в менеджере плана обмена есть функция, которая возвращает имя обработки с обработчиками событий. Но применяется это только в режиме, когда обработчики выгружаются отдельно, правила отдельно. Обычно применяется при передаче сведений не внутри локальной сети, а через интернет. |
|||
32
13_Mult
25.02.14
✎
12:04
|
(31) Если надо бороться за безопасность и в сообщении не было ни каких обработчиков, то да, можно только так. ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |