|
КД Обмен УТ- БП, настройка ПКО
| ☑ |
0
Om_Bun
29.01.15
✎
12:27
|
Тяжело но постараюсь описать проблему  Обмен УТ –БП.
Док .Реализация из УТ перебрасывается в БП в документ Приход. Для отдельных КОНТРАГЕНТОВ реализация из УТ должна перебрасывается в БП на документ Передача в розницу.
Новое Правило конвертаций объектов (ПКО) создал но вот как прописать, чтоб именно для этого КОНТРАГЕНТА использовалось мое новое ПКО не знаю.
Как это можно реализовать? Где прописать данную проверку?
Сейчас просто для данного контрагента не ставим галку использовать в БУ и потом его перекидываем из УТ в БП при помощи обработки "Универсальный обмен данными в формате XML" что крайне не удобно.
|
|
1
hawksib
29.01.15
✎
12:30
|
Событие ПередВыгрузкойОбъекта в ПКО код примерно такой:
Если Источник.Контрагент <> Справочники.Контрагенты.НайтиПоКоду("00000848") Тогда //код твоего контрагента
Отказ = Истина;
КонецЕсли;
|
|
2
GreatOne
29.01.15
✎
12:31
|
ПВД перед выгрузкой
Если Объект.Контрагент = Петя Тогда
ИмяПКО = "Передача в розницу"
Иначе
ИмяПКО = "Поступление" ;
|
|
3
hawksib
29.01.15
✎
12:31
|
(2) че? он не по ссылке выгружает
|
|
4
GreatOne
29.01.15
✎
12:41
|
еще ВыгрузитьПоПравилу();
(3) гуляй
|
|
5
hawksib
29.01.15
✎
12:42
|
(2) всё, я вроде понял вашу идею, тогда такой вопрос, вы уверены что ИмяПКО можно использовать в ПВД?
|
|
6
GreatOne
29.01.15
✎
12:43
|
(5) более того, оно используется в типовых правилах УТ-БП 3.0.
Также имяПКО можно в обработчиках ПКО использовать. Но вот именно в типовых правилах через ПВД сделали
|
|
7
GreatOne
29.01.15
✎
12:45
|
кусок типовых. ПВД расходника
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации Тогда
ХозОперацияРКО = ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.РасходныйКассовыйОрдер, "ХозяйственнаяОперация");
ИмяПКО = ?(ХозОперацияРКО = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию,
"ПКО_ВозвратДСИзДругойОрганизации", "ПКО_ПоступлениеДСИзДругойОрганизации");
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтПодотчетника Тогда
ИмяПКО = "ПКО_ВозвратДСОтПодотчетногоЛица";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзКассыККМ Тогда
ИмяПКО = "ПКО_ПоступлениеРозничнойВыручки";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтПоставщика Тогда
ИмяПКО = "ПКО_ВозвратДСОтПоставщика";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзБанка Тогда
ИмяПКО = "ПКО_ПоступлениеДСИзБанка";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента Тогда
ИмяПКО = "ПКО_ПоступлениеДСОтКлиента";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств Тогда
ИмяПКО = "ПКО_ВнутренняяПередача";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ИмяПКО = "ПКО_КонвертацияВалюты";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоКредитам Тогда
ИмяПКО = "ПКО_КредитыЗаймы_ПоступлениеТранша";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоЗаймамВыданным Тогда
ИмяПКО = "ПКО_ЗаймыВыданные_ОснДолг";
Если Объект.РасшифровкаПлатежа.Количество() > 0 Тогда
СтатьяДДС = Объект.РасшифровкаПлатежа[0].СтатьяДвиженияДенежныхСредств;
Если ЗначениеЗаполнено(СтатьяДДС) Тогда
ПараметрыДоговора = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Объект.РасшифровкаПлатежа[0].ДоговорКредитаДепозита,
"СтатьяДДСКомиссии, СтатьяДДСПроцентов");
Если СтатьяДДС = ПараметрыДоговора.СтатьяДДСКомиссии
Или СтатьяДДС = ПараметрыДоговора.СтатьяДДСПроцентов Тогда
ИмяПКО = "ПКО_ЗаймыВыданные_ПроцентыКомиссия";
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоДепозитам Тогда
ИмяПКО = "ПКО_Депозиты_Закрытие";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоКредитам Тогда
ИмяПКО = "ПКО_КредитыЗаймы_ПоступлениеТранша";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоЗаймамВыданным Тогда
ИмяПКО = "ПКО_ЗаймыВыданные_ОснДолг";
Если Объект.РасшифровкаПлатежа.Количество() > 0 Тогда
СтатьяДДС = Объект.РасшифровкаПлатежа[0].СтатьяДвиженияДенежныхСредств;
Если ЗначениеЗаполнено(СтатьяДДС) Тогда
ПараметрыДоговора = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Объект.РасшифровкаПлатежа[0].ДоговорКредитаДепозита,
"СтатьяДДСКомиссии, СтатьяДДСПроцентов");
Если СтатьяДДС = ПараметрыДоговора.СтатьяДДСКомиссии
Или СтатьяДДС = ПараметрыДоговора.СтатьяДДСПроцентов Тогда
ИмяПКО = "ПКО_ЗаймыВыданные_ПроцентыКомиссия";
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СторнированиеПрочихРасходов Тогда
ИмяПКО = "ПКО_СторнированиеПрочегоРасходаНаличныхДС";
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочееПоступлениеДенежныхСредств
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочиеДоходы Тогда
Выполнить(Алгоритмы.ПрКО_РеквизитыДляОбменаСБухгалтерией);
Если ВходящиеДанные.ВидОперации = "РасчетыПоКредитамИЗаймам" Тогда
ИмяПКО = "ПКО_РасчетыПоКредитамИЗаймам";
ИначеЕсли ВходящиеДанные.ВидОперации = "ЛичныеСредстваИП"
Или Найти(Объект.Комментарий, Параметры.МаркерыОпераций.ЛичныеСредстваИП) Тогда
ИмяПКО = "ПКО_ЛичныеСредстваИП";
ИначеЕсли ВходящиеДанные.ВидОперации = "ВозвратЗаймаСотрудником" Тогда
ИмяПКО = "ПКО_ВозвратЗаймаРаботником";
ИначеЕсли ВходящиеДанные.ВидОперации = "ПрочееПоступление" Тогда
ИмяПКО = "ПКО_ПрочееПоступлениеНаличныхДС";
КонецЕсли;
КонецЕсли;
|
|
8
hawksib
29.01.15
✎
12:45
|
(6) нашел, в книжке, спасибо
|
|