В помощью конвертации данных делаю перенос остатков по организации из одной базы в другую.
Создал правила выгрузки для регистров накопления:
В ПВД запросом получаю таблицу остатков, через ВходящиеДанные передаю их в ПКО.
Остатки загружаю через документ ОперацияБух.
Все реквизиты движения по регистрам выгружаются, включая реквизиты составного типа. Но как раз с ними при загрузке возникла проблема.
Например, регистр НДСКосвенныеРасходы имеет измерение СчетФактура составного типа из разных документов.
При загрузке, выгруженные из этого измерения документ создается в базе приемнике, но в движениях по этому регистру не появляется.
Период, организация, СтавкаНДС, Сумма и прочее в движениях регистра появились.
А колонка "СчетФактура" осталась пустой. Хотя, документы, которые должны были в неё записаться, создались.
В чем проблема?
Более того.
В событии "После загрузки" в ПКО пытаюсь присвоить этому измерению движения ссылку на существующий документ. Результат это не дает.
Док = Документы.ДокументРасчетовСКонтрагентом.НайтиПоНомеру(....
Объект.Движения.НДСКосвенныеРасходы[0].СчетФактура = Док.Ссылка;
(9) Спасибо, исправил. Но ни на что это существенно не повлияло.
Ибо документы и раньше выгружались и загружались.
Проблема в установке ссылок на них в движениях регистров.
(11) Как будто не по этим правилам выгрузка. Потому что в файле типизация поля есть, а по этому условию не должна была быть. Последний вопрос: в ПКО Документа не стоит галка Не запоминать выгруженные объекты?
(12)Галка не стоит.
То что типизация есть - это нормально. Если ИмяПКО не указать явно, выгрузка пытается подобрать его самостоятельно. Так что, что с этим кодом, что без него - документы выгружаются.
(10) Какой обработкой? Я например тоже всегда через правила выгружаю. Вот например ПВД по 19 счету из 2.0 в 3.0:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| &Дата КАК Дата,
| НДСПредъявленныйОстатки.Организация КАК Организация,
| НДСПредъявленныйОстатки.Поставщик КАК Контрагент,
| НДСПредъявленныйОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
| НДСПредъявленныйОстатки.ВидЦенности КАК ВидЦенности,
| НДСПредъявленныйОстатки.СчетУчетаНДС КАК СчетУчета,
| НДСПредъявленныйОстатки.СчетФактура КАК СчетФактура,
| НДСПредъявленныйОстатки.СтавкаНДС КАК СтавкаНДС,
| НДСПредъявленныйОбороты.НДСРасход КАК НДСПредъявлено,
| НДСПредъявленныйОбороты.НДСПриход КАК НДС,
| НДСПредъявленныйОбороты.СуммаБезНДСПриход КАК СуммаБезНДС,
| НДСПредъявленныйОбороты.СуммаБезНДСРасход КАК СуммаБезНДСПредъявлено,
| ВЫБОР КОГДА ЖурналУчетаСчетовФактур.СчетФактура IS NULL ТОГДА Ложь ИНАЧЕ Истина КОНЕЦ КАК ПредъявленСФ,
| ЖурналУчетаСчетовФактур.КодВидаОперации КАК КодВидаОперации,
| ЖурналУчетаСчетовФактур.НомерСчетаФактуры КАК НомерСФ,
| ЖурналУчетаСчетовФактур.ДатаСчетаФактуры КАК ДатаСФ
|ИЗ
| РегистрНакопления.НДСПредъявленный.Остатки(&Дата, ) КАК НДСПредъявленныйОстатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.НДСПредъявленный.Обороты(, &Дата, , ) КАК НДСПредъявленныйОбороты
| ПО НДСПредъявленныйОстатки.Организация = НДСПредъявленныйОбороты.Организация
| И НДСПредъявленныйОстатки.СчетФактура = НДСПредъявленныйОбороты.СчетФактура
| И НДСПредъявленныйОстатки.ВидЦенности = НДСПредъявленныйОбороты.ВидЦенности
| И НДСПредъявленныйОстатки.СтавкаНДС = НДСПредъявленныйОбороты.СтавкаНДС
| И НДСПредъявленныйОстатки.СчетУчетаНДС = НДСПредъявленныйОбороты.СчетУчетаНДС
| И НДСПредъявленныйОстатки.Поставщик = НДСПредъявленныйОбороты.Поставщик
| И НДСПредъявленныйОстатки.ДоговорКонтрагента = НДСПредъявленныйОбороты.ДоговорКонтрагента
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученныйДокументыОснования
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЖурналУчетаСчетовФактур КАК ЖурналУчетаСчетовФактур
| ПО СчетФактураПолученныйДокументыОснования.Ссылка = ЖурналУчетаСчетовФактур.СчетФактура
| ПО НДСПредъявленныйОстатки.СчетФактура = СчетФактураПолученныйДокументыОснования.ДокументОснование ГДЕ НДСПриход > 0
|ИТОГИ ПО
| Дата,
| Организация";
Запрос.УстановитьПараметр("Дата", ДатаОкончания);
ВыборкаДанных = Новый Массив;
ВыборкаДата = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДата.Следующий() Цикл
ВыборкаОрганизация = ВыборкаДата.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаОрганизация.Следующий() Цикл
ВводОстатков = Новый Структура("Организация, Дата");
ЗаполнитьЗначенияСвойств(ВводОстатков, ВыборкаОрганизация);
ДанныеПоНДС = Новый Массив;
ВыборкаДетальныеЗаписи = ВыборкаОрганизация.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СтрокаРасчета = Новый Структура("СчетУчета, Контрагент, ДоговорКонтрагента,
|СчетФактура, ВидЦенности, СтавкаНДС, НДС, НДСПредъявлено,
|СуммаБезНДС, СуммаБезНДСПредъявлено,
|ПредъявленСФ, КодВидаОперации, НомерСФ, ДатаСФ");
ЗаполнитьЗначенияСвойств(СтрокаРасчета, ВыборкаДетальныеЗаписи);
ДанныеПоНДС.Добавить(СтрокаРасчета);
КонецЦикла;
ВводОстатков.Вставить("ДанныеПоНДС", ДанныеПоНДС);
ВыборкаДанных.Добавить(ВводОстатков);
КонецЦикла;
КонецЦикла;
Показать
Все остальное интерактивно. В принципе все как у автора, только я ВводОстатков использую, а не Операцию.