Имя: Пароль:
1C
 
КД: не работают правила при обмене через план обмена
,
0 ultrannge89
 
16.03.17
13:25
Добрый день. Проблема в следующем. Была задачка сделать выгрузку 200 документов Заказ клиента из УТ 11.2 в Документ Реализация товаров и услуг в БП 2.0 Для разработки я использовал КД. Правила сделал, при выгрузки данных при помощи обработки V8Exchan82. Данные выгружаются и загружаются. Создаются документы Реаализации, по ссылке выгружаются все нужные справочники. Такие как Контрагент, ДоговорКонтрагента, Номенклатура и тд. Затем мне сказали что надо бы организовать онлайн обмен, например каждый час. Настроил план обмена через ftp. Создал правила регистрации, которые при проведении или отмене проведения, ставят на регистрации документ Заказ клиента и все справочники по ссылке. Но при этом обмен у меня не хочет происходить, при загрузке данных в приемник (бп 2.0) создается документ, а ссылочные данные имеют вид Объект не найден. Если не сложно, не могли бы вы подсказать в чем дело? Куда копать? Просто это мои первые правила обмена, самостоятельно настаиваемые. Не понимаю, для плана обмена значит надо как то по-особенному делать правила, не так как для обработки...
1 Фрэнки
 
16.03.17
13:48
для начала - в КД 2 правила создавал или в КД 3 ?

Просто для правил конвертации объектов гораздо удобней и чаще рекомендуют использование именно КД2. Как это прикручивать в УТ 11.2 я еще не попробовал, но скорей всего проблема, что версию правил надо было взять другую, если одна из конфигураций, условно говоря, со старым БСП, а другая - с новым БСП.
2 Фрэнки
 
16.03.17
13:53
и перечитал твое описание и обратил внимание на такой момент:
когда используют внешнюю обработку для выполнения обмена, то в ней на выгрузку по ссылочной информации часто руками настройку указывают и не заморачиваются.

Если же в конвертации правила указываешь, то там надо все целиком прокликать один раз, чтоб все нужные ПКО (правила конвертации объектов) были установлены. Это в КД2 есть. Там дальше много нюансов, но просто выгружать все ссылки - это не трудно.
3 ultrannge89
 
16.03.17
13:56
Конвертация данных, редакция 2.1 (2.1.8.2)
4 ultrannge89
 
16.03.17
13:58
Я в обработке ничего вручную не указываю, выбираю правила, она сама исходя из правил ставит объекты на выгрузку, в ПВД у меня только документ Заказ клиента
5 ultrannge89
 
16.03.17
14:00
Пробовал в правилах добавить ПВД для объектов которые не выгружаются, но это не помогло...
6 ultrannge89
 
16.03.17
14:04
У документа реализация товаров и услуг в обработчике после загрузки, я вручную пере заполняю некоторые поля. Помимо этого, все остальные данные у меня интерактивными средствами настроены.

Отказ = Ложь;
Для Каждого СтрокаТЧ Из Объект.Услуги Цикл
    СтрокаТЧ.СчетДоходов = ПланыСчетов.Хозрасчетный.ВыручкаНеЕНВД;
    СтрокаТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД;
    СтрокаТЧ.СчетУчетаНДСПоРеализации = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД;
    Если ПараметрыОбъекта["Субконто"] = "" Тогда
    Иначе
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    НоменклатурныеГруппы.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.НоменклатурныеГруппы КАК НоменклатурныеГруппы
        |ГДЕ
        |    НоменклатурныеГруппы.Наименование = &НоменклатураНаименование";
        Запрос.УстановитьПараметр("НоменклатураНаименование", ПараметрыОбъекта["Субконто"]);
        РезультатЗапроса = Запрос.Выполнить();
        Если Не РезультатЗапроса.Пустой() Тогда
            ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
            ВыборкаДетальныеЗаписи.Следующий();
            СтрокаТЧ.Субконто = ВыборкаДетальныеЗаписи.Ссылка;
        Иначе
            пНоменклатура = Справочники.НоменклатурныеГруппы.СоздатьЭлемент();
            пНоменклатура.Наименование = ПараметрыОбъекта["Субконто"];
            Попытка
                пНоменклатура.Записать();
            Исключение
                Сообщить(ОписаниеОшибки());
            КонецПопытки;
            СтрокаТЧ.Субконто = пНоменклатура.Ссылка;
        КонецЕсли;
    КонецЕсли;
КонецЦикла;
Объект.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;
Объект.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически;
Объект.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
Объект.СчетУчетаРасчетовПоАвансам =  ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД;
Объект.ВалютаДокумента = Константы.ВалютаРегламентированногоУчета.Получить();

    
    
//Для отладки убираю обработку проведения
//Если ПараметрыОбъекта["СпособПроведения"] = "Проведение" Тогда
//    Объект.Комментарий = "Загружено из базы УТ:Сити недвижимость "+Формат(ТекущаяДата(),"ДЛФ=DDT");
//    Объект.Проведен = Истина;
//    Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
//    ОбъектМодифицирован = Ложь;
//ИначеЕсли ПараметрыОбъекта["СпособПроведения"] = "ОтменаПроведения" Тогда
//    Если Не Объект.ЭтоНовый() Тогда
//        Объект.Проведен = Ложь;
//        Объект.Комментарий = Объект.Комментарий+" , отменено на стороне УТ";
//        Объект.ПометкаУдаления = Истина;
//        Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения, РежимПроведенияДокумента.Неоперативный);
//        ОбъектМодифицирован = Ложь;
//    КонецЕсли;
//    Отказ = Истина;
//КонецЕсли;

Если Не Отказ Тогда
    Если ЗначениеЗаполнено(ПараметрыОбъекта["ДоговорДДУ"]) Тогда
        МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.Объект = Объект.Ссылка;
        МенеджерЗаписи.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ДоговорДДУ");
        МенеджерЗаписи.Значение = ПараметрыОбъекта["ДоговорДДУ"];
        Попытка
            МенеджерЗаписи.Записать();
        Исключение
        КонецПопытки;
    КонецЕсли;
КонецЕсли;
7 ultrannge89
 
16.03.17
14:15
(1), не совсем понял что ты имеешь ввиду, какую версию правил? Я создал чистые правила, сначала загрузил структуру метаданных источника и приемника в кд, затем настроил соответствие объектов источника и приемника, переопределил некоторые реквизиты в обработчике после загрузки документа релизация товаров. Просто у меня вызывает недоумение, что при обмене через обработку V8Exchan82 все отлично выгружается и документ проводится. А при обмене через план обмена с теми же правилами ссылочные данные не попадают в документ и он не проводится, для отладки я закомментирвал код проведения в обработчике после загрузки. Данные загрузились, но у документов вместо ссылочных реквизитов типа ДоговораКонтрагента, Контрагента и Номенклатуры ОбъектНеНайден...
8 Фрэнки
 
16.03.17
14:17
УТ 11 по умолчанию хочет видеть только правила регистрации данных, которые заточены в КД 3
Поскольку в тексте топика сразу не было указано, какой версией конвертации пользуешься, я высказал предположение, что правила одной версии используются там, где нужны правила другой версии.
9 mexanik_96
 
16.03.17
14:21
1.поставить авторегистрацию в плане обмена у тех метаданных которые нужны в источнике
2.поставить запретить в регистрации в плане обмена и написать правила регистрации
3. в правилах обмена добавить выгружатьобъект = истина там где у тебя объект не найден.
10 ultrannge89
 
16.03.17
14:22
У этой УТ есть еще один план обмена с другим узлом, правила для него писались тоже на КД 2, так что я думаю дело тут не в версии кд
11 mexanik_96
 
16.03.17
14:24
(для тех кто ничего не понял) в правилах выгрузитьобъект = истина будет самым простым и дешевым вариантов. выгрузитьобъект = истина в ПКО в обработке перед выгрузкой того поля (например договор в реализации или че там у тебя)
12 ultrannge89
 
16.03.17
14:26
(9) Ок, попробую сделать так.
13 mexanik_96
 
16.03.17
14:28
(12) попробуй сначала (11)
14 ultrannge89
 
16.03.17
14:31
Вот же странно... До этого не было такой ошибки, что-то я видимо перемудрил в правилах.

