8.х Много соединений с регистровм сведений ЗначенияСвойствОбъектов в запросе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Tanush, 18 окт 2010.

  1. TopicStarter Overlay
    Tanush
    Offline

    Tanush Опытный в 1С

    Регистрация:
    24 апр 2008
    Сообщения:
    96
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток!

    Ищу оптимальный вариант получения данных: есть некий отчет, в который выводятся данные сначала на русском языке, а потом теже - но на английском. Английской написание реализовано хранимые в рег.сведений ЗначенияСвойствОбъектов значения. Например, для каждой должности там задано англ.соответствие.

    В данный момент вопрос в запросе решаю так:
    Код:
    Запрос.Текст = 
    "ВЫБРАТЬ
    ...
    |	ТЧРаботники.Должность.Наименование КАК Должность,
    |	ДолжностьАнгл.Значение КАК ДолжностьАнгл,
    ...
    |ИЗ
    Документ.ПриемНаРаботуВОрганизацию.РаботникиОрганизации КАК ТЧРаботники
    |	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ДолжностьАнгл
    |			ПО ТЧРаботники.ПодразделениеОрганизации = ДолжностьАнгл.Объект.Ссылка
    |				И (ДолжностьАнгл.Свойство.Наименование = ""Англ долж"")
    ...";
    
    И таких соединений около 10. Т.е. мне надо получить англ.соответствие для 10 примерно полей. После второго подобного соединения запрос стал здорово зависать (имею ввиду долго выполняться). Что будет когда включу все 10? Может есть более оптимальное решение?
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Просто вам надо было использовать для этого справочник и не делать в запросе соединение по строке. Медленнее будет только ПОДОБНО, чем то, что Вы делаете.
  3. TopicStarter Overlay
    Tanush
    Offline

    Tanush Опытный в 1С

    Регистрация:
    24 апр 2008
    Сообщения:
    96
    Симпатии:
    0
    Баллы:
    26
    Использовать для этого регистр была не моя идея - это ЗУП стандартный, в нем даже ничего не переписано, просто вот решили англ.соответствие хранить так. А мне надо не изменяя конфу написать к ней вот такой запрос.
    И что значит "соединение по строке"? Это где я пишу свойсвто = "англ"?

    Значит выхода из моей ситуации нет?
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну, во-первых, зачем из объекта тащить ссылку? Лишние соединения городите..
    Дальше, раз известно, что за свойство - закастуйте его явно.
    Код:
    "
    |            ПО ТЧРаботники.ПодразделениеОрганизации = ДолжностьАнгл.Объект
    |                И (ВЫРАЗИТЬ(ДолжностьАнгл.Свойство КАК Справочник.<ИмяСправочникаГдеХранится>).Наименование = ""Англ долж"")
    "
    
    
    Так будет быстрее работать
  5. TopicStarter Overlay
    Tanush
    Offline

    Tanush Опытный в 1С

    Регистрация:
    24 апр 2008
    Сообщения:
    96
    Симпатии:
    0
    Баллы:
    26
    "Тащить ссылку " - это вот это:
    Код:
    ДолжностьАнгл.Свойство.Наименование = "Англ"
    
    
    ?

    А свойства хранятся тоже в плане видов характеристик СвойстваОбъектов. как в таком случае быть?
  6. TopicStarter Overlay
    Tanush
    Offline

    Tanush Опытный в 1С

    Регистрация:
    24 апр 2008
    Сообщения:
    96
    Симпатии:
    0
    Баллы:
    26
    ОК. Пусть так:
    Код:
    Запрос.УстановитьПараметр("СвойствоАнгл", планыВидовХарактеристик.СвойстваОбъектов.НужноеСвойство);
    
    Тогда в запросе:
    Код:
    ПО ТЧРабтники.ПодразделениеОрганизации = ДолжностьАнгл.Объект.Ссылка
    И (ДолжностьАнгл.Свойство = &СвойствоАнгл)
    
    Это лучше? Пока скорость выполнения запроса осталась такой же...
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Случайно наткнулся.
    РЕШЕНО. Продолжение темы здесь: http://www.1c-pro.ru/index.php?showtopic=27134

    З.Ы. Модераторам: я думаю эту тему наверно можно закрыть или вообще удалить. Суть ведь раскрыта по вышеприведенной ссылке.
Похожие темы
  1. Itsys
    Ответов:
    3
    Просмотров:
    1.973
  2. rSlayer
    Ответов:
    1
    Просмотров:
    617
Загрузка...

Поделиться этой страницей