|
|
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
ну оно и к лучшему как по мне ... я все равно , например , все ответы на профа нашел причем когда сам ищешь ИМХО лучше а иногда просто обсудить есть желание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 13:02 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. согласен, но список кодов родителей можно получить в текущем элементе отправить на сервер и получить в запросе всех родителей если это нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 13:05 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
HoBTIDleaf Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. в общем мелкие ошибки есть = ищите сами ибо мне лень идея такая хотели одним запросом? ну вот он ... надеюсь код строковый?Здесь не мелкие ошибки, а принципиально неверный подход. Так не будет работать, потому что полный код не хранится в базе и к нему нельзя обратиться в запросе. Полный код в базе не храниться, грубо говоря в в трасе при выполнении функции ПолныйКод() формируется столько запросов, сколько уровней вложенности для каждого элемента справочника т.е. можно сказать что приблизительно повторяется метод приведенный Закиров Дамир, только без объеденений. Но в рамках текущей задачи применение данного метода оправданно, если нужно что более производительное, например массовое получение иерархии для нескольких элементов справочника то в этой теме ссылки на примеры уже были. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 13:09 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Гы ну ладно а так? Ном выбирается на форме ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. где рекурсия? запрос вроде один ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 13:18 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
leafГы ну ладно а так? Ном выбирается на форме ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. где рекурсия? запрос вроде один При выполнении Ном.ПолныйКод() 1С SQL серверу будет отправлен ряд запросов для каждого уровня иерархии, но еще раз повторю, ваш пример достоин книги знаний на мисте, т.к. для получения иерархии для одного элемента справочника он почти идеален. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 13:22 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Действительно, если производительность не так важна, можно получить все коды родителей через ПолныйКод(), а потом сделать запрос по массиву кодов. Если, опять же, счиать коды уникальными. При таком подходе, как уже написал vitkhv , запрос в цикле скрывается внутри функции ПолныйКод(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 13:24 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
ну вообще то да если подумать но красиво однако ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 13:26 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
HoBTIDЗакиров ДамирПлатформа построена так, что один запрос по нескольким таблицам (или несколько обращений в одном запросе к одной таблице, что в данном случае происходит) всегда отрабатывает быстрее, чем несколько запросов каждый по своей таблице.Вы это откуда узнали, смотрели планы выполнения запросов и счетчики Reads, Writes, CPU в SQL Server Profiler? Или может быть Вам об этом всего лишь сказали на курсах/прочитали в книге? Во-первых, об этом действительно написано в руководстве, изданном фирмой 1С. Во-вторых, я доверяю своим глазам, когда вижу, как в типовых конфигурациях строят запросы. HoBTID Закиров ДамирПлатформа на сервере преобразует запрос из формата 1С в формат SQL, попутно оптимизируя его. Поэтому, когда Вы строите один большой запрос вместо нескольких маленьких, Вы тем самым отдаете работу по оптимизации запроса в "руки" платформы. Т.е., в данном примере, таблица справочника будет прочитана только один раз (а не по количеству уровней иерархии в нем). Другими словами, получение массива данных большим запросом вместо нескольких маленьких (кстати, запрос в цикле является грубой ошибкой) оптимизирует работу с базой данных. Вы видели резальтаты этой "ОПТИМИЗАЦИИ" в профайлере SQL? Или же по каким-то причинам просто предполагаете, якобы платформа "оптимизирует" его. P.S. Запрос в цикле является грубой ошибкой для новичков, которые не умеют мыслить в категориях наборов данных, для профессионалов высокого класса, иногда грубая ошибка - запрос без цикла. Я склонен доверять решениям от 1С. [irony] Хотя для профессионалов ВЫСОКОГО КЛАССА это не фэн-шуй??? [/irony] За запрос в цикле при попытке решения задачи на сертификацию Вас моментально выставят из учебного центра. При решении абсолютного большинства задач это будет ошибкой. Есть конечно и исключения, но их очень мало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 14:07 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Закиров Дамир Я склонен доверять решениям от 1С. [irony] Хотя для профессионалов ВЫСОКОГО КЛАССА это не фэн-шуй??? [/irony] Не фэншуй года 1С в стандартном коде получает ссылку на номенклатуру, а затем в цикле по выборке получает код, артикул и т.д. генерируя еще столько же запросов к SQL серверу сколько итераций в цикле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 14:23 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
vitkhvЗакиров Дамир Я склонен доверять решениям от 1С. [irony] Хотя для профессионалов ВЫСОКОГО КЛАССА это не фэн-шуй??? [/irony] Не фэншуй года 1С в стандартном коде получает ссылку на номенклатуру, а затем в цикле по выборке получает код, артикул и т.д. генерируя еще столько же запросов к SQL серверу сколько итераций в цикле. Ничего не понял. Это в чей огород булыжник? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 14:52 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Закиров ДамирЯ склонен доверять решениям от 1С. [irony] Хотя для профессионалов ВЫСОКОГО КЛАССА это не фэн-шуй??? [/irony] За запрос в цикле при попытке решения задачи на сертификацию Вас моментально выставят из учебного центра. При решении абсолютного большинства задач это будет ошибкой. Есть конечно и исключения, но их очень мало.Профессионалы высокого класса пользуются для оптимизации рекомендациями производителя СУБД, в данном случае MS SQL Server, как более эффективными, чем рекомендации 1С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 15:00 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Закиров ДамирvitkhvЗакиров Дамир Я склонен доверять решениям от 1С. [irony] Хотя для профессионалов ВЫСОКОГО КЛАССА это не фэн-шуй??? [/irony] Не фэншуй года 1С в стандартном коде получает ссылку на номенклатуру, а затем в цикле по выборке получает код, артикул и т.д. генерируя еще столько же запросов к SQL серверу сколько итераций в цикле. Ничего не понял. Это в чей огород булыжник? В огород стандартных конф. от 1С и степени доверия к ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 15:01 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Закиров Дамир, Преведу простой пример не фэншуйности в типовых конфах от 1С. ТекстЗапроса = " |ВЫБРАТЬ Номенклатура, | Количество, | Коэффициент |ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Документ |"; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("Документ",ТекРеализация); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если ИспользоватьАртикулВПечатныхФормах Тогда ПечАртикул = Выборка.Номенклатура.Артикул; КонецЕсли; КонецЦикла; Вот эта строчка: ПечАртикул = Выборка.Номенклатура.Артикул; Выполняет в каждой итерации цикла запрос к Базе данных по элементу номенклатуры! Что значительно снижает производительность, чем если б получение артикула было засунуто в основной запрос. И код типовых 1С просто пестрит такими примерами. А ты говориш выгнали бы в шею за запрос в цикле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 15:23 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
не всегда те кто сертифицируется тот и разрабатывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 15:33 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
vitkhvЗакиров Дамир, Преведу простой пример не фэншуйности в типовых конфах от 1С. ТекстЗапроса = " |ВЫБРАТЬ Номенклатура, | Количество, | Коэффициент |ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Документ |"; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("Документ",ТекРеализация); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если ИспользоватьАртикулВПечатныхФормах Тогда ПечАртикул = Выборка.Номенклатура.Артикул; КонецЕсли; КонецЦикла; Вот эта строчка: ПечАртикул = Выборка.Номенклатура.Артикул; Выполняет в каждой итерации цикла запрос к Базе данных по элементу номенклатуры! Что значительно снижает производительность, чем если б получение артикула было засунуто в основной запрос. И код типовых 1С просто пестрит такими примерами. А ты говориш выгнали бы в шею за запрос в цикле. Попробовал глобальный поиск в "Управление торговлей", редакция 10.3 (10.3.3.3), нет такого даже близко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 16:11 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Закиров Дамир, Ну так я пример сам писал. Попробуй глобальным поиском так пойщи: Выборка.Номенклатура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 16:17 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. УПП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 16:28 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
vitkhvЗакиров Дамир, Ну так я пример сам писал. Попробуй глобальным поиском так пойщи: Выборка.Номенклатура. Нашел подобные бородавки в 7 местах УТ. Не "пестрит". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 16:34 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
Закиров ДамирvitkhvЗакиров Дамир, Ну так я пример сам писал. Попробуй глобальным поиском так пойщи: Выборка.Номенклатура. Нашел подобные бородавки в 7 местах УТ. Не "пестрит". Ну так теперь поищи другие бородавки в запросах, которых нет слова номенклатура. И поймешь что 7 можно смело умножать на 100, если не на 1000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 17:45 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
leaf Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. УПП leaf, тебе также предлагаю пойскать только в УПП глобальным поиском Выборка.Номенклатура. а потом еще проверить те запросы которые выгружаются в различные колекции, которые называются не выборка. А с артикулом я сам пример писал, пожалуйста, абстрагируйся от слова артикул, и смотри в суть проблемы. Запросы в 1С в циклах, делает очень часто, намного чаще чем надо, видимо издержки универсальности ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 17:51 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
я согласен, что все плохо , но именно поиск по этой фразе дает на мой взгляд только рукотворный дописки и плюс .ПолноеНаменование , ну у меня так почему то хотя есть много мест где не аккуратно, но не тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 17:55 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
vitkhvА с артикулом я сам пример писал, пожалуйста, абстрагируйся от слова артикул, и смотри в суть проблемы. Запросы в 1С в циклах, делает очень часто, намного чаще чем надо, видимо издержки универсальности ;) У меня в УПП 1.1 этих атавизмов дофига. Но вот в последующих версиях количество разыменований в цикле стремительно уменьшается. Ты точно говоришь о текущем уровне развития типовых, а не об уровне трехлетней давности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 18:03 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
СисойvitkhvА с артикулом я сам пример писал, пожалуйста, абстрагируйся от слова артикул, и смотри в суть проблемы. Запросы в 1С в циклах, делает очень часто, намного чаще чем надо, видимо издержки универсальности ;) У меня в УПП 1.1 этих атавизмов дофига. Но вот в последующих версиях количество разыменований в цикле стремительно уменьшается. Ты точно говоришь о текущем уровне развития типовых, а не об уровне трехлетней давности? Точно. Работаю с самой последней версией УПП, сегодня только обновился ;) Я уж не говорю об ошибках типовых - которые кочуют из релиза в релиз..... Хотя конечно УПП замечательный продукт и денег своих стоит на 1000%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 18:36 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
HoBTIDLogvinovSerjИдея правильная, для такой задачи нужно делать запрос в цикле. Программист 1С, leaf. А можно глупый вопрос, зачем решать задачу одним запросом? Потому что так рекомендует 1С???Выгоняют с экзамена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 18:48 |
|
||
|
Как запросом получить список всех родителей зад-го элемента
|
|||
|---|---|---|---|
|
#18+
vitkhvСисойvitkhvА с артикулом я сам пример писал, пожалуйста, абстрагируйся от слова артикул, и смотри в суть проблемы. Запросы в 1С в циклах, делает очень часто, намного чаще чем надо, видимо издержки универсальности ;) У меня в УПП 1.1 этих атавизмов дофига. Но вот в последующих версиях количество разыменований в цикле стремительно уменьшается. Ты точно говоришь о текущем уровне развития типовых, а не об уровне трехлетней давности? Точно. Работаю с самой последней версией УПП, сегодня только обновился ;) Я уж не говорю об ошибках типовых - которые кочуют из релиза в релиз..... Хотя конечно УПП замечательный продукт и денег своих стоит на 1000%.Угу вот только область применения не такая уж и большая. Да и... ладно зато там пару идей хороших подчерпнул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 18:50 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36598577&tid=1522409]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 505ms |

| 0 / 0 |
