![]() |
![]() |
![]() |
|
Как лучше скопировать справочник? | ☑ | ||
---|---|---|---|---|
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) кстати еще странная тема - вот если так в ТЧ выгрузить то получается что элементы тоже группа только пустая, как можно указать что это элемент?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |