|   |   | 
| 
 | И снова знатокам Конвертации данных! ↓ (Волшебник 20.07.2013 23:30) | ☑ | ||
|---|---|---|---|---|
| 0
    
        Грызлик 18.07.13✎ 13:58 | 
        у меня ПВХ (источник) имеет свойства разных типов(составные) http://hostingkartinok.com/show-image.php?id=f2519366eef56493efc974d92f084400. Когда я выгружаю из источника, типы составных данных выгружаются корректно, НООО вот в приемнике, эти типы загружаются только одним...и все, хотя в приемнике тоже свойства составной тип http://hostingkartinok.com/show-image.php?id=a5e5adb0d398d93768bd6ee57f0476b7. И в итоге получается, в приемнике, где тип строка или дата, Типы разные. Как сделать, что бы ПВХ типы передавались корректно. Ведь в ПКС, я передаю только наименование ПВХ, а его свойство не определяется как реквизит, и соответственно в приемнике подхватывается последний составной тип и подставляется.. Как сделать так, что бы реквизит ПВХ, имеющее составной тип строка, в приемнике, отобразился строкой, а не составным типом?     | |||
| 1
    
        NcSteel 18.07.13✎ 14:00 | 
        Передать параметром и при записи менять.     | |||
| 2
    
        Грызлик 18.07.13✎ 17:02 | 
        (1) Что-то не получается.. Создал параметр в самой конвертации (где вообще выбираю базу приемника и источника). При выгрузки задал ему значение и сообщением проверил что ему назначалось. При загрузки, я считываю этот параметр, а он пустой.     | |||
| 3
    
        Грызлик 18.07.13✎ 18:04 | 
        Я часть плана раскусил! Просмотрев файл XML, я понял что у меня выгружается из ПВХ только Код и Наименование. Тип не передается.. т.к. он задается в окне свойства объекта. И соответственно не передается. Теперь другая мысль, как задать параметр, куда закинуть свои необходимые данные, а при загрузке или после загрузки эти данные считать!???     | |||
| 4
    
        Жан Пердежон 18.07.13✎ 18:07 | 
        в ПКС галка "выгружать в параметр"  или как-то так     | |||
| 5
    
        acsent 18.07.13✎ 18:10 | 
        поле типзначения не передается через конвертацию стандартным способом     | |||
| 6
    
        NcSteel 18.07.13✎ 18:13 | 
        (5) Ну естественно не тип знч передавать, а по своемому сериализовать.     | |||
| 7
    
        acsent 18.07.13✎ 18:39 | 
        (6) самый простой вариант передавать пустую ссылку/значение     | |||
| 8
    
        acsent 18.07.13✎ 18:40 | 
        это если тип не составной     | |||
| 9
    
        ramir 18.07.13✎ 19:20 | 
        Для сериализации используй ЗначениеВСтрокуВнутр()
  Можно не заморачиваться с параметрами и в выгрузке сформировать коллекцию с нужными полями. И конвертировать элементы коллекции в элементы ПВХ. Выборка = ПланыВидовХарактеристик.Выбрать(); Коллекция = Новый ТаблицаЗначений; Коллекция.Колонки.Добавить(".... Пока Выборка.Следующий() Цикл НовСтр = Коллекция.Добавить(); ... НовСтр.Тип = ЗначениеВСтрокуВнутр(Выборка.ТипЗначения); КонецЦикла; В обработке при загрузке Объект.ТипЗначения = ЗначениеИзСтрокиВнутр(Источник.Тип); Код писал прямо здесь, возможно где-то ошибся в синтаксисе. Просто показываю как можно сделать. | |||
| 10
    
        KAO111 18.07.13✎ 20:26 | 
        В книжке Бояркина прямой пример есть     | |||
| 11
    
        Грызлик 19.07.13✎ 01:19 | 
        (9) Пробую ваш код... Выгружается корректно. Но ругается на последнюю сточку перед загрузкой..Типа не нравится слово тип.. Источник.Тип.. или просто тип. 
  (10) Ваше предложение просто поразило:). Нашел книгу(стр 155). Пример как у меня. Начинаю внедрять.. вот мой код. Ниже код.. разве что только нет сопоставление с простыми типами...Строка, дата, булево.. Может вот на них и ругается.. Выгружается корректно и в XML файле все ок(есть типы). Но при загрузке ошибка.-http://hkar.ru/hEau Код что использую при загрузке. [code] УзелТиповXML = одПолучитьXMLПредставлениеОписанияТипов(Источник.ТипЗначения); //для переноса одного типа в другой заменим наименование УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Валюты", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.ЗначенияСвойствОбъектов", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.КлассификаторЕдиницИзмерения", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.КлассификаторСтранМира", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.КонтактныеЛица", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.КонтактныеЛицаКонтрагентов", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Контрагенты", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.НоменклатурныеГруппы", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Номенклатура", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Организации", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Подразделения", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Пользователи", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Проекты", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.Склады", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.ТипыЦенНоменклатуры", "СправочникСсылка.СвойстваТовара"); УзелТиповXML = СтрЗаменить(УзелТиповXML, "СправочникСсылка.ФизическиеЛица", "СправочникСсылка.СвойстваТовара"); ДобавитьПодчиненный(Приемник, УзелТиповXML); [/code] Далее я лезу в саму обработку. И у меня происходит стопор на этой строке http://hkar.ru/hEaP(как бы я догадываться как решить проблему,- править код обработки... но не охота править стандартный код ее) что находится в этих переменных - http://hkar.ru/hEaZ, http://hkar.ru/hEb0. Поэкспериментировав с конфигурацией, понял чтобы система смогла заменить тип нужно указать такой код [code] КвЧисла = Новый КвалификаторыСтроки(10); Пероб = Новый ОписаниеТипов("Строка",,,,КвЧисла); Объект.ТипЗначения = Пероб; [/code] Так вот, как это сделать, не правя обработку? что не так делается? | |||
