Имя: Пароль:
1C
1С v8
Конвертация данных плоский справочник в группы
,
0 beaver1971
 
07.07.15
06:45
Конвертация из 7.7 в 8.2
Есть справочник, плоский, без групп... нужно получить в итоге справочник, в котором каждая запись источника преобразуется в группу.
В ПКО указано Наименование (перед выгрузкой: Значение = "ГРУППА" + Значение;) и ЭтоГруппа (перед выгрузкой: Значение = 1;). В настройках ПКО включена автоматическая генерация КОДов. Выгрузка происходит, записи создаются, но не группы (((
Подозреваю, что дело в сущей ерунде, но не могу понять - где рыть....
1 beaver1971
 
07.07.15
06:47
+ (0) Записи с пустыми значениями получаются....
2 Альбатрос
 
07.07.15
06:47
Сделай произвольным алгоритмом + выгрузитьПоПравилу()
3 Garykom
 
гуру
07.07.15
06:48
слов нет... интересно как скоро дойдем до того что если нету т/б и бумагомнущей машинки, хотя есть пачка а4 то пользование санузлами невозможно...
4 beaver1971
 
07.07.15
06:50
(2) так всё можно сделать произвольными )))) хотелось бы разобраться, тем более в этот справочник потом еще наталкивать инфу буду... Да и ситуаций у меня таких много возникает...
5 Альбатрос
 
07.07.15
07:00
(4) Ну так нам отсюда не видать, что у тебя там в ПКС творится
6 beaver1971
 
07.07.15
07:17
(5) В ПКО Наименование и ЭтоГруппа, в ПКС_Наименование
Значение = "Группа " + Значение;
в ПКС_ЭтоГруппа
Значение = 1;

Вот только странно, написал в ПКС_Наименование
Значение = "Группа " + Значение;
Сообщить(Значение);
в результате при выгрузке выдает "Группа " и всё (((
7 Альбатрос
 
07.07.15
07:35
(6) Сделай скрин развернутый ПКО и ПКС
8 zak555
 
07.07.15
07:45
В пкс этогруппа пишем значение = истина
9 beaver1971
 
07.07.15
07:49
(8) а в 7.7 как это отработает?
10 beaver1971
 
07.07.15
07:51
11 Альбатрос
 
07.07.15
07:56
(10) в обоих ПКС убирай источник, и замени на вот это:
Значение = "Группа " + Источник.Наименование;
12 beaver1971
 
07.07.15
08:14
(11) Источник.Наименование уже пробовал...

Ошибка исполнения обработчика:  ПКС_ПередВыгрузкой_СтатьиЗатратГруппа_Наименование_Свойство1
  - Значение не представляет агрегатный объект (Наименование)

Но Сообщить(Значение); выдает нужный результат.

Но в результате в приемнике не группы... записей на одну больше, чем было. первая запись вообще с пустым названием, в остальных - угловые скобочки ((((((
13 Tina1977
 
07.07.15
08:56
Проверила.
ПКО "ЭлементыВГруппы". Поля поиска = {Наименование,ЭтоГруппа}.
1.ПКС "Наименование"
Источник=Наименование; Приемник = Наименование.
Событие "ПередВыгрузкой":
Значение = "Группа "+Источник.Наименование;
2.ПКС "ЭтоГруппа"
Источник=ЭтоГруппа; Приемник = ЭтоГруппа.
Событие "ПередВыгрузкой":
Значение = 1;

РАБОТАЕТ!
14 vicof
 
07.07.15
09:00
Значение = "группа "+ источник.наименование
15 beaver1971
 
07.07.15
13:46
Заработалооооооооооо....
Где-то что-то понажимал. Удалил ранее созданные, создал заново - заработало.....
Как теперь записи источника затолкать в соответствующие группы?
Создаем ПКО для приемника с ПКС Наименование и Родитель с получением внешних данных, в существующем ПКО ПриВыгрузке создаем ТаблицаЗначений, в Наименование передаем Источник.Наименование, в Родитель - Источник?
Я правильно мыслю или велосипед изобретаю?
16 Tina1977
 
07.07.15
14:22
Я правильно понимаю, что у тебя один и тот же элемент справочника в приемнике должен стать и группой и элементом этой группы?
17 beaver1971
 
07.07.15
14:31
(16) не совсем
Есть Справочник, в нем в некоторых элементах есть тире, в некоторых есть слово "затраты", всё, что после тире и после слово "затраты" убивается, из получившегося создаются группы. Вот в эти группы и нужно "распихать" справочник...
Группы создаются "на ура", без дубликатов.... (((
18 Tina1977
 
07.07.15
16:30
Создаешь два правила для этого справочника.
Одно для создания групп, другое для элементов.
В ПКО, которое для элементов, в ПКС "Родитель" указываешь правило для групп.
19 beaver1971
 
07.07.15
18:04
(18) и откуда взять ссылку на Родитель? Наименование Родитель я вычисляю, это не проблема. У значения Родитель, полученного от Источника нет значения (исходный справочник плоский, без групп), вернее - оно пустое. Если просто присваиваю в ПКС Родитель
Значение = "Точное название группы";
То, в результате, все значения попадают в одну группу, без названия.
Почему не срабатывает поиск по имени - не пойму....
20 Poluk
 
07.07.15
18:34
Попробуй родителя определять после загрузки объекта...
21 beaver1971
 
07.07.15
19:20
(20) ну так понятно, процедуру не пойму...
Возможно только НайтиПоНаименованию, других параметров то не будет. В принципе, можно передать через "Выражение=", но, по описанию, работает только между восьмерками, а у меня из семерки передача ((((
22 Tina1977
 
08.07.15
11:47
(19) Событие "ПередВыгрузкой" для "Родитель":
Значение = Источник;
ПС:(или Источник.Ссылка) - не помню как правильнее...
23 Tina1977
 
08.07.15
11:48
+(22): для семерки первый вариант.
24 beaver1971
 
08.07.15
12:59
решено так
ПКО Группы
Источник: Справочник7
Приемник: Справочник8
ПКО_Группы_ПередВыгрузкойОбъекта:

    СЗ = СоздатьОбъект("ТаблицаЗначений");
    СЗ.НоваяКолонка("Наименование",,,,,);
    СЗ.НоваяКолонка("Родитель",,,,,);
    СЗ.НоваяСтрока();
    СЗ.Наименование = Источник.Наименование;
    СЗ.Родитель = Источник;
    ВыгрузитьПоПравилу(СЗ,,,,"Значения");

ПКС Наименование
ПередВыгрузкой:
    Тут код, который обрезает значения до нужных названий групп

ПКС ЭтоГруппа
ПередВыгрузкой:
    Значение = 1;

Поиск по наименованию и Группе

ПКО Значения
Источник: Неопределен
Приемник: Справочник8

ПКС Наименование
    Значение = Источник.Наименование;
ПКС Родитель
    Значение = Источник.Родитель;

Поиск по Наименованию и Родителю. У обоих ПКС "Получить из входящих данных",

Коды в обоих ПКО автоматические.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн