Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

При попытке перенести контрагента из одной базы в другую обменом - создаётся пустая ссылка

При попытке перенести контрагента из одной базы в другую обменом - создаётся пустая ссылка
Я
   Егор123
 
17.04.18 - 16:25
Добрый день! Вопрос по обменам между базами:

Управление производственным предприятием, редакция 1.3 (1.3.96.1)

и

PDM Управление инженерными данными, редакция 2.8 (2.8.2.6) 

Платформа одинаковая: 8.3 (8.3.10.2667) 

При попытке перенести контрагента из одной базы в другую - вместо желаемого создаётся пустая ссылка.

Контрагент должен регистрироваться для обмена, если пользователь указал его в номенклатуре, затем записал. Регистрация происходит, но вот в базу приёмник почему-то попадают пустые ссылки.

Скорее всего что-то в правилах конвертации. Подскажите - возможно кто сталкивался или куда смотреть и как?)

Конвертация данных.

Модуль обработчиков выгрузки:

////////////////////////////////////////////////////////////////////////////////

// Обработчики выгрузки конвертации ERP --> PDM новая {5522a719-3f17-11e8-ab13-00155d6a4d01}                                                                                                         
// 

// Данный модуль содержит экспортные процедуры обработчиков событий конвертации 
// и предназначен для отладки правил обмена. После отладки рекомендуется

// скопировать текст модуля в буфер обмена и импортировать его в базу
// "Конвертация данных".

//
////////////////////////////////////////////////////////////////////////////////

// ИСПОЛЬЗУЕМЫЕ СОКРАЩЕНИЯ ИМЕН ПЕРЕМЕННЫХ (АББРЕВИАТУРЫ)
//

//  ПКО  - правило конвертации объектов
//  ПКС  - правило конвертации свойств объектов

//  ПКГС - правило конвертации группы свойств объектов
//  ПВД  - правило выгрузки данных

//  ПОД  - правило очистки данных

////////////////////////////////////////////////////////////////////////////////

// ПЕРЕМЕННЫЕ ОБРАБОТКИ
// Данный раздел изменять запрещено.


Перем Параметры;
Перем Алгоритмы;
Перем Запросы;
Перем УзелДляОбмена;
Перем ОбщиеПроцедурыФункции;

////////////////////////////////////////////////////////////////////////////////

// ОБРАБОТЧИКИ КОНВЕРТАЦИИ (ГЛОБАЛЬНЫЕ)
// В данном разделе разрешено изменять реализацию процедур.


Процедура Конвертация_ПослеЗагрузкиПравилОбмена() Экспорт

    

КонецПроцедуры

Процедура Конвертация_ПередВыгрузкойДанных(ФайлОбмена, Отказ) Экспорт

    //Уз = УзелДляОбмена;//ПланыОбмена.Полный.НайтиПоКоду("PDM");

    
    Уз = ПланыОбмена.Полный.НайтиПоКоду("PDM");
    
    Для Каждого об ИЗ Уз.Метаданные().Состав Цикл
        Если об.Метаданные = Метаданные.Справочники.СтатьиЗатрат Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.КлассификаторЕдиницИзмерения Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.ЕдиницыИзмерения Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.ВидыНоменклатуры Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.СпецификацииНоменклатуры Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.Номенклатура Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.ТехнологическиеОперации Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.НоменклатурныеГруппы Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.Подразделения Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.эмиМодификации Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.эмиТипыПродукции Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Документы.ЗаказПокупателя Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Документы.ЗаказПоставщику Тогда 
            Продолжить;
        КонецЕсли;                
        Если об.Метаданные = Метаданные.РегистрыСведений.РегламентированныйПроизводственныйКалендарь Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.ЗначенияСвойствОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.РегистрыСведений.НазначенияСвойствОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.РегистрыСведений.ЗначенияСвойствОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.ПланыВидовХарактеристик.СвойстваОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        ПланыОбмена.УдалитьРегистрациюИзменений(Уз, об.Метаданные);
        
    КонецЦикла;

КонецПроцедуры

Процедура Конвертация_ПередПолучениемИзмененныхОбъектов(Получатель, УзелДляФоновогоОбмена) Экспорт

    

КонецПроцедуры

Процедура Конвертация_ПослеВыгрузкиДанных(ФайлОбмена) Экспорт

    

КонецПроцедуры

Процедура Конвертация_ПередВыгрузкойОбъекта(ФайлОбмена, Отказ, ИмяПКО, Правило, ВходящиеДанные, ИсходящиеДанные, Объект) Экспорт

    

КонецПроцедуры

Процедура Конвертация_ПослеВыгрузкиОбъекта(ФайлОбмена, Объект, ИмяПКО, ВходящиеДанные, ИсходящиеДанные, УзелСсылки) Экспорт

    

КонецПроцедуры

Процедура Конвертация_ПередКонвертациейОбъекта(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, ПКО,
    ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, ЗапоминатьВыгруженные,
    НеЗамещатьОбъектПриЗагрузке, ВсеОбъектыВыгружены,ТолькоПолучитьУзелСсылки,
    Приемник, РежимЗаписи, РежимПроведения, НеСоздаватьЕслиНеНайден) Экспорт

    

КонецПроцедуры

Процедура Конвертация_ПередОтправкойИнформацииОбУдалении(Ссылка, Отказ) Экспорт

    

КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////

// АЛГОРИТМЫ
// Данный раздел разрешено изменять.

// Также допустимо размещать процедуры с алгоритмами в любом из разделов выше.

////////////////////////////////////////////////////////////////////////////////

// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
// Данный раздел изменять запрещено.


// Устанавливает значение параметра "Загрузка" для свойства объекта "ОбменДанными".

//
// Параметры:

//  Объект   - объект, для которого устанавливается свойство
//  Значение - значение устанавливаемого свойства "Загрузка"

// 
Процедура УстановитьОбменДаннымиЗагрузка(Объект, Значение = Истина, Знач ОтправкаНазад = Ложь)

    ОбщиеПроцедурыФункции.УстановитьОбменДаннымиЗагрузка(Объект, Значение, ОтправкаНазад);
    
КонецПроцедуры

// Записывает объект в информационную базу.

//
// Параметры:

//    Объект - Записываемый объект.
//    Тип - Строка - Тип объекта строкой.

// 
Процедура ЗаписатьОбъектВИБ(Объект, Тип, ЗаписатьОбъект = Ложь, Знач ОтправкаНазад = Ложь)

    ОбщиеПроцедурыФункции.ЗаписатьОбъектВИБ(Объект, Тип, ЗаписатьОбъект, ОтправкаНазад);
    
КонецПроцедуры

// Отменяет проведение объекта в информационной базе.

//
// Параметры:

//    Объект - Объект для отмены проведения.
//    Тип - Строка - Тип объекта строкой.

//
Процедура ОтменитьПроведениеОбъектаВИБ(Объект, Тип, ЗаписатьОбъект = Ложь)

    ОбщиеПроцедурыФункции.ОтменитьПроведениеОбъектаВИБ(Объект, Тип, ЗаписатьОбъект);
    
КонецПроцедуры

// Выгружает регистр по отбору.

// 
// Парметры:

//    НаборЗаписейДляВыгрузки - Структура или НаборЗаписей - Отбор
//

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

КонецПроцедуры

// Устанавливает пометку удаления.

//
// Параметры:

//    Объект - Объект для установки пометки.
//    ПометкаУдаления - Булево - Флаг пометки удаления.

//    ИмяТипаОбъекта - Строка - Тип объекта строкой.
//

Процедура УстановитьПометкуУдаленияУОбъекта(Объект, ПометкаУдаления, ИмяТипаОбъекта)
    
    ОбщиеПроцедурыФункции.УстановитьПометкуУдаленияУОбъекта(Объект, ПометкаУдаления, ИмяТипаОбъекта);
    
КонецПроцедуры

// Создает в файле обмена запись об удалении объекта.

//
// Параметры:

//    Ссылка - Ссылка на удаляемый объект.
//    ТипПриемника - Строка - Содрежит строковое представление типа приемника.

//    ТипИсточника - Строка - Содрежит строковое представление типа источника.
// 

Процедура ЗаписатьВФайлУдалениеОбъекта(Ссылка, Знач ТипПриемника, Знач ТипИсточника)
    
    ОбщиеПроцедурыФункции.ЗаписатьВФайлУдалениеОбъекта(Ссылка, ТипПриемника, ТипИсточника);
    
КонецПроцедуры

// Добавляет в xml файл информацию о типах значения

//
// Параметры:

//    Приемник - xml-узел объекта приемника
//    Тип - Строка - выгружаемый тип

//
Процедура ВыгрузитьИнформациюОТипах(Приемник, Тип) Экспорт
    
    ОбщиеПроцедурыФункции.ВыгрузитьИнформациюОТипах(Приемник, Тип);
    
КонецПроцедуры

// Регистрирует объект, созданный при выгрузке.

//
// Параметры:

//    Ссылка - Ссылка на регистрируемый объект.
// 

Процедура ЗарегистрироватьОбъектСозданныйПриВыгрузке(Ссылка)
    
    ОбщиеПроцедурыФункции.ЗарегистрироватьОбъектСозданныйПриВыгрузке(Ссылка);
    
КонецПроцедуры

// Регистрирует предупреждение в журнале регистрации.

// Если в процессе обмена данными было обращение к этой процедуре, то обмен данными остановлен не будет.
// После завершения обмена статус выполнения обмена в мониторе для пользователя будет иметь значение "Предупреждение", если не было ошибок.

//
// Параметры:

//  Предупреждение - Строка. Текст предупреждения, который надо зарегистрировать.
// Информация, предупреждения и ошибки, возникающие в процессе обмена данными регистрируются в журнале регистрации.

// 
Процедура ЗарегистрироватьПредупреждение(Предупреждение)
    
    ОбщиеПроцедурыФункции.ЗарегистрироватьПредупреждение(Предупреждение);
    
КонецПроцедуры

// Служебная. Инициализирует переменные, необходимые для отладки

//
// Параметры:

//  Владелец - Обработка КонвертацияОбъектовИнформационныхБаз
//

Процедура ПодключитьОбработкуДляОтладки(Владелец) Экспорт

    Параметры                 = Владелец.Параметры;
    ОбщиеПроцедурыФункции     = Владелец;
    Запросы                   = Владелец.Запросы;
    УзелДляОбмена              = Владелец.УзелДляОбмена;

КонецПроцедуры

// Производит выгрузку объекта в соответствии с указанным правилом конвертации

//
// Параметры:

//  Источник                 - произвольный источник данных
//  Приемник                 - xml-узел объекта приемника

//  ВходящиеДанные             - произвольные вспомогательные данные, передаваемые правилу
//                             для выполнения конвертации

//  ИсходящиеДанные             - произвольные вспомогательные данные, передаваемые правилам
//                             конвертации свойств

//  ИмяПКО                     - имя правила конвертации, согласно которому осуществляется выгрузка
//

// Возвращаемое значение:
//  xml-узел ссылки или значение приемника

//
Функция ВыгрузитьПоПравилу(Источник                    = Неопределено,
                           Приемник                    = Неопределено,
                           ВходящиеДанные            = Неопределено,
                           ИсходящиеДанные            = Неопределено,
                           ИмяПКО                    = "")
                           
    Возврат ОбщиеПроцедурыФункции.ВыгрузитьПоПравилу(Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО);

КонецФункции

// Признак того, что это загрузка в информационную базу.

// 
// Возвращаемое значение:

//    Булево - Признак режима загрузки данных
// 

Функция РежимЗагрузкиДанныхВИнформационнуюБазу()
    
    Возврат ОбщиеПроцедурыФункции.РежимЗагрузкиДанныхВИнформационнуюБазу();
    
КонецФункции
 
 
   Мандалай
 
1 - 17.04.18 - 16:28
Силен, а слабо модуль обработки УниверсальныйОбменДаннымиXML?
   Мандалай
 
2 - 17.04.18 - 16:30
Загрузи правила обмена в Конвертацию, и скинь скриншот закладки настроек справочника Контрагенты.
   Мандалай
 
3 - 17.04.18 - 16:31
И проверь что именно у тебя зарегистрировалось для Плана обмена.
   Егор123
 
4 - 17.04.18 - 16:32
(1) Скорее слаб)


////////////////////////////////////////////////////////////////////////////////

//
// Данный модуль содержит экспортные процедуры обработчиков событий конвертации 

// и предназначен для отладки правил обмена. 
// После отладки рекомендуется внести соответствующие исправления обработчиков

// в базе «Конвертация данных 2.0» и заново сформировать файл правил.
//

///////////////////////////////////////////////////////////////////////////////

// ИСПОЛЬЗУЕМЫЕ СОКРАЩЕНИЯ ИМЕН ПЕРЕМЕННЫХ (АББРЕВИАТУРЫ)
//

//  ПКО  - правило конвертации объектов
//  ПКС  - правило конвертации свойств объектов

//  ПКГС - правило конвертации группы свойств объектов
//  ПКЗ  - правило конвертации значений объектов

//  ПВД  - правило выгрузки данных
//  ПОД  - правило очистки данных



////////////////////////////////////////////////////////////////////////////////

// ПЕРЕМЕННЫЕ ОБРАБОТКИ


////////////////////////////////////////////////////////////////////////////////

// ВСПОМОГАТЕЛЬНЫЕ ПЕРЕМЕННЫЕ МОДУЛЯ ДЛЯ НАПИСАНИЯ АЛГОРИТМОВ (ОБЩИЕ ДЛЯ ВЫГРУЗКИ И ЗАГРУЗКИ)

Перем Параметры;
Перем Правила;
Перем Алгоритмы;
Перем Запросы;
Перем УзелДляОбмена;// только для on-line обмена

Перем ОбщиеПроцедурыФункции;
Перем ДатаНачала;
Перем ДатаОкончания;
Перем ДатаВыгрузкиДанных;// только для on-line обмена

Перем КомментарийПриВыгрузкеДанных;
Перем КомментарийПриЗагрузкеДанных;


////////////////////////////////////////////////////////////////////////////////

// ПЕРЕМЕННЫЕ ОБРАБОТОК ОБМЕНА (ОБЩИЕ ДЛЯ ВЫГРУЗКИ И ЗАГРУЗКИ)

Перем одТипСтрока;                // Тип("Строка")

Перем одТипБулево;                // Тип("Булево")

Перем одТипЧисло;                // Тип("Число")

Перем одТипДата;                  // Тип("Дата")

Перем одТипХранилищеЗначения;    // Тип("ХранилищеЗначения")

Перем одТипДвоичныеДанные;        // Тип("ДвоичныеДанные")

Перем одТипВидДвиженияНакопления;// Тип("ВидДвиженияНакопления")

Перем одТипУдалениеОбъекта;      // Тип("УдалениеОбъекта")

Перем одТипВидСчета;              // Тип("ВидСчета")

Перем одТипТип;                        // Тип("Тип")

Перем одТипСоответствие;          // Тип("Соответствие")


Перем одТипУзлаXML_КонецЭлемента;
Перем одТипУзлаXML_НачалоЭлемента;
Перем одТипУзлаXML_Текст;

Перем ЗначениеПустаяДата;


////////////////////////////////////////////////////////////////////////////////

// ОБРАБОТЧИКИ КОНВЕРТАЦИИ (ГЛОБАЛЬНЫЕ)

Процедура Конвертация_ПередВыгрузкойДанных(ФайлОбмена, Отказ) Экспорт

    //Уз = УзелДляОбмена;//ПланыОбмена.Полный.НайтиПоКоду("PDM");

    
    Уз = ПланыОбмена.Полный.НайтиПоКоду("PDM");
    
    Для Каждого об ИЗ Уз.Метаданные().Состав Цикл
        Если об.Метаданные = Метаданные.Справочники.СтатьиЗатрат Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.КлассификаторЕдиницИзмерения Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.ЕдиницыИзмерения Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.ВидыНоменклатуры Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.СпецификацииНоменклатуры Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.Номенклатура Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.ТехнологическиеОперации Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.НоменклатурныеГруппы Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.Подразделения Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.эмиМодификации Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.эмиТипыПродукции Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Документы.ЗаказПокупателя Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Документы.ЗаказПоставщику Тогда 
            Продолжить;
        КонецЕсли;                
        Если об.Метаданные = Метаданные.РегистрыСведений.РегламентированныйПроизводственныйКалендарь Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.Справочники.ЗначенияСвойствОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.РегистрыСведений.НазначенияСвойствОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.РегистрыСведений.ЗначенияСвойствОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.ПланыВидовХарактеристик.СвойстваОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        Если об.Метаданные = Метаданные.ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов Тогда 
            Продолжить;
        КонецЕсли;
        ПланыОбмена.УдалитьРегистрациюИзменений(Уз, об.Метаданные);
        
    КонецЦикла;

КонецПроцедуры


////////////////////////////////////////////////////////////////////////////////

// ОБРАБОТЧИКИ ВЫГРУЗКИ ДАННЫХ


////////////////////////////////////////////////////////////////////////////////

// ОБРАБОТЧИКИ КОНВЕРТАЦИИ ОБЪЕКТОВ

Процедура ПКО_ПередВыгрузкой_ЗначенияСвойствОбъектов(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, 
                                           ПКО, ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, ЗапоминатьВыгруженные, 
                                           НеЗамещатьОбъектПриЗагрузке, ВсеОбъектыВыгружены, ТолькоПолучитьУзелСсылки, 
                                           Приемник, РежимЗаписи, РежимПроведения, НеСоздаватьЕслиНеНайден) Экспорт

    Если Источник.Свойство.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура 
        И Источник.Свойство.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документ_ЗаказПокупателя
        И Источник.Свойство.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документы Тогда
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры

Процедура ПКО_ПередВыгрузкой_НазначенияСвойствОбъектов(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, 
                                           ПКО, ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, ЗапоминатьВыгруженные, 
                                           НеЗамещатьОбъектПриЗагрузке, ВсеОбъектыВыгружены, ТолькоПолучитьУзелСсылки, 
                                           Приемник, РежимЗаписи, РежимПроведения, НеСоздаватьЕслиНеНайден) Экспорт

    Если Источник.Свойство.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура 
        И Источник.Свойство.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документ_ЗаказПокупателя
        И Источник.Свойство.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документы Тогда
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры

Процедура ПКО_ПередВыгрузкой_СпецификацииНоменклатуры(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, 
                                           ПКО, ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, ЗапоминатьВыгруженные, 
                                           НеЗамещатьОбъектПриЗагрузке, ВсеОбъектыВыгружены, ТолькоПолучитьУзелСсылки, 
                                           Приемник, РежимЗаписи, РежимПроведения, НеСоздаватьЕслиНеНайден) Экспорт

    Если НЕ Источник.ЭтоГруппа Тогда
        ВыгрузитьПоПравилу(Источник.Ответственный,,,,"Пользователи");
    КонецЕсли;

КонецПроцедуры

Процедура ПКО_ПередВыгрузкой_ЗначенияСвойствОбъектов00001(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, 
                                           ПКО, ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, ЗапоминатьВыгруженные, 
                                           НеЗамещатьОбъектПриЗагрузке, ВсеОбъектыВыгружены, ТолькоПолучитьУзелСсылки, 
                                           Приемник, РежимЗаписи, РежимПроведения, НеСоздаватьЕслиНеНайден) Экспорт

    Если Источник.Владелец.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура 
        И Источник.Владелец.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документ_ЗаказПокупателя
        И Источник.Владелец.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документы Тогда
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры

Процедура ПКО_ПередВыгрузкой_СвойстваОбъектов(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, 
                                           ПКО, ВыгруженныеОбъекты, Отказ, КлючВыгружаемыхДанных, ЗапоминатьВыгруженные, 
                                           НеЗамещатьОбъектПриЗагрузке, ВсеОбъектыВыгружены, ТолькоПолучитьУзелСсылки, 
                                           Приемник, РежимЗаписи, РежимПроведения, НеСоздаватьЕслиНеНайден) Экспорт

    Если Источник.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура 
        И Источник.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документ_ЗаказПокупателя
        И Источник.НазначениеСвойства <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документы Тогда
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры

Процедура ПКО_ПриВыгрузке_СвойстваОбъектов(ФайлОбмена, Источник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО, 
                                           ПКО, ВыгруженныеОбъекты, КлючВыгружаемыхДанных, Отказ, СтандартнаяОбработка, 
                                           Приемник, УзелСсылки) Экспорт

    ОписаниеТипов = Источник.ТипЗначения;
    УзелТиповXML = одПолучитьXMLПредставлениеОписанияТипов(ОписаниеТипов);
    ДобавитьПодчиненный(Приемник, УзелТиповXML);

КонецПроцедуры


////////////////////////////////////////////////////////////////////////////////

// ОБРАБОТЧИКИ КОНВЕРТАЦИИ СВОЙСТВ И ГРУПП СВОЙСТВ ОБЪЕКТОВ

Процедура ПКС_ПередВыгрузкой_ЗначенияСвойствОбъектов_Объект_Измерение3(ФайлОбмена, Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, 
                                           ПКС, ПКО, ОбъектКоллекции, Отказ, Значение, ТипПриемника, ИмяПКО, 
                                           ИмяПКОВидСубконто, Пусто, Выражение, УзелКоллекцииСвойств, 
                                           НеЗамещать) Экспорт

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

КонецПроцедуры

Процедура ПКС_ПередВыгрузкой_НазначенияСвойствОбъектов_Объект_Измерение2(ФайлОбмена, Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, 
                                           ПКС, ПКО, ОбъектКоллекции, Отказ, Значение, ТипПриемника, ИмяПКО, 
                                           ИмяПКОВидСубконто, Пусто, Выражение, УзелКоллекцииСвойств, 
                                           НеЗамещать) Экспорт

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

КонецПроцедуры

Процедура ПКС_ПередВыгрузкой_эмиНомераЗаказов_Наименование_Свойство6(ФайлОбмена, Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, 
                                           ПКС, ПКО, ОбъектКоллекции, Отказ, Значение, ТипПриемника, ИмяПКО, 
                                           ИмяПКОВидСубконто, Пусто, Выражение, УзелКоллекцииСвойств, 
                                           НеЗамещать) Экспорт

    Значение = ОбщегоНазначения.ПолучитьНомерНаПечать(Источник.Ссылка);

КонецПроцедуры


////////////////////////////////////////////////////////////////////////////////

//                          !!!ВНИМАНИЕ!!! 
//            ИЗМЕНЯТЬ КОД В ЭТОМ БЛОКЕ (НИЖЕ) ЗАПРЕЩЕНО!

///////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////

// ВЫЗОВ ОБЩИХ ПРОЦЕДУР И ФУНКЦИЙ


// Производит выгрузку объекта в соответствии с указанным правилом конвертации

//
// Параметры:

//  Источник                 - произвольный источник данных
//  Приемник                 - xml-узел объекта приемника

//  ВходящиеДанные             - произвольные вспомогательные данные, передаваемые правилу
//                             для выполнения конвертации

//  ИсходящиеДанные             - произвольные вспомогательные данные, передаваемые правилам
//                             конвертации свойств

//  ИмяПКО                     - имя правила конвертации, согласно которому осуществляется выгрузка
//  УзелСсылки                 - xml-узел ссылки объекта приемника

//  ТолькоПолучитьУзелСсылки - если Истина, то выгрузка объекта не производится, только формируется
//                             xml-узел ссылки

//  ПКО                      - ссылка на правило конвертации
//

// Возвращаемое значение:
//  xml-узел ссылки или значение приемника

//
Функция ВыгрузитьПоПравилу(Источник                    = Неопределено,
                           Приемник                    = Неопределено,
                           ВходящиеДанные            = Неопределено,
                           ИсходящиеДанные            = Неопределено,
                           ИмяПКО                    = "")
                           
    Возврат ОбщиеПроцедурыФункции.ВыгрузитьПоПравилу(Источник, Приемник, ВходящиеДанные, ИсходящиеДанные, ИмяПКО);
    
