8.х Запросом и Объектами лучше получать данные справочника, где есть ТЧ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Robix, 16 июл 2014.

  1. TopicStarter Overlay
    Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Здравствуйте. Есть такой небольшой запрос.

    Код:
    ВЫБРАТЬ ПЕРВЫЕ 5
        Номенклатура.Код КАК Код,
        Номенклатура.Ссылка КАК НоменклатураСсылка,
        Номенклатура.Наименование КАК Наименование,
        Номенклатура.ДополнительныеРеквизиты.(
            НомерСтроки,
            Свойство,
            Значение
        ) КАК ДопРеквизиты
    ИЗ
        Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        НЕ Номенклатура.ЭтоГруппа
    
    УПОРЯДОЧИТЬ ПО
        Код
    
    
    Мне нужно в результате запроса получать код и наименование товара + значения всех его доп. реквизитов, которые находятся в табличной части номенклатуры. Их всего два и они жестко заданы. Это допустим дата производства и срок годности
    .
    Чтобы получить доступ к ТЧ доп реквизитов я использую объектную модель по ссылке на номенклатуру.
    ТЗДопРеквизитов = ЗапросВыборка.НоменклатураСсылка.ДопРеквизиты;

    Подскажите, можно ли через ЗапросВыборка напрямую образаться к ДопРеквизиты
    или к ним никак не обратиться через ЗапросВыборка и нет смысла в этом:
    Код:
      Номенклатура.ДополнительныеРеквизиты.(
            НомерСтроки,
            Свойство,
            Значение
        ) КАК ДопРеквизиты
    
    ? и вообще в данном случае запрос ускорит обработку или можно лучще объектную модель использовать?

    2. Еще вопрос.

    Можно ли в самом запросе добавить две колонки и положить в них первую и вторую строку
    ТЧ доп реквизитов, где нахвание колонки это Свойство а ее значение это соотв-нно Значение

    Если да, можете показать как.
    Последнее редактирование: 17 июл 2014
  2. Coloss
    Offline

    Coloss Опытный в 1С

    Регистрация:
    21 окт 2012
    Сообщения:
    59
    Симпатии:
    0
    Баллы:
    26
    Не могли бы Вы приложить пару скриншотов?
  3. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    обратиться можно, только у вас будет немного другой запрос... а вам надо именно первые 5?
  4. TopicStarter Overlay
    Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Это для теста первые 5 просто выводил
    Мне как новичку сложно объяснить подробно) Но вообщем суть в том что запрос, который в начале поста возвращает

    Код НоменклатураСсылка Наименование ДопРеквизиты
    00-00000182
    ТОВАР ОТДЕЛА1 ТОВАР ОТДЕЛА1 ТаблицаЗначений
    00-00000183
    ТОВАР ОТДЕЛА2 ТОВАР ОТДЕЛА2 ТаблицаЗначений
    00-00000184
    ТОВАР ОТДЕЛА3 ТОВАР ОТДЕЛА3 ТаблицаЗначений
    00-00000185
    ТОВАР ОТДЕЛА4 ТОВАР ОТДЕЛА4 ТаблицаЗначений
    00-00000186
    ТОВАР ОТДЕЛА5 ТОВАР ОТДЕЛА5 ТаблицаЗначений

    Где ТаблицаЗначений (Дополнительные реквизиты справочника)- это та таблица из которой мне нужны первые две строки. Их всегда две.
    НомерСтроки Свойство Значение
    1
    ДатаПроизводства (Номенклатура) 23.07.2009
    2
    СрокГодности(Номенклатура) 365

    С первым вопросом я кажется разобрался
    Я не мог обратиться к полю ДопРеквизиты как к ТЗ так как делал Запрос.Выполнить().Выбрать() вместо Запрос.Выполнить().Выгрузить()

    Но еще один вопрос просто из любопытства, можно ли в запрос добавить две колонки, назвать их ДатаПроизводства и СрокГодности и помещать результат Значение из
    ТаблицыЗначений доп реквизиты и потом делать Запрос.Выполнить().Выбрать() и перебирать результат?

    p.s.
    Кто-то мне говорил, что выборка работает быстрее, чем выгрузка, так ли это?
  5. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    можно, но надо запрос строить не к справочнкиу, а прямо к табчасти справочника примерно так
    Код:
    ВЫБРАТЬ ПЕРВЫЕ 5
        НоменклатураДР.Ссылка.Код КАК Код,
        НоменклатураДР.Ссылка.Ссылка КАК НоменклатураСсылка,
        НоменклатураДР.Ссылка.Наименование КАК Наименование,
        НоменклатураДР.НомерСтроки,
        НоменклатураДР  Свойство,
        НоменклатураДР  Значение
    ИЗ
        Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДР
    ГДЕ
        НЕ НоменклатураДР.Ссылка.ЭтоГруппа
    
    УПОРЯДОЧИТЬ ПО
    НоменклатураДР.Ссылка. Код
    
    ну примерно так
Похожие темы
  1. prutsik
    Ответов:
    5
    Просмотров:
    1.199
  2. Havchik
    Ответов:
    10
    Просмотров:
    1.532
  3. maritime
    Ответов:
    4
    Просмотров:
    505
  4. Asttoxa
    Ответов:
    7
    Просмотров:
    302
  5. SpiritAT
    Ответов:
    17
    Просмотров:
    2.156
Загрузка...

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