|
|
Конвертация данных 2.1. СубконтоДТ. Заменить субконто при выгрузке |
☑ |
|
0
voronin_anton
12.05.15
✎
14:25
|
Добрый день.
Выгружаю КорретировкуЗаписейРегистров. В случае если значение субконто документ прошлого года, хочу его меня на документ "ДокументРасчетовСКонтрагентом".
Пишу вот такую штуку в ПКС ПередВыгрузкой:
СтруктураСубконтоДт = Новый Соответствие;
Для Каждого Субконто из ОбъектКоллекции.СубконтоДт Цикл
Если ТипЗнч(Субконто.Значение) = Тип("ДокументСсылка.РеализацияТоваровУслуг")
Тогда
Если Субконто.Значение.Дата <= Параметры.ДатаПереносаОстатков Тогда
ДокументПриемник = Неопределено;
ДокументИсточник = Субконто.Значение;
Выполнить(Алгоритмы.СформироватьДокументРасчетовСКонтрагентом);
СтруктураСубконтоДт.Вставить(Субконто.Ключ,ДокументПриемник);
Иначе
СтруктураСубконтоДт.Вставить(Субконто.Ключ,Субконто.Значение);
КонецЕсли;
Иначе
СтруктураСубконтоДт.Вставить(Субконто.Ключ,Субконто.Значение);
КонецЕсли;
КонецЦикла;
Значение = СтруктураСубконтоДт;
В Алгоритмы.СформироватьДокументРасчетовСКонтрагентом просто создается соответствие. Как сообщить обмену, что значение конкретного субконто надо конвертировать по определенному правилу
?
|
|
|
1
Azverin
12.05.15
✎
14:43
|
Если правильно понял тебя, то код замены и выбор правила нужно писать в ПВД_КоррестировкаЗаписейРегистра_ПослеВыгрузкиОбъекта:
Если Субконто.Значение.Дата <= Параметры.ДатаПереносаОстатков Тогда
ВыгрузитьПоПравилу(Субконто, , , , "ДокументРасчетовСКонтрагентом");
КонецЕсли;
|
|
|
2
Azverin
12.05.15
✎
14:46
|
(1) не, ПослеВыгрузкиОбъекта здесь не подойдёт(
|
|
|
3
voronin_anton
12.05.15
✎
14:48
|
(2) ага, не подойдет. Мне надо чтобы он вместо конвертации документа по правилу "РеализацияТоваровУслуг", конвертировал соответствие по правилу "ДокументРасчетовСКонтрагентом"
|
|
|
4
Azverin
12.05.15
✎
15:01
|
(3) посмотри типовые или поищи в инете КД+Субконто+ВыгрузитьПоПравилу
|
|
|
5
voronin_anton
12.05.15
✎
15:56
|
(4) я уже обыскался, третье сутки ищу
|
|
|
6
Гёдза
12.05.15
✎
16:07
|
там же
ИмяПКО = "";
|
|
|
7
PCcomCat
12.05.15
✎
16:36
|
Может я делаю через "не как у людей", но всё же:
1. Создаю ПКо, где Источник не указан, приемник - ДокументРасчетовСКонтрагентами.
2. У этого ПКО создаю ПКС Комментарий, Дата, Номер, ПометкаУдаления без источника, а при выгрузке ПКС прописываю, например, для Номер: Значение = ВходящиеДанные.Номер;
3. У Правила конвертации в "Перед конвертацией объекта" пишу:
Отказ = истина;
СтруктураОбъекта.Вставить("Дата",Источник.Дата);
СтруктураОбъекта.Вставить("Номер",НомерДок); // тут мой собранный номер
СтруктураОбъекта.Вставить("ДатаВходящегоДокумента",Источник.Дата);
СтруктураОбъекта.Вставить("НомерВходящегоДокумента",Источник.Номер);
СтруктураОбъекта.Вставить("Комментарий",СокрЛП(Источник.Комментарий) + " // " + СокрЛП(Источник.Ссылка));
ВходящиеДанные = СтруктураОбъекта;
ИмяПКО = "ДокументРасчетовСКонтрагентом_ЛюбойДокумент";
ПКО = НайтиПравило(Источник, "ДокументРасчетовСКонтрагентом_ЛюбойДокумент");
В общем, как-то так.
|
|
|
8
voronin_anton
12.05.15
✎
16:53
|
(7) Ты проблему не понял.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший