Имя: Пароль:
1C
1С v8
Конвертация ТЧ в реквизиты справочника
0 ber
 
21.02.18
15:17
Пишу конвертацию номенклатуры из КА 2 в КА 1

В КА2 Есть ТЧ доп. реквизиты его нужно преобразовать в реквизиты справочника.
В ПВД перед выгрузкой создаю структуру
ИсходящиеДанные     = Новый Структура;
Заполняю то что мне нужно,
в ПКО номенклатура в ПСК, ставлю галки получать из входящих данных.

Пробую выгрузить через обработку Универсальный обмен, смотрю файл. Выгружается все что нужно.

Но когда подсовываю правила в настройку синхронизации данных.
Получаю ошибку:
Получение элемента по индексу для значения не определено
Для реквизитов которые определял ПВО.

Собственно вопрос почему 1с такая проблема появляется, как еще можно отлаживать правила, как обойти.
С такими же проблемами сталкивался при выгрузке из КА 1 версии, при выгрузке обработка выгружает одно а при автоматическом обмене некоторые правила отрабатывают по другому.
1 Ёпрст
 
21.02.18
15:40
(0) в одном случае, выгружается объект, в другом ссылка.. вот и вся разница
2 Defender aka LINN
 
21.02.18
16:10
(0) Правила выгрузки данных применяются, когда объект выгружается по выборке изменений плана обмена. По ссылке ПВД не отрабатывает.
3 ber
 
21.02.18
16:19
В универсальной обработке указывается узел плана обмена.
Там уже зарегистрирован объект для выгрузки.
И ПВД отрабатывают. по ссылке ни чего не выбираю.

При автоматической выгрузке так же зарегистрирован этот объект но похоже что ПВД не работают.
4 Defender aka LINN
 
21.02.18
16:20
(3) Смотрим (2) еще раз
5 ber
 
21.02.18
16:37
Что значит по ссылке? (4)
В плане обмена Зарегистрирована только 1 ссылка на номенклатуру, больше ни чего.
По какой ссылке она должна выгружаться?
6 ber
 
21.02.18
17:38
Чудеса продолжаются
Перенес заполнение Входящих данных из ПВД в ПКО.

Данные заполняются но опять же при выгрузке через обработку проблем нет.
При автоматической выгрузке получаю ошибку:
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(17363)}: Ошибка при отправке данных: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(332)}: Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств): Недопустимое значение параметра (параметр номер '2')
        ВызватьИсключение(НСтр("ru = 'Ошибка при отправке данных'") + ": " + ОписаниеОшибки());
7 ber
 
21.02.18
19:03
Выяснилось что есть такой код:
Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(332)
    СвойстваДляПереноса = Новый Структура("Ссылка");
    Если Источник <> Неопределено И ТипЗнч(Источник) <> Тип("Строка") Тогда
        ЗаполнитьЗначенияСвойств(СвойстваДляПереноса, Источник);
    КонецЕсли;


Т.е. Получается что не могу я конвертировать Число в Справочник, только строку.

Причем при выгрузке через обработку Универсальный обмен по этим же правилам все работает.

Еще раз пожалел что решил для переноса данных использовать типовые механизмы.
Ни толковой документации ни нормальных средств отладки.
Основная теорема систематики: Новые системы плодят новые проблемы.