|
Правила конвертации, выгружаю только ссылку как проверить что объект есть в приемнике? | ☑ | ||
---|---|---|---|---|
0
Бешеный заяц
21.01.20
✎
10:33
|
Нужно чтобы при загрузки регистра сведений если в реквизите "Владелец" битая ссылка (номенклатуры) то такой регистр не загружался и не плодились записи с битыми ссылками.
Предполагаю необходимо в модуле "Перед загрузкой" проверять так как там есть "Отказ" поставить, но как проверить будет ли ссылка битой или нет? |
|||
1
mikecool
21.01.20
✎
10:35
|
а почему не перегружаешь номенклатуру по ссылке?
|
|||
2
pechkin
21.01.20
✎
10:35
|
после загрузки ставь отказ если ссылка битая
|
|||
3
Бешеный заяц
21.01.20
✎
10:37
|
(2) точно спасибо, не дочитал до конца описание обработчика:-)
(1) другая номенклатура для другой базы |
|||
4
Aleksey
21.01.20
✎
10:37
|
Никак, ибо в самой КД заложены битые ссылки. Так как владелец может быть загружен позже. Т.е. на доанном этапе ссылка битая, а уже в конце загрузки или в следующем пакете - опа и всё норм
|
|||
5
mikecool
21.01.20
✎
11:09
|
(4) по идее - номенклатура выгружается раньше, чем документ, в котором она участвует, порядок у нее будет меньше
|
|||
6
Бешеный заяц
21.01.20
✎
13:55
|
Не буду плодить отдельную тему, еще вопрос связанный с данным вопросом.
В модуле "После загрузки" пытаюсь выполнить проверку на битую ссылку Если СокрЛП(Объект.Владелец.Код) = "" Тогда Отказ = Истина; КонецЕсли; В результате получаю ошибку при этом открываю УПП вижу что у регистра "Штрихкоды" Владелец есть, подскажите в чем проблема? как лечить? Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = ШтрихкодыНоменклатуры ТипОбъекта = Регистр сведений набор записей: Штрихкоды Объект = РегистрСведенийНаборЗаписей.Штрихкоды Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Поле объекта не обнаружено (Владелец) ПозицияМодуля = (1) КСообщенияОбОшибках = 21 |
|||
7
Бешеный заяц
21.01.20
✎
13:56
|
может существуют особенности для конвертации регистров?
|
|||
8
mikecool
21.01.20
✎
13:56
|
а что есть объект в этом случае? Добавть сначала
Сообщить(Объект); Сообщить(ТипЗнч(Объект)); |
|||
9
Cyberhawk
21.01.20
✎
13:59
|
Веселуха будет когда в одном сообщении обмена будет и сам объект (новый, которого еще нет в приемнике), и запись регистра с этим объектом, и:
- нет управления порядком объектов при загрузке или - нет механизма пропуска ошибочных объектов в приемнике с передачей и перерегистрацией оных в источнике . |
|||
10
Cyberhawk
21.01.20
✎
13:59
|
Второе, исходя из постановки, автору без первого не подойдет, и первого тоже нет
|
|||
11
Бешеный заяц
21.01.20
✎
14:03
|
(8) РегистрСведенийНаборЗаписей.Штрихкоды и Регистр сведений набор записей: Штрихкоды
|
|||
12
Cyberhawk
21.01.20
✎
14:05
|
(11) Не томи, давай уже структуру регистра из дерева метаданных
|
|||
13
Бешеный заяц
21.01.20
✎
14:09
|
||||
14
Cyberhawk
21.01.20
✎
14:11
|
Ну добавь тогда еще
Сообщить(Объект.Владелец); Сообщить(ТипЗнч(Объект.Владелец)); |
|||
15
Бешеный заяц
21.01.20
✎
14:18
|
(14) Поле объекта не обнаружено (Владелец)
|
|||
16
Бешеный заяц
21.01.20
✎
14:19
|
по метаданным набора записей можно циклом пройтись посмотреть что там вообще есть?
|
|||
17
palsergeich
21.01.20
✎
14:19
|
(16) Можно
|
|||
18
Бешеный заяц
21.01.20
✎
14:21
|
(17) не по метаданным регистра. а именно текущего набора записей, тогда вопрос как?
|
|||
19
Бешеный заяц
21.01.20
✎
14:23
|
возможно особенности какие есть при работе с регистром сведений в конвертации? это же не совсем объект на подобно документу или справочнику.
|
|||
20
Cyberhawk
21.01.20
✎
14:23
|
А, ну так у тебя ж набор, а не запись. Нет у набора никаких свойств-измерений регистра.
|
|||
21
Cyberhawk
21.01.20
✎
14:24
|
Объект[0].Владелец - вот так будет
|
|||
22
pechkin
21.01.20
✎
14:27
|
(9) если в выгружаются объекты по ссылкам, то такого быть не может
|
|||
23
Cyberhawk
21.01.20
✎
14:29
|
(22) Как скажешь
|
|||
24
Бешеный заяц
21.01.20
✎
14:46
|
(21) на владельца продолжает ругаться, но уже в другом месте в попытке исключения
Если СокрЛП(Объект[0].Владелец.Код) = "" Тогда Отказ = Истина; КонецЕсли; Попытка Если Объект.Владелец[0].ВидНоменклатуры.код = "000000046" или Объект[0].Владелец.ВидНоменклатуры.код = "000000003" и НЕ Отказ Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 | СоответствияНоменклатуры.НоменклатураИсточник, | СоответствияНоменклатуры.ХарактеристикаИсточник |ИЗ | РегистрСведений.СоответствияНоменклатуры КАК СоответствияНоменклатуры |ГДЕ | СоответствияНоменклатуры.НоменклатураПриемник = &НоменклатураПриемник | И СоответствияНоменклатуры.ХарактеристикаПриемник = &ХарактеристикаПриемник"; Запрос.УстановитьПараметр("НоменклатураПриемник",Объект[0].Владелец); Запрос.УстановитьПараметр("ХарактеристикаПриемник",Объект[0].ХарактеристикаНоменклатуры); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); Объект[0].Владелец = Выборка.НоменклатураИсточник; Объект[0].ХарактеристикаНоменклатуры = Выборка.ХарактеристикаИсточник; Объект[0].ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.ПустаяСсылка(); КонецЕсли; КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; |
|||
25
Бешеный заяц
21.01.20
✎
15:21
|
(24) нашел косяк в коде всем спасибо
|
|||
26
Бешеный заяц
22.01.20
✎
12:16
|
Еще одна проблема ОТКАЗ = Истина для регистра сведений не работает, как обойти?
те у меня набор, соответственно если у меня в наборе есть не заполненный владелец ставлю отказ=истина те не загружать, в результате у меня всё равно грузит запись с битыми ссылками. Вопрос как грамотно удалить запись набора? если написать Запись.Удалить() то у меня цикл посыпется если нет следующей записи ? Для Каждого Запись Из Объект Цикл Если НЕ ЗначениеЗаполнено(Запись.Владелец) или СокрЛП(Запись.Владелец.Код) = "" Тогда ЗаписьЖурналаРегистрации("Загрузка ШК",,,, "Сработал отказ: "+СокрЛП(Запись.Владелец.Код)); Отказ = Истина; Иначе ЗаписьЖурналаРегистрации("Загрузка ШК",,,, "Проверка пройдена: "+СокрЛП(Запись.Владелец.Код)); КонецЕсли; КонецЦикла; |
|||
27
Бешеный заяц
22.01.20
✎
12:22
|
(26) да и Запись.Удалить() вообще не работает нужно видимо Объект.Удалить(индекс)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |