Имя: Пароль:
1C
1С v8
КД Подмена объекта
0 vicof
 
05.10.13
21:00
Добрый вечер.
Выгружаю одну реквизит с составным типом в другой. Конфы не важны.
В приемнике нет того типа, которые указан в источнике, а данные по нему есть.
В связи с этим хочу значение реквизита подменить на другое.
Как "на лету" подменить одну ссылку на другой, не записывая документы в источник?
1 Wobland
 
05.10.13
21:08
при выгрузке выгрузить по другому правилу, если тип не подходит?
2 vicof
 
05.10.13
21:17
Пробую, есть небольшие сложности :)
3 vicof
 
05.10.13
21:21
Не хочет.
Перед конвертацией проблемного свойства пишу:

Если ТипЗнч(ОбъектКоллекции.СчетФактура) = Тип("ДокументСсылка.ГТДИмпорт") Тогда
    ИмяПКО = "ДокументРасчетовСКонтрагентом";
КонецЕсли;

В правилах выгрузки при формировании ТЧ пишу код:
Если ТипЗнч(НоваяСтрокаНДС.СчетФактура) = Тип("ДокументСсылка.ГТДИмпорт") Тогда
                        
                        СФ = Новый Структура;
                        СФ.Вставить("Номер",                     НоваяСтрокаНДС.СчетФактура.Номер);
                        СФ.Вставить("Дата",                     ДатаНачала - 86400);
                        СФ.Вставить("Организация",                 НоваяСтрокаНДС.СчетФактура.Организация);
                        СФ.Вставить("Контрагент",                 НоваяСтрокаНДС.СчетФактура.Контрагент);
                        СФ.Вставить("ДоговорКонтрагента",         НоваяСтрокаНДС.СчетФактура.ДоговорКонтрагента);
                        СФ.Вставить("ВалютаДокумента",             НоваяСтрокаНДС.СчетФактура.ВалютаДокумента);
                        СФ.Вставить("СуммаДокумента",             0);
                        СФ.Вставить("ДатаВходящегоДокумента",     НоваяСтрокаНДС.СчетФактура.Дата);
                        СФ.Вставить("НомерВходящегоДокумента",    НоваяСтрокаНДС.СчетФактура.Номер);
                        
                        
                        НоваяСтрокаНДС.СчетФактура  = СФ;
                        
КонецЕсли;
4 Wobland
 
05.10.13
21:26
я ВыгрузитьПоПравилу() имел в виду. но я совсем не гуру КД
5 vicof
 
05.10.13
21:33
ВыгрузитьПоПравилу() делает в принципе то же самое, если указывать
ИмяПКО = "ДокументРасчетовСКонтрагентом";
А мне нужно не по какому правилу выгрузить, а какие данные.
Я могу бы создать документ расчетов, записать его и присвоить
НоваяСтрокаНДС.СчетФактура  = ДокРасчетовОбъект.Ссылка;
Но мне не нужно захламлять базу-источник.
6 Рэйв
 
05.10.13
22:04
(0)ПередЗаписью
Переменная Объект полностью доступна.Делай с ней чо хошь
Если фантазии не хватает - щас накидаем запросто
7 vicof
 
05.10.13
22:08
(0) ПередЗаписью в КД? Не, не слышал :)
Имеешь ввиду ПриЗагрузке? Там да, Объект доступен. Щас попробую.
8 Рэйв
 
05.10.13
22:09
(7)Ну ты меня понял где:-)
9 Рэйв
 
05.10.13
22:10
я там уже год почти не заходил в эти страшные суровые правила КД от 1С
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.