Платформа 8.1. Выгрузка справочника в txt.
06.02.2010
13:39
#1
"Здравствуйте. У меня есть задача выгрузки и загрузки в txt, но с учетом иерархии. Справочник очень простой, выборку делаю так:
"ВЫБРАТЬ
| Товары.Код,
| Товары.Наименование,
| Товары.Родитель
|ИЗ
| Справочник.Товары КАК Товары
|ИТОГИ ПО Товары.Родитель ИЕРАРХИЯ" ;
При выводе в txt оцениваю, есть ли родитель и какой тип записи и в зависимости от этого формирую результат.
Если Результат.ТипЗаписи() <> ТипЗаписиЗапроса.ИтогПоГруппировке И Результат.Родитель <> Справочники.Товары.ПустаяСсылка() Тогда
РезСтрока = РезСтрока + Результат.Наименование +"#$"+Результат.Родитель + "; ";
КонецЕсли ;
Если Результат.Родитель = Справочники.Товары.ПустаяСсылка() И Результат.ТипЗаписи() <> ТипЗаписиЗапроса.ИтогПоГруппировке Тогда
РезСтрока = РезСтрока + Результат.Наименование + "; ";
КонецЕсли
Но есть проблема. Папки в результирующей выборке выводятся дважды. Один раз с типом - ИтогПоГруппировке, а второй - ДетальнаяЗапись. И во второй раз они попадают в выгрузку, как обычный товар без родителя. Как это исправить?
"
"ВЫБРАТЬ
| Товары.Код,
| Товары.Наименование,
| Товары.Родитель
|ИЗ
| Справочник.Товары КАК Товары
|ИТОГИ ПО Товары.Родитель ИЕРАРХИЯ" ;
При выводе в txt оцениваю, есть ли родитель и какой тип записи и в зависимости от этого формирую результат.
Если Результат.ТипЗаписи() <> ТипЗаписиЗапроса.ИтогПоГруппировке И Результат.Родитель <> Справочники.Товары.ПустаяСсылка() Тогда
РезСтрока = РезСтрока + Результат.Наименование +"#$"+Результат.Родитель + "; ";
КонецЕсли ;
Если Результат.Родитель = Справочники.Товары.ПустаяСсылка() И Результат.ТипЗаписи() <> ТипЗаписиЗапроса.ИтогПоГруппировке Тогда
РезСтрока = РезСтрока + Результат.Наименование + "; ";
КонецЕсли
Но есть проблема. Папки в результирующей выборке выводятся дважды. Один раз с типом - ИтогПоГруппировке, а второй - ДетальнаяЗапись. И во второй раз они попадают в выгрузку, как обычный товар без родителя. Как это исправить?
"
07.02.2010
11:47
#3
"Перечислить через разделитель ";", но учесть иерархию, чтобы потом из этого же файла сделать загрузку. Приписывать папку через разделитель "$#" я уже сам придумал. Тогда при загрузке буду оценивать есть ли разделитель в слове."
08.02.2010
10:24
#4
"Двойственность из-за ИТОГИ. Попробуйте так:
"ВЫБРАТЬ
| Товары.Ссылка,
| Товары.Код,
| Товары.Наименование,
| Товары.Родитель
|ИЗ
| Справочник.Товары КАК Товары
|УПОРЯДОЧИТЬ ПО Ссылка Иерархия" ;"
"ВЫБРАТЬ
| Товары.Ссылка,
| Товары.Код,
| Товары.Наименование,
| Товары.Родитель
|ИЗ
| Справочник.Товары КАК Товары
|УПОРЯДОЧИТЬ ПО Ссылка Иерархия" ;"
08.02.2010
18:45
#5
Так выводит один раз, но с типом "детальнаяЗапись", т.е. опять папки попадут в txt как товар без группы.
08.02.2010
19:05
#6
Толи я торможу, толи совсем не понимаю:
> опять папки попадут в txt как товар без группы.
Товар тоже может лежать в корне.
И что вам мешает в запросе выбрать ЭтоГруппа и анализировать его?
Вы бы пример привели. Например так:
У вас 3 уровня
Группа 1
Группа 2
Элемент 21
Группа 3
Элемент 31
Элемент 11
Элемент 01
Спрашивается - что должно получиться в файле?
> опять папки попадут в txt как товар без группы.
Товар тоже может лежать в корне.
И что вам мешает в запросе выбрать ЭтоГруппа и анализировать его?
Вы бы пример привели. Например так:
У вас 3 уровня
Группа 1
Группа 2
Элемент 21
Группа 3
Элемент 31
Элемент 11
Элемент 01
Спрашивается - что должно получиться в файле?
Читают тему
(гостей: 1)