| 12
    
        KAO111 19.07.13✎ 08:15 | 
        Не знаю, та ли ошибка.
  Сейчас открыл свои правила. Оказывается я ОбъектМодифицирован устанавливаю сам. ПВХ СвойстваОбъектов, кофигурация Бух 2.0. ПКО ПриВыгрузке: УзелТиповXML = одПолучитьXMLПредставлениеОписанияТипов(Источник.ТипЗначения); ДобавитьПодчиненный(Приемник, УзелТиповXML); ПКО ПослеЗагрузки: ОбъектМодифицирован = Ложь; //КАО_120914 Небольшая ошибка в обработке загрузки, если изменяются только типы - не проверяет Если ОбъектНайден И НЕ ОбщегоНазначенияЗК.МассивыИдентичны(Объект.ТипЗначения.Типы(), Ссылка.ТипЗначения.Типы()) тогда ОбъектМодифицирован = Истина; КонецЕсли; | |||
| 13
    
        Грызлик 20.07.13✎ 15:07 | 
        (12) НЕ та ошибка. У меня это не канает. Блин. И то делать то? Самое простое.... как пережать произвольный параметр вместе с этим объектом?? я бы засовывал с каждым выгруженным объектом свои параметры и вставлял бы их     | |||
| 14
    
        ramir 20.07.13✎ 18:38 | 
        (11) Ну так используй другое слово.     | |||
| 15
    
        Грызлик 20.07.13✎ 19:09 | 
        (14) :) В смысле? Другое слово? В строке обработке, где ошибка?     | |||
| 16
    
        KAO111 20.07.13✎ 19:49 | 
        (13) у меня все работает в разных местах, в приемнике точно в ПВХ разрешен приходящий тип? Сообщение об ошибке очень странное.     | |||
| 17
    
        Грызлик 20.07.13✎ 20:19 | 
        (16)  Да Тип Строка точно разрешена... Сейчас играюсь... в общем создал обработку в ней одна кнопка.. пробую искать данный ПВХ в базе.. нахожу... и задаю ему код ..
  Ист = ПланыВидовХарактеристик.ПрочиеСвойстваТовара.НайтиПоНаименованию("ROD 1"); КвЧисла = Новый КвалификаторыСтроки(50); Стр = Новый ОписаниеТипов("Строка",,,,КвЧисла); Ист.Ссылка.ПолучитьОбъект().ТипЗначения = Стр; И.....Не работает....бррррррр.....Текст ошибки вточ вточ такой же что и при обмене у КД. Но этот же код из формы самого объекта пвх... в процедуре при открытии на сервере &НаСервере Функция ПриОткрытииНаСервере() //КвЧисла = Новый КвалификаторыСтроки(10); //Пероб = Новый ОписаниеТипов("Строка",,,,КвЧисла); //Объект.ТипЗначения = Пероб; КонецФункции И работает!!... вотё...к... не понимаю что за хрень.. думал в управляемой форме траблы.. но нет же.. в обычном приложении тоже самое.. | |||
| 18
    
        Грызлик 20.07.13✎ 22:51 | 
        ООООДА!!!!!!!!!!!!  РЕШИЛ ПРОБЛЕМУ!
  ФУУХ ИИИХА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Правда немного туповато.... НОООО я ЕЕ РЕШИЛ!!! Надо выпить пойти! В общем я решил так... если в карточке товара есть свойства.. а я как раз товары переношу и свойства... то я кидаю ПВХ, а с пвх и справочник СвойстваТовара(этот справочник как минимум есть во всех типовой "торговле"). Он делает движение в регистре сведение.- ЗначениеСвойствОбъектов. А там есть Объект, СвойстваТовара, и значение, а так как он выгружается по владельцу... я смотрю какой параметр передается в значение.. и смотрю его тип и далее нахожу владельца в пвх и задаю тип программно вот ниже код. Результат тот, который я хотел. Если Строка(ТипЗНЧ(Объект.Значения)) = "Строка" Тогда //находим ПВХ по наименованию Об = Строка(Объект.СвойстваТовара); Ист = ПланыВидовХарактеристик.ПрочиеСвойстваТовара.НайтиПоНаименованию(Об); Обк = Ист.ПолучитьОбъект(); //определим параметры строки КвЧисла = Новый КвалификаторыСтроки(); Стр = Новый ОписаниеТипов("Строка",,,,КвЧисла); Обк.ТипЗначения = Стр; Обк.Записать(); КонецЕсли; Если Строка(ТипЗНЧ(Объект.Значения)) = "Дата" Тогда //находим ПВХ по наименованию Об = Строка(Объект.СвойстваТовара); Ист = ПланыВидовХарактеристик.ПрочиеСвойстваТовара.НайтиПоНаименованию(Об); Обк = Ист.ПолучитьОбъект(); //определим параметры строки КвДата = Новый КвалификаторыДаты(ЧастиДаты.Дата); Стр = Новый ОписаниеТипов("Дата",,,,,КвДата); Обк.ТипЗначения = Стр; Обк.Записать(); КонецЕсли; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |