Конвертация, как передать сведения из другого объекта

1. starjevschik 15.11.14 16:40 Сейчас в теме
Конвертация ТиС - БП
В БП у договора есть вид.
В Тис у договора вида нет, там все договоры на одно лицо, что с покупателем, что с поставщиком.
Мне надо вид в договор правильно поставить.

Договоры сами по себе не выгружаются, только по ссылкам из документов.
Получается, что при выгрузке я могу поставить вид договора только по объекту, из которого договор выгружается по ссылке - это реализация или поступление.
Так вот а как передать в договор знание о том, из какого объекта этот договор пришел по ссылке?
Или это как-то по-другому делается?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. MiG 16.11.14 21:21 Сейчас в теме
У ПКО договор сделать ПКС и заполнить его необходимым значением, значение которого скорей всего можно вычислить из источника.
3. starjevschik 23.11.14 15:48 Сейчас в теме
Отвечаю сам себе :)
может кому пригодится, нашел методику в какой-то готовой конвертации. Идея в том, что в 7.7 ищется документ, где этот договор, и в зависимости от вида документа делается вывод о виде договора. Интересно, что передача сведений из объекта - владельца не происходит, она вообще, невозможна, что ли.
Итак код обработчика ПередВыгрузкой договора
			ДатаНач = ?(ПустоеЗначение(ДатаНачала) = 0, ДатаНачала, Дата(0000, 1, 1));
			ДатаКон = ?(ПустоеЗначение(ДатаОкончания) = 0, ?(ДатаОкончания > ПолучитьДатуТА(), ПолучитьДатуТА(), ДатаОкончания), ПолучитьДатуТА());
 	       
			//Создание объекта типа Запрос
			Запрос = СоздатьОбъект("Запрос");
			ТекстЗапроса = 
			"//{{ЗАПРОС(Договоры)
			|Период с ДатаНач по ДатаКон;
			|Договор = Регистр.Поставщики.Договор, Регистр.Покупатели.Договор;
			|ЮрЛицо = Регистр.Поставщики.Фирма.ЮрЛицо, Регистр.Покупатели.Фирма.ЮрЛицо;
			|КредДокумент = Регистр.Поставщики.КредДокумент, Регистр.Покупатели.КредДокумент;
			|СуммаУпр = Регистр.Покупатели.СуммаУпр, Регистр.Поставщики.СуммаУпр;
			|Функция СуммаУпрПриход = Приход(СуммаУпр);
			|Функция СуммаУпрРасход = Расход(СуммаУпр);
			|Группировка ЮрЛицо;
			|Группировка КредДокумент упорядочить по СуммаУпрПриход, СуммаУпрРасход, КредДокумент.ДатаДок, КредДокумент.НомерДок;
			|Условие (Договор = Источник);
			|"//}}ЗАПРОС
			;
		
			ВидДоговора = "Прочее";	
			Валюта = Источник.ВалютаВзаиморасчетов;  
			
			Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
				РезультатЗапроса = СоздатьОбъект("ТаблицаЗначений");
				Запрос.Выгрузить(РезультатЗапроса);
				Если РезультатЗапроса.КоличествоСтрок() > 0 Тогда	
					РезультатЗапроса.ПолучитьСтрокуПоНомеру(РезультатЗапроса.КоличествоСтрок());
					       
					КредДокумент = РезультатЗапроса.КредДокумент;
					 
		           	Если КредДокумент.Вид() = "АвансовыйОтчет" Тогда 
				   		ВидДоговора = "СПоставщиком";
				   
				   	ИначеЕсли КредДокумент.Вид() = "ВозвратПоставщику" Тогда	   	
				   		Если КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратКомитенту Тогда
							ВидДоговора = "СКомитентом";
						Иначе
							ВидДоговора = "СПоставщиком";
						КонецЕсли;
					
					ИначеЕсли КредДокумент.Вид() = "ВозвратОтПокупателя" Тогда 
						Если КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОтРеализатора Тогда
							ВидДоговора = "СКомиссионером";
						Иначе
							ВидДоговора = "СПокупателем";
						КонецЕсли;	
						
					ИначеЕсли КредДокумент.Вид() = "Доверенность" Тогда			
						ВидДоговора = "СПоставщиком";
							
					ИначеЕсли КредДокумент.Вид() = "ЗаказПоставщику" Тогда
						ВидДоговора = "СПоставщиком";
						
					ИначеЕсли КредДокумент.Вид() = "ИнвентаризацияКомиссионера" Тогда
						ВидДоговора = "СКомиссионером";				
							
					ИначеЕсли КредДокумент.Вид() = "ОтчетКомиссионера" Тогда
		  				ВидДоговора = "СКомиссионером";		
				   	
					ИначеЕсли КредДокумент.Вид() = "ОтчетКомитенту" Тогда			
						ВидДоговора = "СКомитентом";
					                                 
					ИначеЕсли КредДокумент.Вид() = "ПереоценкаУКомиссионера" Тогда		
						ВидДоговора = "СКомиссионером";	
					
					ИначеЕсли КредДокумент.Вид() = "ПлатежноеПоручение" Тогда
						ВидДоговора = "СПоставщиком";
					
					ИначеЕсли КредДокумент.Вид() = "ПоступлениеДопРасходы" Тогда			
						ВидДоговора = "СПоставщиком";
					
					ИначеЕсли КредДокумент.Вид() = "ПоступлениеТМЦ" Тогда
					
						Если (КредДокумент.КодОперации = Перечисление.КодыОпераций.ПриемНаРеализацию) 
						 	Или (КредДокумент.КодОперации = Перечисление.КодыОпераций.ПриемНаРеализациюРозница) Тогда
							ВидДоговора = "СКомитентом";
						Иначе
							ВидДоговора = "СПоставщиком";
						КонецЕсли;	
						
				    ИначеЕсли КредДокумент.Вид() = "Реализация" Тогда		
						Если КредДокумент.КодОперации = Перечисление.КодыОпераций.ПередачаНаРеализацию Тогда
							ВидДоговора = "СКомиссионером";
						Иначе
							ВидДоговора = "СПокупателем";
						КонецЕсли;
					
					ИначеЕсли КредДокумент.Вид() = "РКО" Тогда
						Если (КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОплатыПокупателю)
							 Или (КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОплатыПокупателюВал) Тогда
							ВидДоговора = "СПокупателем";
			 			Иначе
							ВидДоговора = "СПоставщиком";
						КонецЕсли;
						
					ИначеЕсли КредДокумент.Вид() = "ПКО" Тогда
		
						Если (КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОплатыОтПоставщика)
						 Или (КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОплатыОтПоставщикаВал) Тогда
							ВидДоговора = "СПоставщиком";
						Иначе
							ВидДоговора = "СПокупателем";
						КонецЕсли;
					
					ИначеЕсли  КредДокумент.Вид() = "СтрокаВыпискиРасход" Тогда
					
						Если (КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОплатыПокупателю)
						 Или (КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОплатыПокупателюВал) Тогда
							ВидДоговора = "СПокупателем";
						Иначе
							ВидДоговора = "СПоставщиком";
						КонецЕсли;
					
					ИначеЕсли КредДокумент.Вид() = "СтрокаВыпискиПриход" Тогда
					
						Если (КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОплатыОтПоставщика)
					 		Или (КредДокумент.КодОперации = Перечисление.КодыОпераций.ВозвратОплатыОтПоставщикаВал) Тогда
							ВидДоговора = "СПоставщиком";
						Иначе
							ВидДоговора = "СПокупателем";
						КонецЕсли;
					Иначе
						ВидДоговора = "СПокупателем";			
					КонецЕсли;			
				КонецЕсли; // Если РезультатЗапроса.КоличествоСтрок() > 0 Тогда	
			КонецЕсли; // Если Запрос.Выполнить(ТекстЗапроса) <> 0 Тогда
			ВходящиеДанные = СоздатьОбъект("СписокЗначений");
			//ВходящиеДанные.ДобавитьЗначение(Организация,"Организация");
			ВходящиеДанные.ДобавитьЗначение(ВидДоговора, "ВидДоговора");
			//ВходящиеДанные.ДобавитьЗначение(Валюта, "Валюта");
			
			Если ПустоеЗначение(ВидДоговора) = 0 Тогда
				КлючВыгружаемыхДанных = КлючВыгружаемыхДанных + ВидДоговора;
			КонецЕсли;
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот