Цитата(ignsv @ 19.09.12, 15:55) необходимо зарегистрироваться для просмотра ссылки
А как при конвертации значений? Можете поподробнее?
Конвертация значений - это правила соответствия "объекты из конфигарации А соответствуют объектам из конфигурации Б".
В данной ситуации это не подходит. Я неправильно понял первоначальный вопрос.
Цитата(ignsv @ 19.09.12, 15:55) необходимо зарегистрироваться для просмотра ссылки
Конкретно не могу разобратся как заполнять реквизит Приемника, если его нету в Источнике( но я могу эго получить разными методами).
Тут надо прописать "Правило конвертации объекта". Объект источник - Организация, объект приемник - ИНН (строка).
- Создать новое правило конвертации объекта "Организация --> ИНН (Строка)"
- В обработчике "При выгрузке" написать ваш алгоритм с запросом. Плюс к этому
ЗначениеИНН = СоздатьУзел("ИНН");
УстановитьАтрибут(ЗначениеИНН, "ИНН", ВыборкаДетальныеЗаписи.Инн);
ДобавитьПодчиненный(Приемник, ЗначениеИНН);
(ну, где-то примерно так)
- В конвертации свойств "Организации" (справочник "Организация" конвертируется в справочник "Организация") для свойства ИНН прописать созданное правило конвертации объекта "Организация --> ИНН (Строка)"
Это способ ИМХО как раз под такую проблему.
Есть способ радикальный, когда вообще все равно что на входе. На выходе генерируется таблица значений, которую надо заполнить самостоятельно. Это используется когда у источника и приемника вообще мало что общего. Мой пример по конвертации 7-ки в 8-ку, документ СписаниеОС
В правилах выгрузки установить "Способ отбора данных"
Произвольный алгоритмВ правиле "Перед обработкой" (код 7-рочный)
ВыборкаДанных = СоздатьОбъект("ТаблицаЗначений");
ВыборкаДанных.НоваяКолонка("Номер");
ВыборкаДанных.НоваяКолонка("Дата");
ВыборкаДанных.НоваяКолонка("ПометкаУдаления");
ВыборкаДанных.НоваяКолонка("Проведен");
ВыборкаДанных.НоваяКолонка("Организация");
ВыборкаДанных.НоваяКолонка("СобытиеОС");
ВыборкаДанных.НоваяКолонка("СчетСписанияБУ");
ВыборкаДанных.НоваяКолонка("СубконтоБУ1");
ВыборкаДанных.НоваяКолонка("Комментарий");
ВыборкаДанных.НоваяКолонка("ОС");
ОС = СоздатьОбъект("ТаблицаЗначений");
ОС.НоваяКолонка("ОсновноеСредство");
ОС.НоваяКолонка("СтоимостьБУ");
ОС.НоваяКолонка("СтоимостьНУ");
ЛиквидацияНеоборАктивов = СоздатьОбъект("Документ.ЛиквидацияНеоборАктивов");
ЛиквидацияНеоборАктивов.ВыбратьДокументы(ДатаНачала, ДатаОкончания);
Операция = СоздатьОбъект("Операция");
Счетчик = 1;
Пока ЛиквидацияНеоборАктивов.ПолучитьДокумент() = 1 Цикл
Операция.НайтиОперацию(ЛиквидацияНеоборАктивов);
Операция.ВыбратьПроводки();
Пока Операция.ПолучитьПроводку() = 1 Цикл
КодСимвСчетДт = КодСимв(Лев(Операция.Дебет.Счет.Код, 1));
КодСимвСчетКт = КодСимв(Лев(Операция.Дебет.Счет.Код, 1));
Если (КодСимвСчетДт > 47) И (КодСимвСчетКт < 58) Тогда
ВыборкаДанных.НоваяСтрока();
ВыборкаДанных.Номер = СтрЗаменить(ЛиквидацияНеоборАктивов.НомерДок, "-00", "-") + "." + строка(Счетчик);
ВыборкаДанных.Дата = ЛиквидацияНеоборАктивов.ДатаДок;
ВыборкаДанных.ПометкаУдаления = ЛиквидацияНеоборАктивов.ПометкаУдаления();
ВыборкаДанных.Проведен = ЛиквидацияНеоборАктивов.Проведен();
ВыборкаДанных.Организация = ЛиквидацияНеоборАктивов.Фирма;
ВыборкаДанных.Комментарий = ЛиквидацияНеоборАктивов.Примечание;
ВыборкаДанных.СобытиеОС = "Списание";
ВыборкаДанных.СчетСписанияБУ = Операция.Дебет.Счет;
ВыборкаДанных.СубконтоБУ1 = Операция.Дебет.Субконто(1);
ОС.НоваяСтрока();
ОС.ОсновноеСредство = Операция.Дебет.Субконто(1);
ОС.СтоимостьБУ = Операция.Сумма;
лСчетчик = лСчетчик + 1;
ИначеЕсли лКодСимвСчетДт <> 0 Тогда
ОС.СтоимостьНУ = Операция.Сумма;
ВыборкаДанных.ОС = СоздатьОбъект("ТаблицаЗначений");
ОС.Выгрузить(ВыборкаДанных.ОС);
ОС.УдалитьСтроки();
КонецЕсли;
КонецЦикла;
КонецЦикла;