|
v7: Как назначить произвольную ссылку реквизиту при конвертации данных? | ☑ | ||
---|---|---|---|---|
0
SiAl-chel
14.07.15
✎
09:01
|
Доброго дня, коллеги.
Есть задачу перенести с помощью "Конвертации данных, ред. 2.1" справочник, на допустим основных средств, из базы одной конфигурации в базу другой конфигурации. И всё это на 1С:Предприятии 7.7. Поля поиска: "Родитель", "ЭтоГруппа", "Код". Как сделать так, чтобы для групп и элементов, находящихся на верхнем уровне, то есть Родитель.Выбран() = 0, создать и выбрать группу с определенным названием. Отдельное ПКО с полями поиска "Наименование", "ЭтоГруппа" я сделал. Там наименованию намертво присваивается значение. Вот что дальше сделать? Ума не приложу. Пробовал добавить еще один ПКС для поля "Родитель", при чем стандартное ПКС "Родитель" имеет ПКО того же справочника. Отказ равен 1, если Родитель.Выбран() = 0. А для нового ПКС, я указал вновь созданное ПКО. И это ПКС используется только если Родитель.Выбран() = 0. Но положительного результата все равно нет. |
|||
1
SiAl-chel
14.07.15
✎
10:22
|
Вверх
|
|||
2
Otkr
14.07.15
✎
10:27
|
В ПКО в "После загрузки" пишешь
Если Не ЗначениеЗаполнено(Объект.Родитель) тогда Объект.Родитель = Справочники.ТвойСправочник.НайтиПоНаименованию("нужое наименование") Конецесли; |
|||
3
Альбатрос
14.07.15
✎
10:28
|
В передВыгрузкой ПКС
Если Родитель.Выбран() = 0 тогда Значение = ТвойРодитель; КонецЕсли; |
|||
4
Альбатрос
14.07.15
✎
10:29
|
(2) А если его еще нет в приемнике?
|
|||
5
Otkr
14.07.15
✎
10:30
|
(4) Так пусть создаст там же, то бишь
перед этим Если Справочники.ТвойСправочник.НайтиПоНаименованию("нужое наименование") = Справочники.ТвойСправочник.ПустаяСсылка тогда Зн= Справочники.ТвойСправочник.СоздатьГруппу() и т.д |
|||
6
Альбатрос
14.07.15
✎
10:32
|
(5) Да ну... Лишний код, (3) быстрее и правильнее.
|
|||
7
Otkr
14.07.15
✎
10:34
|
(6) Ну да, а кто сказал что в источнике есть нужный родитель?
|
|||
8
Альбатрос
14.07.15
✎
10:42
|
(7) Программист))) ведь это он по каким-то там критериям будет его определять
|
|||
9
SiAl-chel
14.07.15
✎
11:14
|
(2), (5) попробую, но вроде во встроенной справке написано, что обработчики загрузки в 7.7 не используются.
(3) Дело в том, что в базе-источнике нет такого объекта. Мне надо все группы и элементы в базе-получателе засунуть в определенную группу. |
|||
10
Otkr
14.07.15
✎
11:15
|
(9) Так с этого надо было начинать, что ты в 7.7 грузишь
|
|||
11
Альбатрос
14.07.15
✎
11:20
|
(9) Создай группу заранее и в ПКС:
Если Родитель.Выбран() = 0 тогда Значение = СоздатьОбъект("СписокЗначений"); Значение.ДобавитьЗначение("НаименованиеТвоейГруппы", "Наименование"); Значение.ДобавитьЗначение(1, "ЭтоГруппа"); Значение.ДобавитьЗначение(// ну и далее все поля описывай КонецЕсли; |
|||
12
Otkr
14.07.15
✎
11:23
|
(11) Список значений? Уверен? Скорее уж структура тогда
|
|||
13
Альбатрос
14.07.15
✎
11:23
|
(12) в 7.7 есть структура?
|
|||
14
Otkr
14.07.15
✎
11:24
|
(13) Точно, торможу)
|
|||
15
SiAl-chel
14.07.15
✎
11:30
|
(10) В топике написано: "И всё это на 1С:Предприятии 7.7."
(11) Спасибо. Буду пробовать. С ВходяшиеДанные и ИсходящиеДанные значит не стоит заморачиваться? |
|||
16
Альбатрос
14.07.15
✎
11:31
|
(15) не вижу смысла
|
|||
17
SiAl-chel
14.07.15
✎
12:21
|
(16) Не получается. По идее Код также является полем поиска, но я его не знаю, пока не создам новую группу. А без указания в списке значений кода у меня появляется ошибка.
В общем, решил пробовать поиграться с обработками загрузки в ПКО. |
|||
18
SiAl-chel
16.07.15
✎
06:33
|
Решил задачу следующим образом.
1. Создал ПКО "ГруппаОС". 2. Создал ПКС "Наименование" и "ЭтоГруппа", являющимися полями поиска. 3. В обработчике "При выгрузке" ПКС "Наименование" написал Значение = "Новая группа ОС"; 4. В обработчике "При выгрузке" ПКС "ЭтоГруппа" написал Значение = 1; 5. В обработчике "При выгрузке" ПКС "Родитель" ПКО "ОсновныеСредства" написал Если ПустоеЗначение(Источник.Родитель) = 1 Тогда ИмяПКО = "ГруппаОС"; Значение = 1; КонецЕсли; Примечание: Значение обязательно указать, значение может быть любым, иначе при пустом значении это ПКС перестает дальше работать. Тут идет расхождение со справкой, там написано что можно указать Пусто = 0; или Пусто = Ложь; , но данный параметр сразу после обработчика игнорируется и переприсваивается Пусто = ПустоеЗначение(Значение); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |