![]() |
![]() |
![]() |
|
v8: КД Ошибка при вызове метода контекста (Уровень): Элемент не выбран! | ☑ | ||
---|---|---|---|---|
0
zippygrill
24.06.11
✎
13:59
|
ребят, почему при переносе спр из УПП 8.1 в УПП 8.2(в определеной папке!!) останавливается с ошибкой:
Ошибка при вызове метода контекста (Уровень): Элемент не выбран! Перенос в приемнник в определеной папке делаю по книжке Бояркина. Если Источник.Уровень() = 0 Тогда Значение = 1; ИмяПКО = "КонтрагентыМЦБОтдельноГруппа"; КонецЕсли; Причем из 8.2 -> 8.2 все четко переносится. |
|||
1
zippygrill
24.06.11
✎
14:04
|
уп
|
|||
2
zippygrill
24.06.11
✎
14:11
|
апну
|
|||
3
ДенисЧ
24.06.11
✎
14:13
|
Наверное, Источник не выбран? :-)
|
|||
4
Andy13
24.06.11
✎
14:15
|
Ну это запросто. К примеру ПКО отрабатывает родителя корневого элемента. У него родитель - неопределен. То есть элемент не выбран.Вот и вываливается.
|
|||
5
zippygrill
24.06.11
✎
14:17
|
из за этого ? ))
ПКС = 40 (Родитель --> Родитель) Объект = <Объект не найден> (71:b3f0000423c7583b11dd733b5a7aa084) (Справочник ссылка: Номенклатура) (4) понятно. как победить? точнее как написать б исключение родителя корневой папке. |
|||
6
Andy13
24.06.11
✎
14:18
|
Если хочешь поймать корневой элемент, используй:
Если Источник <> Неопределено Если Источник.Родитель = Неопределено Тогда Значение = 1; ИмяПКО = "КонтрагентыМЦБОтдельноГруппа"; КонецЕсли; КонецЕсли; 1-отсечение пустых. 2-выявление корневых элементов |
|||
7
Andy13
24.06.11
✎
14:24
|
А вообще что надо сделать?
Сложить всю номенклатуру из базы-источника в одну папку в базе-приемнике? |
|||
8
zippygrill
24.06.11
✎
14:25
|
ага.
|
|||
9
Andy13
24.06.11
✎
14:25
|
Ой, не неопределено, а Справочники.Номенклатура.ПустаяСсылка();
|
|||
10
Andy13
24.06.11
✎
14:26
|
(8) Секундочку, щас изложу как надо делать...
|
|||
11
zippygrill
24.06.11
✎
14:27
|
то ести вместо:
Если Источник.Уровень() = 0 Тогда Значение = 1; ИмяПКО = "КонтрагентыМЦБОтдельноГруппа"; КонецЕсли; надо: Если Источник <> Неопределено Если Источник.Родитель = Справочники.Номенклатура.ПустаяСсылка() Тогда Значение = 1; ИмяПКО = "КонтрагентыМЦБОтдельноГруппа"; КонецЕсли; КонецЕсли; |
|||
12
Andy13
24.06.11
✎
14:28
|
(11) Не, всё не так! Подожди, щас изложу.
|
|||
13
Andy13
24.06.11
✎
14:31
|
Все действия выполняются при загрузке в базе-приемнике.
Собственно как было сделано: 1. В Обработчике "Перед загрузкой данных" ПК (правил конвертации) ищется папка в корне с заданным наименованием ("Товары УТ"). Если не находится, то создается. Ссылка помещается в параметры. СпрНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("Товары УТ",Истина,Справочники.Номенклатура.ПустаяСсылка()); Если СпрНоменклатура.Пустая() Тогда СпрНоменклатура = Справочники.Номенклатура.СоздатьГруппу(); СпрНоменклатура.Наименование = "Товары УТ"; СпрНоменклатура.Записать(); КонецЕсли; Параметры.Вставить("ПапкаУТ", СпрНоменклатура.Ссылка); 2. В обработчике "После загрузки" ПКО "Номенклатура" подставляется родитель для всех корневых элементов. Как папок, так и отдельно взятых элементов. В результате вся номенклатура оказывается в базе-приемнике в одной папке с предопределенным именем. Если Объект.Родитель = Справочники.Номенклатура.ПустаяСсылка() Тогда Объект.Родитель = Параметры.ПапкаУТ; КонецЕсли; |
|||
14
zippygrill
24.06.11
✎
15:05
|
А в ПКС Родитель ниче не заполняешь?
|
|||
15
Andy13
24.06.11
✎
15:07
|
(14) ПКС Родитель - описываешь обычным способом.
|
|||
16
zippygrill
24.06.11
✎
15:08
|
Значение = Источник; ? ))
|
|||
17
Andy13
24.06.11
✎
15:09
|
Не понял...
|
|||
18
Andy13
24.06.11
✎
15:10
|
В ПКС Родитель ничего не добавляешь.
|
|||
19
zippygrill
24.06.11
✎
15:15
|
извини а Параметры.Вставить("ПапкаУТ" ...) "ПапкаУТ" - это что? ПКО какое-то?
|
|||
20
Andy13
24.06.11
✎
15:18
|
(19) Это наименование папки. Можещь воткнуть туда что угодно. Например: "Папка со всякой хренью", "Товары", "Хрень никому не нужная" и т.д.
Читайте мануалы! Ну или хотя бы то что вам пишут(п.1)... |
|||
21
zippygrill
24.06.11
✎
15:24
|
ну так ты этим методом не создал нужную папку ?
СпрНоменклатура = Справочники.Номенклатура.СоздатьГруппу(); СпрНоменклатура.Наименование = "Товары УТ"; СпрНоменклатура.Записать(); |
|||
22
Синий зуб
24.06.11
✎
15:35
|
Поставь Останавливаться по ошибке и посмотри при остановке, че там происходит, чего гадать.
|
|||
23
Andy13
24.06.11
✎
16:32
|
(21) В первом пункте ищется папка с наименованием "Товары УТ". Если её ещё нет, то создаем. Ссылку запихиваем в параметры. Потом эту ссылку впихиваем как родителя всем корневым элементам, из переносимых.
|
|||
24
zippygrill
24.06.11
✎
16:37
|
ну да я уже догадался. А вот сам не могу понять почему между 8.2 это катит а между 8.1 -> 8.2 нет.
|
|||
25
zippygrill
28.06.11
✎
17:16
|
(13) По мимо "МояОпределеннаяПапка" в приемнике создаются папки из источника. Почему это так? Разве не должно быть только "МояОпределеннаяПапка".
|
|||
26
zippygrill
28.06.11
✎
17:25
|
http://imageshack.us/photo/my-images/820/59276252.jpg/
Должно быть только одна папка с кодом 00000000001. Что за фигня? |
|||
27
Aprobator
28.06.11
✎
17:32
|
(0) кажется так
|
|||
28
Aprobator
28.06.11
✎
17:33
|
Не ЗначениеЗаполнено(Источник) конечно
|
|||
29
zippygrill
28.06.11
✎
18:47
|
(28)то ести ты предлагаешь что если Родитель не заполнен то не перенести?))
|
|||
30
zippygrill
29.06.11
✎
09:37
|
уп
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |