:: Вопросы по 1С
Иерархический справочник
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Появилась на одном предприятии 1С 8.2
Я и вообще то 1С старался избегать)))
Но куда ж от нее деться.
Так что прошу прощения за ламерские вопросы.
В моем ПО, надо выбрать из справочника номенклатура данные.
Но данные нужны только по конкретному узлу иерархии.
Весь справочник получаю.
cQuery1S='ВЫБРАТЬ Номенклатура.Код, Номенклатура.Наименование ИЗ Справочник.Номенклатура как Номенклатура УПОРЯДОЧИТЬ ПО Наименование'
oQue=gov82.NewObject('Запрос')
oQue.Текст = cQuery1S
oRsult = oQue.Выполнить()
oRes=oRsult.Выгрузить()
*Выбранные объекты продукции помекщаем в массив
nLen=0
FOR EACH oRow IN oRes
nLen=nLen+1
DIMENSION aGood(nLen,2)
aGood(nLen,1)= oRow.Наименование
aGood(nLen,2)= oRow.Код
ENDFOR
Так я получаю весь справочник.
А нужно только из ветки
Номенклатура-Продукция-Производство

Подскажите плииииз)))) как?


------------------
Ratings: 0 negative/0 positive
Re: Иерархический справочник
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Извратом получается
Изменил строку.
cQuery1S='ВЫБРАТЬ Номенклатура.Код, Номенклатура.Наименование,Номенклатура.Родитель.Код как Родитель ИЗ Справочник.Номенклатура как Номенклатура УПОРЯДОЧИТЬ ПО Наименование'
Код родителя знаю.
И могу обработать все полученное уже в фоксе.
Но как то всё не нравится(((
Поставить в Where код родителя не удается(((
Впечатление что ожидает ссылку.
Как получить ссылку, не получается.
В общем темный лес для меня)


------------------




Исправлено 1 раз(а). Последнее : Аспид, 21.06.12 13:45
Ratings: 0 negative/0 positive
Re: Иерархический справочник
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
Вообще, в самой 1С это делается так:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Код,
| Номенклатура.Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Родитель В ИЕРАРХИИ(&Родитель)
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура.Наименование";
Запрос.УстановитьПараметр("Родитель", Родитель);
Результат = Запрос.Выполнить().Выбрать();

Переделать это на фокс я не пробовал.
Ratings: 0 negative/0 positive
Re: Иерархический справочник
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Ну тогда совсем ламерский вопрос.
Запрос.УстановитьПараметр("Родитель", Родитель);
У меня есть код "родителя", есть его наименование.
Как в этой строке указать конкретное значение?
Как не тусую, не выходит(


------------------
Ratings: 0 negative/0 positive
Re: Иерархический справочник
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
pasha_usue
Вообще, в самой 1С это делается так:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Код,
| Номенклатура.Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Родитель В ИЕРАРХИИ(&Родитель)
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура.Наименование";
Запрос.УстановитьПараметр("Родитель", Родитель);
Результат = Запрос.Выполнить().Выбрать();

Переделать это на фокс я не пробовал.
Не совсем верно в запросе так проверять родителя. Проще и правильней будет "Номенклатура.Ссылка В ИЕРАРХИИ(&Родитель)" В случае pasha_usue обращение к родителю элемента порождает ненужный запрос к справочнику номенклатуры
Ratings: 0 negative/0 positive
Re: Иерархический справочник
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
medstrax
Не совсем верно в запросе так проверять родителя. Проще и правильней будет "Номенклатура.Ссылка В ИЕРАРХИИ(&Родитель)" В случае pasha_usue обращение к родителю элемента порождает ненужный запрос к справочнику номенклатуры
А вот это вообще не ясно!
Помимо вопроса, как все же получить, по коду или названию ссылку &Родитель.
Теперь непонятно, как "Номенклатура.Ссылка В ИЕРАРХИИ(&Родитель)" догадается что Номенклатура.Ссылка - это код родителя.
Я думал что то проясняется. А тут в осадок выпал)))

ЗЫ
Нашел кучу уроков по работе с 1С 8.2
Но мне вовсе не светит, программировать в нем))))
Мне надо научиться с ним общаться.
Ясно, что для этого надо изучать и его.
Но вот, как все эти конструкции, приведенные в уроках, и вроде внятные, выполнить из другого ПО?

Киньте кто нибудь ссылку, на такие описания.
Что то не получается найти(


------------------




Исправлено 1 раз(а). Последнее : Аспид, 24.06.12 13:50
Ratings: 0 negative/0 positive
Re: Иерархический справочник
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
medstrax
Не совсем верно в запросе так проверять родителя. Проще и правильней будет "Номенклатура.Ссылка В ИЕРАРХИИ(&Родитель)" В случае pasha_usue обращение к родителю элемента порождает ненужный запрос к справочнику номенклатуры
Да. Согласен абсолютно. Задумался над чем-то и породил лишнюю сущность.
Ratings: 0 negative/0 positive
Re: Иерархический справочник
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
На всякий случай, для себя)))
Выложу решение
IF TYPE('gov82') == 'O'
cQuery1S = "ВЫБРАТЬ Номенклатура.Код, Номенклатура.Наименование,Номенклатура.Родитель.Код как Родитель ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ссылка В ИЕРАРХИИ(&Родитель) УПОРЯДОЧИТЬ ПО Номенклатура.Наименование"
Родитель=gov82.Справочники.Номенклатура.НайтиПоКоду('00000000044')
oQue=gov82.NewObject('Запрос')
oQue.Текст = cQuery1S
oQue.УстановитьПараметр("Родитель", Родитель);
oRsult = oQue.Выполнить()
oRes=oRsult.Выгрузить()
*Выбранные объекты контрагентов помекщаем в массив
nLen=0
FOR EACH oRow IN oRes
nLen=nLen+1
DIMENSION aCust(nLen,3)
aCust(nLen,1)= oRow.Наименование
aCust(nLen,2)= oRow.Код
aCust(nLen,3)= oRow.Родитель
ENDFOR
SET STEP ON
ENDIF
Спасибо pasha_usue и medstrax
Направили)


------------------
Ratings: 0 negative/0 positive
Re: Иерархический справочник
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Сам нашел! Молодец, а если бы подсказали, то знаний было бы меньше


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Иерархический справочник
Аспид
Автор

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Понимаешь Вадим, сам полагаю, что найти ответ самому, важнее, так как является предпосылкой для дальнейшего роста.
Но в данном случае, ни нужды, ни желания разбираться с 1С нет.
Просто, приложения, связаны с 1С. И как то надо эту связь реализовывать)))
ТО что я нашел, по результату поиска по другим форумам. Вряд ли мне добавило, какое то понимание среды.
Ну может чуть)))
Нмаверное надо с самого начала изучать. Но совершенно нет времени. Да и необходимости сильной. Так мелкие задачи порой.


------------------
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 4 (Гостей: 4)

© 2000-2024 Fox Club 
Яндекс.Метрика