![]() |
|
КД 2 создание элемента справочника "На лету" (родителя) | ☑ | ||
---|---|---|---|---|
0
live in sky dreams
22.07.19
✎
16:58
|
Добрый день.
Есть 2 базы на 8, настраиваю конвертацию. Вопрос по перегрузке иерархических справочников. Необходимо все переносимые элементы верхнего уровня(все, что без родителя) помещать в папку с наименованием "перегружено из базы ХХХХ". В конечной базе этих папок еще нет. Каким образом настроить конвертацию, чтобы эти папки при необходимости создавались и прегружаемые объекты сыпались не в корень справочника-приемника, а аккурат в эту папочку? |
|||
1
garmosha
22.07.19
✎
17:00
|
Они или есть , точнее будут или их надо создать.
В одном случае это поиск из тех что есть. В другом это правило при загрузке - там надо написать как они появляются. |
|||
2
mistеr
22.07.19
✎
17:25
|
(0) Я создавал группу заранее, прописывал в параметрах и писал в ПослеЗагрузки():
Если Объект.Родитель = Справочники.Номенклатура.ПустаяСсылка() Тогда Объект.Родитель = Параметры.ГруппаНоменклатуры; КонецЕсли; |
|||
3
garmosha
22.07.19
✎
17:27
|
Параметры это то что есть в источнике. В получателе , думаю, параметров нет и там надо искать кодом в правиле после загрузки.
|
|||
4
mistеr
22.07.19
✎
17:28
|
Можно совсем на лету, тогда нужно отдельное правило для группы и в ПКС родителя прописывать это правило, если элемент верхнего уровня.
|
|||
5
mistеr
22.07.19
✎
17:30
|
(3) ЕСли поставить галку "Передавать при выгрузке", будут и в получателе.
|
|||
6
live in sky dreams
22.07.19
✎
17:30
|
(1)(2)Понятно. Спасибо.
Тогда мне проще в базе - источнике во всех нужных спрравочниках посоздавать корневую группу и перенести туда элементы перед выгрузкой. Просто в КД3 есть фишка такая, можно сделать структуру, заполнить ее свойства и передать к выгрузке. Она выгрузится с нужным типом. При загрузке все стандартно будет по полям поиска. Думал может в КД2 тоже такое есть... |
|||
7
Ёпрст
гуру
22.07.19
✎
17:31
|
Можно вообще тупо.. в ПослеЗагрузки искать нужного родителя, если нет - создать, если есть - подставить в качестве раодителя загружаемого объекта.
Усё. |
|||
8
live in sky dreams
22.07.19
✎
17:32
|
(4)я вот пытался реализовать что-то такое. Не допер еще...
Создал ПКС "СправочникНоменклатураГруппа", указал там поля (пока что по дефолту и источник заполнен и приемник), само ПКС указал в ПКО для "Родитель". Как дальше сделать - чот пока не могу дотумкать... Сколько видосов и статей пересмотрел - именно на такой случай пока не наткнулся |
|||
9
live in sky dreams
22.07.19
✎
17:33
|
(7)Ну вот пока эта мысль живет в приоритете... Но хотелось бы допереть до правильной работы с ПКС
|
|||
10
garmosha
22.07.19
✎
17:33
|
(6) так тоже самое и в кд2 есть .. структура на входе правила выгрузки и она станет каким то элементом подходящим под это правило.
|
|||
11
mistеr
22.07.19
✎
17:34
|
(6) В КД2 тоже есть
|
|||
12
live in sky dreams
22.07.19
✎
17:34
|
(10)так... а можно пример мож где какой в статье или видео? Смотрел описание обработчиков, чот не нашел куда эту структуру передавать
|
|||
13
live in sky dreams
22.07.19
✎
17:35
|
Я так понимаю, это в ПКО нужно делать в ПослеВыгрузки?
|
|||
14
mistеr
22.07.19
✎
17:37
|
(9) В ПКС
Если Источник.Родитель = Справочники.Номенклатура.ПустаяСсылка() Тогда Значение = Новый Структура("Код", "..."); ИмяПКО = "ПКОДляГруппыВерхнегоУровня"; КонецЕсли; |
|||
15
Ёпрст
гуру
22.07.19
✎
17:38
|
(6) нафига ?
Тупо можешь выгружать в качестве Родителя в ПередВыгрузкой нужное значение. Группу можешь создать просто пустую в Источнике. |
|||
16
live in sky dreams
22.07.19
✎
17:38
|
(14)и дальше? ВыгрузитьПоПравилу?
|
|||
17
live in sky dreams
22.07.19
✎
17:39
|
(15)Перед выгрузкой, в базе источнике, родитель не существует.. В этом вся вишка... создать его в приемнике на лету, если его нет. Если он есть - подставить в поле Родитель
|
|||
18
mistеr
22.07.19
✎
17:39
|
(16) Нет, этого достаточно.
|
|||
19
garmosha
22.07.19
✎
17:40
|
(16) структура в ПКО передается .. или просто пишется ВыгрузитьПоПравилу и параметры.
|
|||
20
live in sky dreams
22.07.19
✎
17:40
|
(18)(19)и все? Так все просто? Спасибо! Сейчас попробую
|
|||
21
Ёпрст
гуру
22.07.19
✎
17:41
|
Создаешь группу "Вася"
далее в ПКС Родитель втыкаешь Если Источник.Родитель = Справочники.Номенклатура.ПустаяСсылка() Тогда Значение = Справочники.Номенклатура.НайтиПоНаименованию("Вася"); КонецЕсли; |
|||
22
garmosha
22.07.19
✎
17:41
|
(17) а как вы написали это правило при загрузке (или что то там) так как у вас условие зависит от того есть ли данные в получателе, а по источнику вы это понять не можете.
|
|||
23
Ёпрст
гуру
22.07.19
✎
17:41
|
Ну или структуру передать в пкс
|
|||
24
live in sky dreams
22.07.19
✎
17:47
|
(22) да я пока еще в ПриЗагрузке ничего не писал
|
|||
25
live in sky dreams
22.07.19
✎
17:47
|
пока пробую со структурой
|
|||
26
live in sky dreams
22.07.19
✎
18:02
|
Да! Со структурой все получилось!
Спасибо, коллеги! |
|||
27
mikecool
22.07.19
✎
18:06
|
(2) +1
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |