Имя: Пароль:
1C
 
Как лучше скопировать справочник?
0 Tashiro
 
18.10.10
11:34
Как наиболее оптимально скопировать справочник со всей иерархией, для редактирования?

Суть задачи дать клиенту возможность тасовать номенклатуру с названиями и артикулами как он хочет - для выгрузки на сайт, но при этом чтобы не нарушилась структура первоначального справочника и обработка должна быть внешней.

Сейчас делаю что-то по типу:


Запрос = Новый Запрос;
   Запрос.Текст =  "ВЫБРАТЬ
                   |    Номенклатура.Родитель КАК Корень,
                   |   Номенклатура.Ссылка КАК Номенклатура,
                   |    Номенклатура.Код КАК Код,
                   |    Номенклатура.Артикул КАК Артикул
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Родитель <> &Родитель
                   |ИТОГИ ПО
                   |    Родитель ИЕРАРХИЯ";
                   
   Запрос.УстановитьПараметр("Родитель",Справочники["Номенклатура"].ПустаяСсылка());                
   Результат = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
   
   Для каждого Строка из Результат.Строки Цикл
       НовСтрока = НоменклатураТЧ.Строки.Добавить();
       НовСтрока.Номенклатура = Строка.Корень;
       //...бла бла бла
   КонецЦикла;
   ЭлементыФормы.НоменклатураТЧ.СоздатьКолонки();
   ЭлементыФормы.НоменклатураТЧ.ОбновитьСтроки();

ТЧ - ДеревоЗначений, если просто попробовать подпихнуть данные в НоменклатураТЧ, то ТЧ получается корявой (все группы номенклатуры идут в отдельной колонке "родитель" , элементы раскрываются как папки, вообщем выход - в ручную заполнять дерево и тут надо проверять вложенность, проставлять картинки элементов итд итп, есть ли более простой и удобный способ завершить задуманное и в чем он заключается, а то так лень? ^_^
1 Tashiro
 
18.10.10
11:42
поднимем
2 Tashiro
 
18.10.10
11:52
Ну хоть мозговой штурм какой-нибудь.
3 patapum
 
18.10.10
11:55
задача непонятно описана. текст запроса не особо нужен, лучше по человечески объясни, чего хочешь? отредактировать справочник, но чтобы все осталось как было... )))
4 Tashiro
 
18.10.10
11:59
(3) Создать копию справочника,с ссылками на него для ручного составления ...кхм...каталога, не меняя естественно основной справочник. Мне важно скопировать всю структуру и отобразить ее в удобном для редактирования виде. Не знаю как еще подробнее объяснить.
5 patapum
 
18.10.10
12:02
тебе нужно в конфигурации два справочника Номенклатура?
или тебе надо чтобы была обычная иерархия и иерархия для сайта?
если ты не можешь задачу описать - как же ты ее делать собираешься? хотя бы конфигурацию и платформу скажи...
6 Ц_У
 
18.10.10
12:05
как вариант, можно сделать иерархию как в dbf файлах реализовано:
добавить 3 реквизита
"номер" "номер группы родителя" "порядковый номер в группе родителя"
И получится типа того
"Товары" 1 0 0
-"веник" 2 1 1
---
как-то так
7 Ц_У
 
18.10.10
12:06
(6)+ ну и признак группы еще можно
8 Zasonya
 
18.10.10
12:35
Если в конфигурации имеются свойства объектов , то можно их использовать: добавить свойство "Выгружать на сайт" = булево и если истина - то выгружать - иерархия сохраниться. И пользователь работает с полным списком и конфигурацию менять нет необходимости.
9 Tashiro
 
19.10.10
10:13
(5) Создать\получить копию справочника во внешней обработке в виде дерева значений в ТЧ.
Объясню еще проще - откройте любой иерархический справочник в типовой (например "Номенклатура" В УТ) в ФормеСписка или выбора, вот такое окно мне нужно получить во внешней обработке не указывая источник для ТЧ как Справочник номенклатуры.
Задачу я описал в (0).Платформа 8.1 на конфигурацию по-фигу подойдет любая у которой есть иерархический справочник с именем "номенклатура".
(6) Это совершенно не важно как хранить данные, важно как их отобразить в виде
(8) Не подходит, т.к. Номенклатура может лежать вообще не в той группе как нужно, да и добавлять ничо нельзя в конфу.
10 Tashiro
 
19.10.10
10:25
*(9) to (6)*отображать в ввиде дерева то есть - сама структура хранения реализована и поля есть в запросе в (0) остался только вопрос как теперь дать пользователю редактировать положение номенклатуры в группах не меняя сам справочник номенклатуры.
11 Defender aka LINN
 
19.10.10
10:27
(10) А почему бы тогда пользователю не дать справочник номенклатуры и не делать никому моск?
12 Tashiro
 
19.10.10
10:43
(11) потому что у клиента большой ассортимент и упертый завскладом для которого текущая структура справочника является верной и удобной, но совсем не годится для каталога на интернет ресурсе.
13 Ненавижу 1С
 
гуру
19.10.10
10:46
(12) сделайте альтернативную иерархию для выгрузки на сайт, храните ее в БД
14 Ненавижу 1С
 
гуру
19.10.10
10:47
+(13) Справочник "ИерархияДляСайта", иерархия элементов - туда заносятся ТОЛЬКО ГРУППЫ для сайта
У элементов справочника номенклатура реквизит-ссылка на этот справочник
15 Maxus43
 
19.10.10
10:55
или можно выгрузить структуру в древо значений в Таб поле и прописать перетаскивание
16 Tashiro
 
19.10.10
10:56
(14)да да да, только без справочника а в файле хранить.
(15) именно это я и хочу)
17 Maxus43
 
19.10.10
10:59
(16) в чем проблема? кури перетаскивание... выгрузить несложно.

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Ссылка КАК Ссылка,
                   |    Номенклатура.Код,
                   |    Номенклатура.Наименование
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ИТОГИ ПО
                   |    Ссылка ИЕРАРХИЯ";
   
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ЭлементыФормы.ТабличноеПоле.Значение = Выборка;
    ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();
    ЭлементыФормы.ТабличноеПоле.ОбновитьСтроки();
18 Ненавижу 1С
 
гуру
19.10.10
10:59
(16) а зачем в файле? а когда новые элементы появятся то снова синхронизировать?
19 Tashiro
 
19.10.10
12:12
(17) да я уже разобрался =)
(18) да, ищем соединяем в запросе две таблицы - фильтруем совпавшее - получаем разницу, эту разницу выводим без родителя, так же вроде норм будет?
20 Tashiro
 
19.10.10
12:19
(17) кстати еще странная тема - вот если так в ТЧ выгрузить то получается что элементы тоже группа только пустая, как можно указать что это элемент?