|
КД. Перенос документа по реквизиту | ☑ | ||
---|---|---|---|---|
0
Odavid
29.03.12
✎
01:00
|
Надо перенести ПлатежноеПоручениеИсходящее - только с операцией "ПеречислениеЗП".
Рисую в ПКО "Перед загрузкой": Если Источник.ВидОперации = Перечисления.ВидыОперацийППИсходящее.ПеречислениеЗП Тогда Отказ = Ложь; Иначе Отказ = Истина; КонецЕсли; - переносит все равно все платежки (по всем операциям). В ПВД просто стоит выгружать ППИ. |
|||
1
Aleksey
29.03.12
✎
01:01
|
Откуда в "Перед загрузкой" Источник??
|
|||
2
дущ
29.03.12
✎
01:03
|
(0) Вот этот код что ты привел (только Источник замени на Объект) вставь в Перед выгрузкой ПВД.
|
|||
3
Aleksey
29.03.12
✎
01:06
|
(2) Не путай, он и без тебя прекрасно сам запутается.
Источник при выгрузки Объект при загрузки |
|||
4
Odavid
29.03.12
✎
01:06
|
(1) а разве ПередЗагрузкой - это не перед загрузкой в приемник?
(2) понял |
|||
5
Aleksey
29.03.12
✎
01:07
|
(4) Да, но откуда при загрузки источник?
|
|||
6
Odavid
29.03.12
✎
01:08
|
(5) из справки взял:
Перед загрузкой Условия возникновения события Только для платформы V8. Событие выполняется перед загрузкой объекта. Возможен отказ от загрузки, например, в случае невыполнения каких-либо условий. Загружаемый в БД объект еще не инициализирован. Параметры: Источник - Строка. Представление объекта источника. Пустая строка, если представление объекта источника не выгружалось. |
|||
7
Aleksey
29.03.12
✎
01:09
|
(6) Учу читать, Дорого
|
|||
8
Aleksey
29.03.12
✎
01:10
|
Источник - СТРОКА.(!) Представление (!!) объекта источника
Откуда у строки вдруг появится вид операции |
|||
9
Aleksey
29.03.12
✎
01:11
|
Перед выгрузкой
Условия возникновения события Событие выполняется перед выгрузкой каждого объекта в файл обмена, не зависимо от того как выгружается объект по правилу выгрузки данных либо потому что на него есть ссылки. Событие вызывается, когда узел объекта приемника еще не создан и недоступен. Возможен отказ от выгрузки, например, в случае невыполнения каких-либо условий. Параметры: Параметры - Структура, в которой хранятся переменные доступные во всех обработчиках Источник - Произвольный - выгружаемый объект источник (ссылка или произвольные данные) Отказ - Булево - Если Истина, то объект не выгружается Пример: Отказ = Источник.ЭтоГруппа(); Если (ПустаяСтрока(Источник.Адрес) = 1) И (ПустаяСтрока(Источник.АдресПочт) = 1) И (ПустаяСтрока(Источник.Телефоны) = 1) И (ПустаяСтрока(Источник.eMail) = 1) Тогда Отказ = 1; КонецЕсли; |
|||
10
Odavid
29.03.12
✎
01:11
|
(3) Перед выгрузкой тоже нет объекта.
Перед выгрузкой Условия возникновения события Событие выполняется перед выгрузкой каждого объекта в файл обмена, не зависимо от того как выгружается объект по правилу выгрузки данных либо потому что на него есть ссылки. Событие вызывается, когда узел объекта приемника еще не создан и недоступен. Возможен отказ от выгрузки, например, в случае невыполнения каких-либо условий. Параметры: Источник - Произвольный - выгружаемый объект источник (ссылка или произвольные данные) Так что на самом деле и как делать? |
|||
11
Aleksey
29.03.12
✎
01:12
|
(10) И это противоречит тому что написано в (3)???
|
|||
12
Odavid
29.03.12
✎
01:12
|
(8) да, недоглядел - увидел Источник, и посчитал его за ссылку.. :)
|
|||
13
Odavid
29.03.12
✎
01:13
|
(11) не (3), а (2) противоречит ))
|
|||
14
Aleksey
29.03.12
✎
01:13
|
В ПКО (!) Перед выгрузкой
Если Источник.ВидОперации = Перечисления.ВидыОперацийППИсходящее.ПеречислениеЗП Тогда Отказ = Ложь; Иначе Отказ = Истина; КонецЕсли; |
|||
15
Odavid
29.03.12
✎
01:14
|
Т.е. "ПередВыгрузкой" ставлю:
Если Источник.ВидОперации = Перечисления.ВидыОперацийППИсходящее.ПеречислениеЗП Тогда Отказ = Ложь; Иначе Отказ = Истина; КонецЕсли; - и все, что не ПеречислениеЗП, не выгружается? Или опять не так? |
|||
16
Odavid
29.03.12
✎
01:15
|
(14) понял, спасибо ))
|
|||
17
Odavid
29.03.12
✎
01:33
|
а какая разница между ПередВыгрузкой в ПКО и ПередВыгрузкой в ПВД?
|
|||
18
Aleksey
29.03.12
✎
01:37
|
(17) Огромная
|
|||
19
Aleksey
29.03.12
✎
01:39
|
В ПВД - идет выборка объектов, соответственно там ПередВыгрузкой ты можешь сформировать свой список объектов (Например список документов). Т.е. например сделать запрос к документам по условию и выгружать документы попавшие в запрос
А ПКО - это конвертация конкретного объекта который был выбран в ПВД |
|||
20
Odavid
29.03.12
✎
01:39
|
(18) так вроде одно и тоже - в ПКО перед выгрузкой в файл, в ПВД - тоже перед выгрузкой.
И еще - по отбору из справочника можно задать вопрос? или новую тему создать? |
|||
21
Odavid
29.03.12
✎
01:41
|
(19) т.е. в ПВД - обработка ВСЕХ объектов данного вида, а в ПКО - только правило конвертации отдельного объекта.
Понятно. |
|||
22
Aleksey
29.03.12
✎
01:43
|
(21) почти, за исключением того что в принципе ничего не мешает выгружать все документы в одном ПВД, ибо произвольный алгоритм и ВыгрузитьПоПравилу творят чудеса
|
|||
23
Aleksey
29.03.12
✎
01:44
|
Т.е. в ПВД описываем ЧТО будем выгружать, а в ПКО - КАК, т.е. правила конвертации объекта источник в объект приемник
|
|||
24
Aleksey
29.03.12
✎
01:49
|
Т.е. сначало отрабатывает ПВД передВыгрузкой, где ты можешь указать по какому правилу обрабатывать, в принципе можно и тут указать условие, как сказал (2)
Т.е. в ПВД перед выгрузкой Если Объект.ВидОперации = Перечисления.ВидыОперацийППИсходящее.ПеречислениеЗП Тогда Отказ = Ложь; Иначе Отказ = Истина; КонецЕсли; Затем отрабатывает правило из ПКО только тут уже объект - это источник ПКО Перед выгрузкой Если Источник.ВидОперации = Перечисления.ВидыОперацийППИсходящее.ПеречислениеЗП Тогда Отказ = Ложь; Иначе Отказ = Истина; КонецЕсли; |
|||
25
Odavid
29.03.12
✎
01:50
|
(22) вот у меня со справочниками не получилось.
СПРАВОЧНИК "ФИЗЛИЦА" ФИО ФИЗЛИЦ в "После загрузки в файл": Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаСреза", КонецДня('20110320')); Запрос.УстановитьПараметр("Объект", Источник); //Выгрузка ФИО Запрос.Текст = "ВЫБРАТЬ | ФИОФизЛицСрезПоследних.Период, | ФИОФизЛицСрезПоследних.ФизЛицо, | ФИОФизЛицСрезПоследних.Фамилия, | ФИОФизЛицСрезПоследних.Имя, | ФИОФизЛицСрезПоследних.Отчество |ИЗ | РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаСреза, ФизЛицо = &Объект) КАК ФИОФизЛицСрезПоследних"; Запрос.УстановитьПараметр("Объект", Источник); Выборка = Запрос.Выполнить().Выбрать(); Сообщить(Выборка.Количество()); Пока Выборка.Следующий() Цикл ВыгрузитьПоПравилу(Выборка, , , , "ФИОФизЛиц"); КонецЦикла; - работает. тут же пишу выгрузку паспортных данных, чтоб все вместе сразу: Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ПаспортныеДанныеФизЛицСрезПоследних.Период, | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо КАК ФизЛицо, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения, | ПаспортныеДанныеФизЛицСрезПоследних.ДатаРегистрацииПоМестуЖительства |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(&ДатаСреза, ФизЛицо = &Объект) КАК ПаспортныеДанныеФизЛицСрезПоследних"; Запрос.УстановитьПараметр("ДатаСреза", КонецДня('20110320')); //Дата Запрос.УстановитьПараметр("Объект", Источник); //Контактные лица, Физические лица РезультатЗапроса = Запрос.Выполнить().Выбрать(); Сообщить("Количество строк контактной информации """ + Объект.Наименование + """: " + Выборка.Количество()); Пока Выборка.Следующий() Цикл ВыгрузитьПоПравилу(Выборка, , , , "ПаспортныеДанныеФизЛиц"); КонецЦикла; - не работает.. |
|||
26
Aleksey
29.03.12
✎
01:55
|
А файл сам смотрел? Оно вообще выгружается?
|
|||
27
Odavid
29.03.12
✎
02:13
|
(26) конечно выгружается.
Только справочники - физлица по запросу, а паспортные - только принудительно если на них сделать ПВД. А хотел выгрузить по Владельцу сразу, вместе с физлицом. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |