Имя: Пароль:
1C
 
Конвертация данных 3.0
0 Nyarlathotep
 
11.10.17
12:12
Всем привет!

Делаю обмен между двумя бухгалтериями 3.0 через конвертацию данных 3.0. Нужно передать из одной базы в другую справочник "Расходы будущих периодов". Создаю в конвертации новое правило конвертации объектов, на выгрузку, объектом конфигурации указываю нужный справочник из бухгалтерии, но в объектах формата такого справочника нет (загружал разные версии формата, все равно нет). Создал этот объект формата вручную, указа в ПКО, настроил правила конвертации свойств, при выгрузке пишет мне ошибку - "Объект не найден". Что я делаю не правильно? Как правильно сделать обмен с помощью конвертации в таком случае?
1 Nyarlathotep
 
11.10.17
12:19
Вот такой текст модуля МенеджерОбменаЧерезУниверсальныйФормат у меня в итоге получается:


// Конвертация БП от 10.10.2017 20:54:09
#Область ПроцедурыКонвертации
Процедура ПередКонвертацией(КомпонентыОбмена) Экспорт
    
КонецПроцедуры

Процедура ПослеКонвертации(КомпонентыОбмена) Экспорт
    
КонецПроцедуры

Процедура ПередОтложеннымЗаполнением(КомпонентыОбмена) Экспорт
    
КонецПроцедуры

#КонецОбласти
#Область ПОД
// Заполняет таблицу правил обработки данных.
//
// Параметры:
//  НаправлениеОбмена - строка ("Отправка" либо "Получение").
//  ПравилаОбработкиДанных - таблица значений, в которую добавляются правила.
Процедура ЗаполнитьПравилаОбработкиДанных(НаправлениеОбмена, ПравилаОбработкиДанных) Экспорт
    Если НаправлениеОбмена = "Отправка" Тогда
    Если ПравилаОбработкиДанных.Колонки.Найти("ОчисткаДанных") = Неопределено Тогда
        ПравилаОбработкиДанных.Колонки.Добавить("ОчисткаДанных");
    КонецЕсли;
        ДобавитьПОД_СправочникСсылка_РасходыБудущихПериодов(ПравилаОбработкиДанных);
    КонецЕсли;
КонецПроцедуры

#Область Отправка
#Область СправочникСсылка_РасходыБудущихПериодов
Процедура ДобавитьПОД_СправочникСсылка_РасходыБудущихПериодов(ПравилаОбработкиДанных)
    ПравилоОбработки = ПравилаОбработкиДанных.Добавить();
    ПравилоОбработки.Имя = "СправочникСсылка_РасходыБудущихПериодов";
    ПравилоОбработки.ОбъектВыборкиМетаданные = Метаданные.Справочники.РасходыБудущихПериодов;
    ПравилоОбработки.ОчисткаДанных = Ложь;
    ПравилоОбработки.ИспользуемыеПКО.Добавить("СправочникСсылка_РасходыБудущихПериодов_Справочник");
КонецПроцедуры
#КонецОбласти
#КонецОбласти

#КонецОбласти
#Область ПКО
// Заполняет таблицу правил конвертации объектов.
//
// Параметры:
//  НаправлениеОбмена - строка ("Отправка" либо "Получение").
//  ПравилаКонвертации - таблица значений, в которую добавляются правила.
Процедура ЗаполнитьПравилаКонвертацииОбъектов(НаправлениеОбмена, ПравилаКонвертации) Экспорт
    Если НаправлениеОбмена = "Отправка" Тогда
        ДобавитьПКО_СправочникСсылка_РасходыБудущихПериодов_Справочник(ПравилаКонвертации);
    КонецЕсли;
КонецПроцедуры

#Область Отправка
#Область СправочникСсылка_РасходыБудущихПериодов_Справочник
Процедура ДобавитьПКО_СправочникСсылка_РасходыБудущихПериодов_Справочник(ПравилаКонвертации)

    ПравилоКонвертации = ОбменДаннымиXDTOСервер.ИнициализироватьПравилоКонвертацииОбъекта(ПравилаКонвертации);
    ПравилоКонвертации.ИмяПКО = "СправочникСсылка_РасходыБудущихПериодов_Справочник";
    ПравилоКонвертации.ОбъектДанных = Метаданные.Справочники.РасходыБудущихПериодов;
    ПравилоКонвертации.ОбъектФормата = "Справочник.РасходыБудущихПериодов";
    ПравилоКонвертации.ПравилоДляГруппыСправочника = Ложь;
    ПравилоКонвертации.ВариантИдентификации = "ПоУникальномуИдентификатору";
    
    НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
    НоваяСтрока.СвойствоКонфигурации = "Код";
    НоваяСтрока.СвойствоФормата = "Код";
    
    НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
    НоваяСтрока.СвойствоКонфигурации = "Наименование";
    НоваяСтрока.СвойствоФормата = "Наименование";

КонецПроцедуры
#КонецОбласти
#КонецОбласти

#КонецОбласти
#Область ПКПД
// Заполняет таблицу правил конвертации предопределенных данных.
//
// Параметры:
//  НаправлениеОбмена - строка ("Отправка" либо "Получение").
//  ПравилаКонвертации - таблица значений, в которую будут добавлены правила.
Процедура ЗаполнитьПравилаКонвертацииПредопределенныхДанных(НаправлениеОбмена, ПравилаКонвертации) Экспорт
КонецПроцедуры

#КонецОбласти
#Область Алгоритмы



#КонецОбласти
#Область Параметры
// Заполняет параметры конвертации.
//
// Параметры:
//  ПараметрыКонвертации - структура, в которую добавляются параметры конвертации.
Процедура ЗаполнитьПараметрыКонвертации(ПараметрыКонвертации) Экспорт
КонецПроцедуры

#КонецОбласти
#Область ОбщегоНазначения
// Процедура-обертка, выполняет запуск указанной в параметрах процедуры модуля менеджера обмена через формат.
//
// Параметры:
//  ИмяПроцедуры - строка.
//  СтруктураПараметров - структура, содержащая передаваемые параметры.
Процедура ВыполнитьПроцедуруМодуляМенеджера(ИмяПроцедуры, Параметры) Экспорт
КонецПроцедуры

#КонецОбласти
2 Nyarlathotep
 
11.10.17
12:22
Вот такую ошибку пишет при обмене:

https://drive.google.com/file/d/0B6F_pZSHKOpsbDdDcjZXdmFkOWM/view?usp=sharing
3 Шаман
 
11.10.17
12:24
не пользуюсь кд  . не устраивает ее замудреность .
сколько раз  не пытался нетиповой перенести всегда криво с ошибками . не скажу.что я ее  не знаю .
просто отказался от нее. пользуюсь своими методами .
4 Nyarlathotep
 
11.10.17
12:27
(3) Пробоавли когда-нибудь добавлять свои объекты в формат данных? Так вообще правильно делать? Чем это грозит?
5 Nyarlathotep
 
11.10.17
12:28
(2) Обмен делаю через Синхронизацию данных, через универсальный формат.
6 h-sp
 
11.10.17
12:52
в план обмена включил этот справочник?
7 azt-yur
 
11.10.17
12:59
(2) Объект не найден - это у тебя не ошибка, а незаписанный объект. Поищи еще событие должно быть с описанием ошибки.
В XDTO-пакеты обоих конфигураций включил новый объект?
Я для себя пока решил сложные обмены делать по старому с КД 2.0, уж много чего не хватает в типовых форматах, а добавлять это все, как потом обновлять их
8 MaxS
 
11.10.17
13:28
(0) Зачем добавлять в формат новый объект? Можно же обойтись теми, что есть. Например, взять объект формата Справочник.СтатьиДоходов и перенести им справочник "Расходы будущих периодов". В этом случае достаточно доработать правила и не коверкать конфигурацию. Тем более, что у Вас переносится только код и наименование.
9 Nyarlathotep
 
11.10.17
13:43
(6) (7) Сейчас буду общаться с заказчиком, спрошу, нужны ему такие изменения конфигураций или нет.

Я сам предпочитаю писать все обмены самому, через ком или xml, в обменах по моему важны скорость и надежность, а эти вещи, как я убедился, в типовых технологиях обмена 1С не в чести :)

(8) Не думаю что это хорошая идея :)
10 MaxS
 
11.10.17
14:03
(9) Не думаю, что изменение конфигурации для простой задачи это хорошая идея. )) Так часто меняется справочник расходы будущих периодов, что критична скорость обмена? ;)