Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

КД 2 создание элемента справочника "На лету" (родителя)

КД 2 создание элемента справочника "На лету" (родителя)
Я
   live in sky dreams
 
22.07.19 - 16:58
Добрый день.
Есть 2 базы на 8, настраиваю конвертацию. Вопрос по перегрузке иерархических справочников.
Необходимо все переносимые элементы верхнего уровня(все, что без родителя) помещать в папку с наименованием "перегружено из базы ХХХХ". В конечной базе этих папок еще нет.

Каким образом настроить конвертацию, чтобы эти папки при необходимости создавались и прегружаемые объекты сыпались не в корень справочника-приемника, а аккурат в эту папочку?
 
 
   garmosha
 
1 - 22.07.19 - 17:00
Они или есть , точнее будут или их надо создать.
В одном случае это поиск из тех что есть.
В другом это правило при загрузке - там надо написать как они появляются.
   mistеr
 
2 - 22.07.19 - 17:25
(0) Я создавал группу заранее, прописывал в параметрах и писал в ПослеЗагрузки():

Если Объект.Родитель = Справочники.Номенклатура.ПустаяСсылка() Тогда
    Объект.Родитель = Параметры.ГруппаНоменклатуры;
КонецЕсли;
   garmosha
 
3 - 22.07.19 - 17:27
Параметры это то что есть в источнике. В получателе , думаю, параметров нет и там надо искать кодом в правиле после загрузки.
   mistеr
 
4 - 22.07.19 - 17:28
Можно совсем на лету, тогда нужно отдельное правило для группы и в ПКС родителя прописывать это правило, если элемент верхнего уровня.
   mistеr
 
5 - 22.07.19 - 17:30
(3) ЕСли поставить галку "Передавать при выгрузке", будут и в получателе.
   live in sky dreams
 
6 - 22.07.19 - 17:30
(1)(2)Понятно. Спасибо.
Тогда мне проще в базе - источнике во всех нужных спрравочниках посоздавать корневую группу и перенести туда элементы перед выгрузкой.
Просто в КД3 есть фишка такая, можно сделать структуру, заполнить ее свойства и передать к выгрузке. Она выгрузится с нужным типом. При загрузке все стандартно будет по полям поиска. Думал может в КД2 тоже такое есть...
   Ёпрст
 
7 - 22.07.19 - 17:31
Можно вообще тупо.. в ПослеЗагрузки искать нужного родителя, если нет - создать, если есть - подставить в качестве раодителя загружаемого объекта.
Усё.
   live in sky dreams
 
8 - 22.07.19 - 17:32
(4)я вот пытался реализовать что-то такое. Не допер еще...
Создал ПКС "СправочникНоменклатураГруппа", указал там поля (пока что по дефолту и источник заполнен и приемник), само ПКС указал в ПКО для "Родитель".

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.