Конвертация данных 2.0 Как задать значение конкретного элемента базы получателя ?
При выгрузке данных в правиле конвертации свойств (ПКС) в разделе "при выгрузке" необходимо Значение взять не из реквизита источника, а жестко задать, причем известно только какой это будет элемент в базе приемнике, в базе источнике такого элемента нет. Как это сделать ? Мне нужно получить непредопределенный (выбрать по коду) элемент справочника базы получателя, значение перечисления базы получателя и Счет Хозрасчетного плана счетов тоже базы получателя.
Понимаю, как при выгрузке можно найти объект базы источника, а вот как получить и записать в Значение элемент базы получателя - ума не приложу. Спасибо!
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Добрые люди, помогите пожалуйста! Понимаю что тема избитая, ветку изучил но результат = 0
Пытаюсь изменить плавила обмена (Больничная Аптека ред. 1.1 -> Бухгалтерия государственного учреждения ред. 2.0) вношу изменения в ПКО ПТ_ПоступлениеМЗ а именно в табличную часть МАТЕРИАЛЫ в ПКС Коэффициент:
В правило ПередВыгрузкой вношу запись вида: Значение = 1; Другими словами хочу добиться того что бы Коэффициент в приемнике ровнялся 1;
Обмен (синхронизация) организован типовым решением Больничная Аптека с применением БСП. В итоге при попытке синхронизироваться в Журнале Больничной Аптеки появляется следующее ошибочное сообщение:
Обмен данными.ОбменБольничнаяАптекаБухгалтерияГосударственногоУчреждения20 .Узел БГ.Выгрузка данных
Ошибка в обработчике события ПередВыгрузкой (свойства) ПКО = ПТ_ПоступлениеМЗ (Документ: Поступление товаров) ПКС = 34 (--> Коэффициент) Объект = Поступление товаров 00АП-000005 от 20.01.2015 15:51:31 (Документ объект: Поступление товаров) СвойствоПриемника = Коэффициент (Число) Обработчик = ПередВыгрузкойСвойства ОписаниеОшибки = Метод объекта не обнаружен (ПКС_ПТ_ПоступлениеМЗ_Материалы_Коэффициент_ПередВыгрузкойСво йства_34_16) ПозицияМодуля = (1) КСообщенияОбОшибках = 55
Из описания ошибки понятно что не обнаружен метод объекта (ПКС_ПТ_ПоступлениеМЗ_Материалы_Коэффициент_ПередВыгрузкойСво йства_34_16) где этот метод и зачем он необходим ума не приложу. Подскажите пожалуйста
Во вложении типовые правила обмена (ПравилаДляОбменаДанными.xml), и правила обмена после изменения (ПравилаДляОбменаДанными-ИЗМ.xml)
- Скопировать ссылку
- Перейти
(127) UsachevDima, очень похоже, что у вас с обработкой ОбменДанными что-то не в порядке, или с конфигурацией Конвертация данных. Если не получается установить свойство, тогда может в ПКО ПТ_ПоступлениеМЗ перед выгрузкой в запросе коэффициент установить напрямую?
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Допустим в приемнике у тебя есть справочник [Материалы] с реквизитами [ВидМатериала:ПеречислениеСсылка.ВидыМатериалов] и [СчетУчета:ПланСчетовСсылка.Основной] скажем [Перечисление.ВидыМатериалов] имеет элементы и имеется план счетов с элементами , в источнике справочник [Номенклатура] и нет вообще типов [ПеречислениеСсылка.ВидыМатериалов и [ПланСчетовСсылка.Основной]. Ты Источник [Номенклатура] преобразуешь в Получателя [Материалы] передавая только реквизиты [Код] и [Наименование]. Для этого создаешь ПКО [СправочникСсылка.Номенклатура -> СправочникСсылка.Материалы] создаешь все необходимые для Получателя ПКС, а именно [Код], [Наименование],[ВидМатериала],[СчетУчета]. Для реквизитов [Код] и [Наименование] все тривиально - выставляешь соответствующие реквизиты Источника. А для [ВидМатериала] и [СчетУчета] создаешь соответствующие ПКО, где Источник ставишь Строка а приемник - необходимый тебе тип, а именно ПКО [Строка -> ПеречислениеСсылка.ВидыМатериалов] и ПКО [Строка -> ПланСчетовСсылка.Основной]. В ПКО [Строка -> ПеречислениеСсылка.ВидыМатериалов] заполняешь соответствие значений и В ПКО [Строка -> ПланСчетовСсылка.Основной] заполняешь соответствие значений и Возвращаешься в ПКО [СправочникСсылка.Номенклатура -> СправочникСсылка.Материалы] и устанавливаешь на ПКС соответствующие ПКО созданные выше. Далее открываешь ПКС [ВидМатериала] и в обработчике "ПередВыгрузкой" пишешь код в результате которого переменной Значение необходимо установить либо "Топливо" либо "Запчасти", далее оно по ПКО [Строка -> ПеречислениеСсылка.ВидыМатериалов] преобразуется в приемнике в значение типа ПеречислениеСсылка.ВидыМатериалов. Соответственно с ПКС [СчетУчета], в обработчике "ПередВыгрузкой" пишешь код в результате которого переменной Значение установить "10.3" или "10.5".
ЗЫ: Я пишу в настоящий момент цикл статей по "Конвертация данных", посматривай в разделе "Статьи" на сайте http://aitrade.ru .
- Скопировать ссылку
- Перейти
К сожалению статей на указанном сайте по КД не нашел.
Идею как мне кажется я понял - суть создать ПКО (правило конвертации объекта) которое из кода найдет толи справочник, толи перечисление в базе приемника.
Этот поиск надо делать в закладке "Перед загрузкой" в ПКО ? Но в книжке по КД не нашел переменной, в которой собственно переданное значение и куда полученный результат записать.
Ну предположим, мне надо чтобы реквизиту был подставлен счет "50". В ПКС источник не ставлю, на закладке "при выгрузке" пишу Значение = "50";
Формирую новое правило ПКО: Объект инф. базы источника: Строка Объект инф. бызы приемника: ПланСчетовСсылка.Хозрасчетный
Загрузка данных: снимаю галочку искать "искать объект приемника по внутреннему идентификатору" ставлю галку "не создавать" и "не замещать" На закладке "При загрузке" пишу: Значение = ПланыСчетов.Хозрасчетный.НайтиПоКоду(Источник);
При записи данных не ругается, а при загрузке в V8Exchan81.epf пишет: Ссылка на несуществующий объект метаданных в правилах обмена Объект = Строка ОписаниеОшибки = Значение не является значением объектного типа (ПКО) ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML(2071) КодСообщения = 11
- Скопировать ссылку
- Перейти
настроить сопоставление значений? "Конвертация значений" внизу, сопоставить строковые значения счетов с предопределенными в источнике.
Если файл XML не большой, вставь сюда.
Для справочника отсутствующего в Источнике так же создаешь ПКО, где свойству [Код] присваиваешь Значение какое нужно, в событие "ПриЗагрузке" лучше не соваться, лучше все делать при выгрузке.
ЗЫ: Про сайт я написал, что пишу статьи, там много связей между статьями и выкладывать кусками не красиво =)
- Скопировать ссылку
- Перейти
А можно по шагам ? я не могу понять в ПКС или в ПКО это делать ?
в документе: ПриходныйКассовыйОрдер СчетКасса
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
Если Источник.ВидНоменклатуры.Наименование = "Запчасти" тогда Номенклатура = Справочники.Номенклатура.найтиПоКоду(00000000009); ИначеЕсли Источник.ВидНоменклатуры.Наименование = "Материалы" тогда Номенклатура = Справочники.Номенклатура.найтиПоКоду(00000000030); Иначе Номенклатура = Источник; КонецЕсли;
ВходящиеДанные.Вставить("Родитель", Номенклатура.Родитель); ВходящиеДанные.Вставить("Наименование", Номенклатура.Наименование); ВходящиеДанные.Вставить("ЭтаГруппа", Номенклатура.ЭтаГруппа); ВходящиеДанные.Вставить("Код", Номенклатура.Код);
Ошибка в обработчике события ПередВыгрузкойОбъекта ПКО = Номенклатура (Справочник: Номенклатура) Объект = Втулка (Номенклатура) Обработчик = ПередВыгрузкойОбъекта ОписаниеОшибки = Значение не является значением объектного типа (Вставить) ПозицияМодуля = (11) КодСообщения = 41
Ошибка в обработчике события ПередВыгрузкойОбъекта ПКО = Номенклатура (Справочник: Номенклатура) Объект = Втулка (Номенклатура) Обработчик = ПередВыгрузкойОбъекта ОписаниеОшибки = Значение не является значением объектного типа (Вставить) ПозицияМодуля = (11) КодСообщения = 41
Ошибка получения свойства объекта из входящих данных ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 2 ( --> Наименование) Объект = Втулка (Номенклатура) СвойствоПриемника = Наименование (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8231) КодСообщения = 68
Ошибка получения свойства объекта из входящих данных ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 3 ( --> Родитель) Объект = Втулка (Номенклатура) СвойствоПриемника = Родитель (СправочникСсылка.Номенклатура) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8231) КодСообщения = 68
Ошибка получения свойства объекта из входящих данных ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 4 ( --> ЭтоГруппа) Объект = Втулка (Номенклатура) СвойствоПриемника = ЭтоГруппа (Булево) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8231) КодСообщения = 68
Ошибка в обработчике события ПередВыгрузкой (свойства) ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 14 ( --> Код) Объект = Втулка (Номенклатура) СвойствоПриемника = Код (Строка) Обработчик = ПередВыгрузкойСвойства ОписаниеОшибки = Значение не является значением объектного типа (ВыгружатьКод) ПозицияМодуля = (1) КодСообщения = 55
Ошибка получения свойства объекта из входящих данных ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 14 ( --> Код) Объект = Втулка (Номенклатура) СвойствоПриемника = Код (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8231) КодСообщения = 68
Ошибка получения свойства объекта из входящих данных ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 2 ( --> Наименование) Объект = Втулка (Номенклатура) СвойствоПриемника = Наименование (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8231) КодСообщения = 68
Ошибка получения свойства объекта из входящих данных ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 3 ( --> Родитель) Объект = Втулка (Номенклатура) СвойствоПриемника = Родитель (СправочникСсылка.Номенклатура) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8231) КодСообщения = 68
Ошибка получения свойства объекта из входящих данных ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 4 ( --> ЭтоГруппа) Объект = Втулка (Номенклатура) СвойствоПриемника = ЭтоГруппа (Булево) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8231) КодСообщения = 68
Ошибка в обработчике события ПередВыгрузкой (свойства) ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 14 ( --> Код) Объект = Втулка (Номенклатура) СвойствоПриемника = Код (Строка) Обработчик = ПередВыгрузкойСвойства ОписаниеОшибки = Значение не является значением объектного типа (ВыгружатьКод) ПозицияМодуля = (1) КодСообщения = 55
Ошибка получения свойства объекта из входящих данных ПКО = Номенклатура (Справочник: Номенклатура) ПКС = 14 ( --> Код) Объект = Втулка (Номенклатура) СвойствоПриемника = Код (Строка) ОписаниеОшибки = Получение элемента по индексу для значения не определено ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8231) КодСообщения = 68