{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(8867)}: Ошибка при вызове метода контекста (УстановитьНовыйНомер)
            Объект.УстановитьНовыйНомер();
по причине:
Ошибка при выполнении обработчика - 'ПриУстановкеНовогоНомера'
по причине:
{ОбщийМодуль.ОбщегоНазначения.Модуль(6079)}: Ошибка при получении значения атрибута контекста (Префикс)
            Объект.УстановитьНовыйНомер();
по причине:
В данной транзакции уже происходили ошибки!
15 ultrannge89
 
16.03.17
14:33
(11), в любом случае спасибо, первая зацепка. Я до этого 2 дня мучался, пытаясь выгрузить...
16 ultrannge89
 
16.03.17
15:17
Не помогло, как выясняется, ошибка эта возникает из-за того что при выгрузке документа справочник организация тоже не выгрузился, а в коде программа пытается обратиться к данным ДокументОбъект.Организация.Префикс а это пустая ссылка...
17 mexanik_96
 
16.03.17
15:19
(16) ну почему организация пустая ссылка?
18 ultrannge89
 
16.03.17
15:22
Отладчиком смотрю, пишет ошибка получения представления
19 Быдло замкадное
 
16.03.17
15:26
Регистрировать надо не только документ но и все ссылочные типы в нем! Договора, контрагенты, номенклатура и т.д.
20 Быдло замкадное
 
16.03.17
15:27
правила выгрузки делать, в т.ч. на перечисления
21 ultrannge89
 
16.03.17
15:30
Да итак, когда я перепровожу документ, а затем в обработке регистрацияизменений смотрю, у меня на регистрацию помимо документа встают все ссылочные данные: организация, контрагент, дог контрагента, номенклатура.

Может у документа в событии перед выгрузкой использовать метод ВыгрузитьПоПравилу() и указывать каждый ссылочный реквизит???
22 ultrannge89
 
16.03.17
15:44
Ошибка эта выходит в обработке КонвертацияОбъектовИнформационныхБаз на строке Объект.УстановитьНовыйНомер();

В отладчике Объект это еще не записанный документ Реализация товаров и услуг. Ссылки нет, представления соответственно тоже.

Ошибка при вызове метода контекста (УстановитьНовыйНомер)
23 ultrannge89
 
16.03.17
15:47
Документ этот у меня должен генерировать новый номер. Временно уберу...
24 mexanik_96
 
16.03.17
15:48
автор ты явно что то не то делаешь. давай начнем сначала.
в пвд для реал там что?
25 mexanik_96
 
16.03.17
15:48
далее в пко для реал что?
26 ultrannge89
 
16.03.17
15:58
В ПВД у меня Спр Организация, Номенклатура, Контрагент, ДоговорКонтрагента. Док ЗаказКлиента.
В ПКО Док.ЗаказКлиента и спр.Организация, Номенклатура, Контрагент, ФизическиеЛица,Склады,ДоговорыКонтрагентов. перечисления... и рс.СоответствияОбъектовИБ
27 ultrannge89
 
16.03.17
16:07
Щас выложу правила
28 ultrannge89
 
16.03.17
16:10
29 mexanik_96
 
16.03.17
16:19
а че у тебя пвд реал нет? так и должно быть? типа потом ссылкой догоним?
30 mexanik_96
 
16.03.17
16:19
а понял заказ в реал...
31 mexanik_96
 
16.03.17
16:24
32 mexanik_96
 
16.03.17
16:25
и генерировать новый номер, код кд сама может поставь там галку в пко
33 ultrannge89
 
16.03.17
16:27
Я ставил, но у меня ошибка во время загрузки возникала, поэтому временно убрал
34 ultrannge89
 
16.03.17
16:27
Вообще странно через план обмена они не работают, а через обработку v8ecxhange82 все  ок...
35 mexanik_96
 
16.03.17
16:30
помог нет так и не понял?
36 ultrannge89
 
16.03.17
16:33
Неа((
37 ultrannge89
 
16.03.17
16:35
Ладно, в любом случае  спасибо, буду дальше разбираться
AdBlock убивает бесплатный контент. 1Сергей