КонецФункции

// Создает новый xml-узел

// Функция может быть использована в обработчиках событий, программный код 
// которых хранится в правила обмена данными. Вызывается методом Выполнить()

//
// Параметры: 

//  Имя            - Имя узла
//

// Возвращаемое значение:
//  Объект нового xml-узла

//
Функция СоздатьУзел(Имя)

    Возврат ОбщиеПроцедурыФункции.СоздатьУзел(Имя); 

КонецФункции

// Добавляет новый xml-узел к указанному узлу-родителю

// Функция может быть использована в обработчиках событий, программный код 
// которых хранится в правила обмена данными. Вызывается методом Выполнить()

// Сообщение "Не обнаружено ссылок на функцию" при проверке конфигурации 
// не является ошибкой проверки конфигурации

//
// Параметры: 

//  УзелРодитель   - xml-узел-родитель
//  Имя            - имя добавляемого узла

//
// Возвращаемое значение:

//  Новый xml-узел, добавленный к указанному узлу-родителю
//

Функция ДобавитьУзел(УзелРодитель, Имя)

    Возврат ОбщиеПроцедурыФункции.ДобавитьУзел(УзелРодитель, Имя); 

КонецФункции

// Копирует указанный xml-узел

// Функция может быть использована в обработчиках событий, программный код 
// которых хранится в правила обмена данными. Вызывается методом Выполнить()

// Сообщение "Не обнаружено ссылок на функцию" при проверке конфигурации 
// не является ошибкой проверки конфигурации

//
// Параметры: 

//  Узел           - копируемый узел
//

// Возвращаемое значение:
//  Новый xml - копия указанного узла

//
Функция КопироватьУзел(Узел)

    Возврат ОбщиеПроцедурыФункции.КопироватьУзел(Узел); 
    
КонецФункции 

// Устанавливает значение параметра "Загрузка" для свойства объекта "ОбменДанными".

//
// Параметры:

//  Объект   - объект, для которого устанавливается свойство
//  Значение - значение устанавливаемого свойства "Загрузка"

// 
Процедура УстановитьОбменДаннымиЗагрузка(Объект, Значение = Истина)

    ОбщиеПроцедурыФункции.УстановитьОбменДаннымиЗагрузка(Объект, Значение);
    
КонецПроцедуры

// Устанавливает атрибут указанного xml-узла

//
// Параметры: 

//  Узел           - xml-узел
//  Имя            - имя атрибута

//  Значение       - устанавливаемое значение
//

Процедура УстановитьАтрибут(Узел, Имя, Значение)
    
    ОбщиеПроцедурыФункции.УстановитьАтрибут(Узел, Имя, Значение);
    
КонецПроцедуры 

// Подчиняет xml-узел указанному узлу-родителю

//
// Параметры: 

//  УзелРодитель   - xml-узел-родитель
//  Узел           - подчиняемый узел 

//
Процедура ДобавитьПодчиненный(УзелРодитель, Узел)

    ОбщиеПроцедурыФункции.ДобавитьПодчиненный(УзелРодитель, Узел);
        
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С ОБЪЕКТОМ XMLЧтение

// Осуществляет запись элемента и его значения в указанный объект

//
// Параметры:

//  Объект         - объект типа XMLЗапись
//  Имя            - Строка. Имя элемента

//  Значение       - Значение элемента
// 

Процедура одЗаписатьЭлемент(Объект, Имя, Значение="")

    ОбщиеПроцедурыФункции.одЗаписатьЭлемент(Объект, Имя, Значение);    
    
КонецПроцедуры

// Читает значение атрибута по имени из указанного объекта, приводит значение

// к указанному примитивному типу
//

// Параметры:
//  Объект      - объект типа XMLЧтение, спозиционированный на начале элемента,

//                атрибут которого требуется получить
//  Тип         - Значение типа Тип. Тип атрибута

//  Имя         - Строка. Имя атрибута
//

// Возвращаемое значение:
//  Значение атрибута полученное по имени и приведенное к указанному типу

// 
Функция одАтрибут(Объект, Тип, Имя)
    
    Возврат ОбщиеПроцедурыФункции.одАтрибут(Объект, Тип, Имя);
        
КонецФункции
 
// Пропускает узлы xml до конца указанного элемента (по умолчанию текущего)

//
// Параметры:

//  Объект   - объект типа XMLЧтение
//  Имя      - имя узла, до конца которого пропускаем элементы

// 
Процедура одПропустить(Объект, Имя = "")
    
    ОбщиеПроцедурыФункции.одПропустить(Объект, Имя);
    
КонецПроцедуры// одПропустить() 


// Читает текст элемента и приводит значение к указанному типу

//
// Параметры:

//  Объект           - объект типа XMLЧтение, из которого осуществлется чтение
//  Тип              - тип получаемого значения

//  ИскатьПоСвойству - для ссылочных типов может быть указано свойство, по которому
//                     следует искать объект: "Код", "Наименование", <ИмяРеквизита>, "Имя" (предопределенного значения)

//
// Возвращаемое значение:

//  Значение xml-элемента, приведенное к соответствующему типу
//

Функция одЗначениеЭлемента(Объект, Тип, ИскатьПоСвойству = "", ОбрезатьСтрокуСправа = Истина)

    Возврат ОбщиеПроцедурыФункции.одЗначениеЭлемента(Объект, Тип, ИскатьПоСвойству, ОбрезатьСтрокуСправа);

КонецФункции// одЗначениеЭлемента() 


////////////////////////////////////////////////////////////////////////////////

// РАБОТА С ДАННЫМИ

// Возвращает строку - имя переданного значения перечисления.

// Функция может быть использована в обработчиках событий, программный код 
// которых хранится в правила обмена данными. Вызывается методом Выполнить()

// Сообщение "Не обнаружено ссылок на функцию" при проверке конфигурации 
// не является ошибкой проверки конфигурации

//
// Параметры:

//  Значение     - значение перечисления
//

// Возвращаемое значение:
//  Строка       - имя переданного значения перечисления.

//
Функция одИмяЗначенияПеречисления(Значение) 

    Возврат ОбщиеПроцедурыФункции.одИмяЗначенияПеречисления(Значение);
    
КонецФункции// одИмяЗначенияПеречисления()


// Определяет заполнено ли переданное значение

//
// Параметры: 

//  Значение       - значение, заполенение которого надо проверить
//

// Возвращаемое значение:
//  Истина         - значение не заполнено, ложь - иначе.

//
Функция одПустое(Значение, ЭтоNULL=Ложь)
    
    Возврат ОбщиеПроцедурыФункции.одПустое(Значение, ЭтоNULL);
    
КонецФункции// одПустое()


// Возвращает объект ОписаниеТипов, содержащий указанный тип.

//
// Параметры:

//  ЗначениеТипа - строка с именем типа или значение типа Тип.
//  

// Возвращаемое значение:
//  ОписаниеТипов

//
Функция одОписаниеТипа(ЗначениеТипа)
    
    Возврат ОбщиеПроцедурыФункции.одОписаниеТипа(ЗначениеТипа);

КонецФункции// одОписаниеТипа()


// Возвращает пустое (дефолтное) значение указанного типа

//
// Параметры:

//  Тип          - строка с именем типа или значение типа Тип.
//

// Возвращаемое значение:
//  Пустое значение указанного типа.

// 
Функция одПолучитьПустоеЗначение(Тип)

    Возврат ОбщиеПроцедурыФункции.одПолучитьПустоеЗначение(Тип);
    
КонецФункции// ПолучитьПустоеЗначение()


// Осуществляет простой поиск объекта информационной базы по указанному свойству.

//
// Параметры:

//  Менеджер       - менеджер искомого объекта;
//  Свойство       - свойство, по которому осуществляем поиск: Имя, Код, 

//                   Наименование или Имя индексируемого реквизита;
//  Значение       - значение свойства, по которому ищем объект.

//
// Возвращаемое значение:

//  Найденный объект информационной базы.
//

Функция одНайтиОбъектПоСвойству(Менеджер, Свойство, Значение, 
                            НайденныйОбъектПоУникальномуИдентификатору = Неопределено, 
                            ОбщаяСтруктураСвойств = Неопределено, ОбщиеСвойстваПоиска = Неопределено, 
                            РежимПоискаОсновногоОбъекта = Истина, СтрокаЗапросаПоискаПоУникальномуИдентификатору = "")

    Возврат ОбщиеПроцедурыФункции.одНайтиОбъектПоСвойству(Менеджер, Свойство, Значение, 
                                                   НайденныйОбъектПоУникальномуИдентификатору,    
                                                   ОбщаяСтруктураСвойств, ОбщиеСвойстваПоиска, 
                                                   РежимПоискаОсновногоОбъекта, СтрокаЗапросаПоискаПоУникальномуИдентификатору);
    
КонецФункции// одНайтиОбъектПоСвойству() 


// Осуществляет простой поиск объекта информационной базы по указанному свойству.

//
// Параметры:

//  Стр            - Строка - значение свойства, по которому осуществляется 
//                   поиск объект;

//  Тип            - тип искомого объекта;
//  Свойство       - Строка - имя свойства, по-которому ищем объект.

//
// Возвращаемое значение:

//  Найденный объект информационной базы
//

Функция одПолучитьЗначениеПоСтроке(Стр, Тип, Свойство = "")

    Возврат ОбщиеПроцедурыФункции.одПолучитьЗначениеПоСтроке(Стр, Тип, Свойство);

КонецФункции// одПолучитьЗначениеПоСтроке()


// Возвращает строковое представление типа значения 

//
// Параметры: 

//  ЗначениеИлиТип - произвольное значение или значение типа тип
//

// Возвращаемое значение:
//  Строка - строковое представление типа значения

//
Функция одТипЗначенияСтрокой(ЗначениеИлиТип)

    Возврат ОбщиеПроцедурыФункции.одТипЗначенияСтрокой(ЗначениеИлиТип);
    
КонецФункции// одТипЗначенияСтрокой()


// Возвращает XML представление объекта ОписаниеТипов

// Функция может быть использована в обработчиках событий, программный код 
// которых хранится в правила обмена данными. Вызывается методом Выполнить()

// Сообщение "Не обнаружено ссылок на функцию" при проверке конфигурации 
// не является ошибкой проверки конфигурации

//
// Параметры:

//  ОписаниеТипов  - объект ОписаниеТипов, XML представление которого требуется получить
//

// Возвращаемое значение:
//  Строка - XML представление переданного объекта ОписаниеТипов

//
Функция одПолучитьXMLПредставлениеОписанияТипов(ОписаниеТипов) 

    Возврат ОбщиеПроцедурыФункции.одПолучитьXMLПредставлениеОписанияТипов(ОписаниеТипов);
    
КонецФункции// одПолучитьXMLПредставлениеОписанияТипов() 


////////////////////////////////////////////////////////////////////////////////

// РАБОТА СО СТРОКАМИ

// Разбирает строку на две части: до подстроки разделителя и после.

//
// Параметры:

//  Стр          - разбираемая строка;
//  Разделитель  - подстрока-разделитель:

//  Режим        - 0 - разделитель в возвращаемые подстроки не включается;
//                 1 - разделитель включается в левую подстроку;

//                 2 - разделитель включается в правую подстроку.
//

// Возвращаемое значение:
//  Правая часть строки - до символа-разделителя.

// 
Функция ОтделитьРазделителем(Стр, Знач Разделитель, Режим=0)

    Возврат ОбщиеПроцедурыФункции.ОтделитьРазделителем(Стр, Разделитель, Режим);
    
КонецФункции// ОтделитьРазделителем()


// Преобразует значения из строки в массив, используя указанный разделитель

//
// Параметры:

//  Стр            - Разбираемая строка
//  Разделитель    - подстрока разделитель

//
// Возвращаемое значение:

//  Массив значений
// 

Функция МассивИзСтроки(Знач Стр, Разделитель=",")

    Возврат ОбщиеПроцедурыФункции.МассивИзСтроки(Стр, Разделитель);

КонецФункции// МассивИзСтроки() 


Функция ПолучитьСтроковыйНомерБезПрефиксов(Номер)
    
    Возврат ОбщиеПроцедурыФункции.ПолучитьСтроковыйНомерБезПрефиксов(Номер);
    
КонецФункции

// Разбирает строку, выделяя из нее префикс и числовую часть.

//
// Параметры:

//  Стр            - Строка. Разбираемая строка;
//  ЧисловаяЧасть  - Число. Переменная, в которую возвратится числовая часть строки;

//  Режим          - Строка. Если "Число", то возвратит числовую часть, иначе - префикс.
//

// Возвращаемое значение:
//  Префикс строки

//
Функция ПолучитьПрефиксЧислоНомера(Знач Стр, ЧисловаяЧасть = "", Режим = "")

    Возврат ОбщиеПроцедурыФункции.ПолучитьПрефиксЧислоНомера(Стр, ЧисловаяЧасть, Режим);

КонецФункции

// Приводит номер (код) к требуемой длине. При этом выделяется префикс

// и числовая часть номера, остальное пространство между префиксом и
// номером заполняется нулями.

// Функция может быть использована в обработчиках событий, программный код 
// которых хранится в правила обмена данными. Вызывается методом Выполнить()

// Сообщение "Не обнаружено ссылок на функцию" при проверке конфигурации 
// не является ошибкой проверки конфигурации

//
// Параметры:

//  Стр          - преобразовываемая строка;
//  Длина        - требуемая длина строки.

//
// Возвращаемое значение:

//  Строка       - код или номер, приведенная к требуемой длине.
// 

Функция ПривестиНомерКДлине(Знач Стр, Длина, ДобавлятьНулиЕслиДлинаНеМеньшеТекущейДлиныНомера = Истина, Префикс = "") 

    Возврат ОбщиеПроцедурыФункции.ПривестиНомерКДлине(Стр, Длина, ДобавлятьНулиЕслиДлинаНеМеньшеТекущейДлиныНомера, Префикс);

КонецФункции// ПривестиНомерКДлине()


// Добавляет к префиксу номера или кода подстроку

// Функция может быть использована в обработчиках событий, программный код 
// которых хранится в правила обмена данными. Вызывается методом Выполнить()

// Сообщение "Не обнаружено ссылок на функцию" при проверке конфигурации 
// не является ошибкой проверки конфигурации

//
// Параметры:

//  Стр          - Строка. Номер или код;
//  Добавок      - добаляемая к префиксу подстрока;

//  Длина        - требуемая результрирующая длина строки;
//  Режим        - "Слева" - подстрока добавляется слева к префиксу, иначе - справа.

//
// Возвращаемое значение:

//  Строка       - номер или код, к префиксу которого добавлена указанная подстрока.
//

Функция ДобавитьКПрефиксу(Знач Стр, Добавок = "", Длина = "", Режим = "Слева") 

    Возврат ОбщиеПроцедурыФункции.ДобавитьКПрефиксу(Стр, Добавок, Длина, Режим); 

КонецФункции// ДобавитьКПрефиксу()


// Дополняет строку указанным символом до указанной длины.

//
// Параметры: 

//  Стр          - дополняемая строка;
//  Длина        - требуемая длина результирующей строки;

//  Чем          - символ, которым дополняется строка.
//

// Возвращаемое значение:
//  Строка, дополненная указанным символом до указанной длины.

//
Функция одДополнитьСтроку(Стр, Длина, Чем = " ") 
    
    Возврат ОбщиеПроцедурыФункции.одДополнитьСтроку(Стр, Длина, Чем);

КонецФункции// одДополнитьСтроку() 


////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ С ФАЙЛОМ ОБМЕНА

// Сохраняет в файл указанный xml-узел

//
// Параметры:

//  Узел           - xml-узел, сохранямый в файл
//

Процедура ЗаписатьВФайл(Узел)

    ОбщиеПроцедурыФункции.ЗаписатьВФайл(Узел);

КонецПроцедуры// ЗаписатьВФайл()


////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ И ФУНКЦИИ РАБОТЫ С ПРАВИЛАМИ ОБМЕНА

// Осуществляет поиск правила конвертации по имени или в соответствии с типом

// переданного объекта
//

// Параметры:
//  Объект         - Объект-источник, для которого ищем правило конвертации

//  ИмяПравила     - имя правила конвертации
//

// Возвращаемое значение:
//  Ссылка на правило конвертации (строка в таблице правил)

// 
Функция НайтиПравило(Объект, ИмяПравила="")

    Возврат ОбщиеПроцедурыФункции.НайтиПравило(Объект, ИмяПравила);

КонецФункции


////////////////////////////////////////////////////////////////////////////////

//

Процедура ПередатьИнформациюОЗаписиВПриемник(ИнформацияДляЗаписиВФайл, СтрокаОшибкиВБазеПриемнике = "")
    
    ОбщиеПроцедурыФункции.ПередатьИнформациюОЗаписиВПриемник(ИнформацияДляЗаписиВФайл, СтрокаОшибкиВБазеПриемнике);
    
КонецПроцедуры

Процедура ПередатьОдинПараметрВПриемник(Имя, ИсходноеЗначениеПараметра, ПравилоКонвертации = "")
    
    ОбщиеПроцедурыФункции.ПередатьОдинПараметрВПриемник(Имя, ИсходноеЗначениеПараметра, ПравилоКонвертации);
    
КонецПроцедуры

Процедура ПередатьДополнительныеПараметрыВПриемник()
    
    ОбщиеПроцедурыФункции.ПередатьДополнительныеПараметрыВПриемник();
    
КонецПроцедуры


////////////////////////////////////////////////////////////////////////////////

// КОНСТРУКТОР И ДЕСТРУКТОР ОБРАБОТКИ

Процедура Конструктор(Владелец) Экспорт

    Параметры             = Владелец.Параметры;
    ОбщиеПроцедурыФункции = Владелец;
    Запросы               = Владелец.Запросы;
    Правила               = Владелец.Правила;
    
    КомментарийПриВыгрузкеДанных = Владелец.КомментарийПриВыгрузкеДанных;
    КомментарийПриЗагрузкеДанных = Владелец.КомментарийПриЗагрузкеДанных;
    
    
    //переменная для универсального обмена

    Попытка
        ДатаНачала = Владелец.ДатаНачала;
    Исключение
    КонецПопытки;
    
    //переменная для универсального
   Егор123
 
5 - 17.04.18 - 16:33
(2) Тут вроде нельзя скрины. Стоят галки:

-Искать объект по внутреннему идентификатору объекта источника
-Автоматически генерировать номер или код, если он не задан
   Егор123
 
6 - 17.04.18 - 16:37
(3) В плане обмена регистрируется номенклатура. Контрагент не регистрируется. Но если его провести - зарегистрируется, хотя в правилах отключен обмен контрагентами при регистрации (галка Отключен стоит на вкладке Правила выгрузки данных). Пробовал и так и эдак.
   cw014
 
7 - 17.04.18 - 16:39
(6) Так, вот теперь соберись и поподробнее. А то получается, что Контрагент не регистрируется, но если провести - регистрируется. И кого проводишь? Контрагента?
   Егор123
 
8 - 17.04.18 - 16:47
(7) Если провожу Номенклатуру - регистрируется номенклатура.
Контрагент не регистрируется, при этом в базе приёмнике появляется пустая ссылка в номенклатуре в поле, где указывается контрагент и в справочнике создаётся пустой контрагент.

Если провожу контрагента - контрагент регистрируется, но в базу не переносится.

Хочу настроить так, чтобы контрагент регистрировался только при регистрации Номенклатуры, если в поле он указан, то добавить его в обмен.
   cw014
 
9 - 17.04.18 - 16:49
(8) Провести можно документ. Справочники не проводятся (хотя есть умельцы). Тебе нужно "подсунуть" кусочек кода, который регистрирует контрагента при записи справочника. В правилах конвертации прописать поля у контрагента, которые необходимо переносить. Ну и добавить его в ПВД
   Егор123
 
10 - 17.04.18 - 16:50
(9) "Записываю элемент справочника"* )
 
 Рекламное место пустует
   cw014
 
11 - 17.04.18 - 16:51
(10) Я тебе совет дал, в какую сторону копать
   Егор123
 
12 - 17.04.18 - 16:53
(9) я понял, спасибо. Хотелось бы без "подсовывания" решить. Возможно галку какую-то не ту нажал или есть настройка какая-то?
   cw014
 
13 - 17.04.18 - 16:55
(10) Погоди, а как ты создал контрагента, что он изначально в выгрузку не попал?
   Егор123
 
14 - 17.04.18 - 16:55
(11) к тому же такой метод - если мне понадобится  передача других объектов? опять в код лезть? например, захочу, чтобы контрагент передавался при проведении документа. Мне кажется галками всё управляется. Или я не прав?
   cw014
 
15 - 17.04.18 - 16:56
(14) Тут по другому работает. Создал контрагента - он зарегистрировался. Улетел в другую базу. Создал номенклатуру - она зарегистрировалась, улетела в другую базу. Контрагент подсунулся по ссылке, так как он уже есть в удаленной базе
   Егор123
 
16 - 17.04.18 - 16:57
(13)В конвертации данных напротив справочника Контрагенты галка Отключен стоит на вкладке Правила выгрузки данных.
   cw014
 
17 - 17.04.18 - 16:58
Может попробовать её включить?
   Егор123
 
18 - 17.04.18 - 16:58
(15) Контрагенты не переносятся при записи. Потому что все они в базе-приёмнике нафиг не нужны. Нужны только определённые, которые связаны с номенклатурной.
   cw014
 
19 - 17.04.18 - 16:59
(18) Тогда делай как в (9)
   Егор123
 
20 - 17.04.18 - 17:08
(19) так дело в том, что контрагент создаётся. даже по guid смотрел - что в одной базе, что в другой он идентичный. свойства просто не заполняются по нему. хотя ссылка на него есть (смотрел с программистом).
   cw014
 
21 - 17.04.18 - 17:27
(20) Зарегистрируй контрагента и заставь его выгрузиться
   Mankubus
 
22 - 18.04.18 - 06:24
(20) правила конвертации свойств настроены?
(5) Скрины тут вставляются ссылками на файлообменники
   Mankubus
 
23 - 18.04.18 - 06:25
В правилах выгрузки номенклатуры напиши:Выгрузить поправил укажи имя ПКО и ссылку на контрагента
   Егор123
 
24 - 18.04.18 - 11:29
(22) где можно посмотреть настройку "Правила конвертации свойств"?
   Егор123
 
25 - 18.04.18 - 11:34
(24) Понял о чём речь. Да, вроде, настроены. Есть то, на что обратить внимание в настройке?
   Cyberhawk
 
26 - 18.04.18 - 11:44
Скока платят за решение вопроса?
   Егор123
 
27 - 18.04.18 - 12:13
(26) а это тут к чему?
   Mankubus
 
28 - 18.04.18 - 12:15
(25) если настроены то норм. у тебя отключено правило выгрузки справочника Контрагенты, значит нужно выгрузку прописывать принудительно. см (23)
   Егор123
 
29 - 18.04.18 - 16:29
(23) А можете пример кода скинуть?
   Мандалай
 
30 - 18.04.18 - 17:33
Гугли выгрузитьпоправилу.
А вообще Бояркин тебе в помощь (книга крутая по КД).
   Cyberhawk
 
31 - 18.04.18 - 18:47
(27) Ну ты же задаешь тут вопросы, вот и Я задаю
   Егор123
 
32 - 19.04.18 - 13:14
(30) спасибо, буду копать


Список тем форума
Рекламное место пустует  Рекламное место пустует
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует