Для удобного просмотра сайта рекомендуется использовать Google Chrome.


Закрытая тема
Страница 1 из 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... Следующая ПоследняяПоследняя
Показано с 1 по 10 из 223

Тема: Работа с запросами

  1. #1
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию Работа с запросами

    Работа с запросами

    Работа с запросами
    Для формирования и выполнения запросов к таблицам базы данных в системе используется специальный объект Запрос. Запрос удобно использовать, когда необходимо получить сложную выборку данных, сгруппированную и отсортированную нужным образом. Одним из классических примеров его применения может служить сводка по состоянию регистра учета на определенный момент времени. Кроме того, механизм запросов позволяет легко получать информацию в различных временных разрезах.

  2. #2
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Выполнение и работа с запросами во встроенном языке

    Выполнение и работа с запросами во встроенном языке
    Для формирования запросов, выборки и обработки результатов запросов в языке предусмотрен специальный набор объектов. С помощью этих объектов выполняется формирование запроса, обход записей запроса и т.д.

  3. #3
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Основные приемы работы

    Общее
    Способы обхода результата запроса
    Линейный обход результата
    Иерархический обход результата
    Обход результата по группам
    Работа с выборкой
    Методы определения типа текущей записи
    Основные приемы работы с запросами во встроенном языке 1С:Предприятия удобнее всего рассматривать на примерах. Приведем типичный пример использования запроса:
    Запрос = Новый Запрос("ВЫБРАТЬ Товар.Наименование Наименование,
    |Товар.Родитель.Наименование НаименованиеРодителя
    |ИЗ Справочник.Товары Товар"
    );

    // Выполним запрос и запишем результат в переменную РезультатЗапроса.
    РезультатЗапроса = Запрос.Выполнить();

    // Получим выборку из результата запроса.
    Выборка = РезультатЗапроса.Выбрать();

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

    Его результат представлен в таблице:
    N
    Товар Количество
    1
    Сантехника
    104
    2
    Кран
    84
    3
    Кран
    10
    4
    Кран
    8
    5
    Кран
    44
    6
    Кран
    22
    7
    Смеситель
    20
    8
    Смеситель
    5
    9
    Смеситель
    1
    10
    Смеситель
    14
    11
    Мебель
    134
    12
    Стол
    26
    13
    Стол
    1
    14
    Стол
    15
    15
    Стол
    10
    16
    Стул
    108
    17
    Стул
    55
    18
    Стул
    5
    19
    Стул
    32
    20
    Стул
    16
    В эту таблицу добавлена колонка "N", которой нет в результате запроса, но которая будет использоваться нами в дальнейшем для идентификации записи в результате. Итоговые записи в таблице выделены курсивом, итоговые записи для иерархических уровней справочника выделены жирным шрифтом.
    Способы обхода результата запроса

    Линейный обход результата

    Первый, и самый простой способ обхода – линейный. При линейном обходе выборка будет выдавать записи в той последовательности, в которой они располагаются в результате запроса. В нашем примере это будут записи с номерами 1, 2, 3, 4, 5 и так далее до записи с номером 20.
    Для получения линейной выборки из результата необходимо вызвать метод Выбрать объекта РезультатЗапроса без параметров, либо с параметром ОбходРезультатаЗапроса.Прямой.
    Пример:
    СпособВыборки = ОбходРезультатаЗапроса.Прямой;
    Выборка1 = РезультатЗапроса.Выбрать(СпособВыборки);
    // что равнозначно записи
    Выборка1 = РезультатЗапроса.Выбрать();
    Иерархический обход результата

    Следующий способ обхода результата – иерархический. При данном обходе обходятся только записи, находящиеся на одном уровне. Для получения иерархической выборки из результата необходимо вызвать метод Выбрать() объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкамСИерархией.
    Пример:
    СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
    Выборка2 = РезультатЗапроса.Выбрать(СпособВыборки);
    Выборка из результата с иерархическим обходом в нашем примере обойдет только записи с номерами 1 и 11, так как только эти две записи находятся на самом верхнем уровне. Проиллюстрируем это, представив наш результат в виде дерева, где узлами будут итоговые записи, а листьями дерева будут детальные записи. Вот что у нас получится:

    Из этого рисунка видно, что именно записи с номерами 1 и 11, и только они находятся на первом уровне дерева, в результате чего только они и попадают в первый проход иерархической выборки.
    Возникает вопрос, как получать остальные записи результата запроса. Для этого у объекта ВыборкаИзРезультатаЗапроса можно получить еще одну выборку, которая будет обходить подчиненные записи текущей записи выборки. В нашем примере в момент, когда объект Выборка2 будет позиционирован на запись с номером 1, мы запросим у него иерархическую выборку. Таким образом, мы получим выборку, которая нам вернет записи с номерами 2, 7. А когда Выборка2 будет спозиционирована на записи с номером 11, то полученная у нее иерархическая выборка вернет записи с номерами 12, 16. Так реализуется иерархический обход результатов запроса. Заметим, что у выборки можно получать вложенные выборки любого типа. Так, если бы мы запросили у Выборки2, спозиционированной на записи 1, линейную выборку, то с ее помощью мы бы получили записи с номерами записей со 2-го по 10-й. Проиллюстрируем описанную методику на примере.
    Пример:
    Процедура ВыполнитьЗапрос()
    // Создадим запрос.
    Запрос = Новый Запрос;

    // Установим текст запроса
    Запрос.Текст =
    "ВЫБРАТЬ
    |Товар, Количество
    |ИЗ
    |Документ.РасхНакл.Состав
    |УПОРЯДОЧИТЬ ПО Товар
    |ИТОГИ Сумма(Количество) ПО Товар, Товар Иерархия";

    // Выполним запрос и запишем результат в переменную
    // РезультатЗапроса.
    РезультатЗапроса = Запрос.Выполнить();

    // Получим выборку из результата запроса.
    СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
    Выборка = РезультатЗапроса.Выбрать(СпособВыборки);

    ВыдатьРекурсивно(Выборка);

    КонецПроцедуры

    Процедура ВыдатьРекурсивно(Выборка)
    // Пока в выборке есть записи ...
    Пока Выборка.Следующий() Цикл
    // ... выведем в окно сообщений поля из результата
    Товар = Выборка.Наименование;
    Количество = Выборка.Количество;
    Сообщить("Товар: "+ Товар +" Количество: "+ Количество);

    // Продолжим выборку подчиненных записей
    СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
    ВыдатьРекурсивно(Выборка.Выбрать(СпособВыборки);
    КонецЦикла;
    КонецПроцедуры
    Обход результата по группам

    Третий, и последний способ обхода результата – по группам. Он сходен с иерархическим обходом, но с одним различием: записи с иерархическими итогами при обходе в нем рассматриваются как детальные записи, а не как узловые. Для получения выборки по группам из результата запроса необходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкам.
    Пример:
    СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
    Выборка2 = РезультатЗапроса.Выбрать(СпособВыборки);
    Перебрав в ней всё, мы получим записи с номерами 1, 2, 7, 11, 12, 16.
    Пример:
    Процедура ВыполнитьЗапрос()
    // Создадим запрос.
    Запрос = Новый Запрос;

    // Установим текст запроса
    Запрос.Текст = "ВЫБРАТЬ
    |Товар, Количество
    |ИЗ
    |Документ.РасхНакл.Состав
    |УПОРЯДОЧИТЬ ПО Товар
    |ИТОГИ Сумма(Количество) ПО Товар, Товар Иерархия";

    // Выполним запрос и запишем результат в переменную
    // РезультатЗапроса.
    РезультатЗапроса = Запрос.Выполнить();

    // Получим выборку из результата запроса
    СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкам;
    Выборка = РезультатЗапроса.Выбрать(СпособВыборки);

    // Пока в выборке есть записи ...
    Пока Выборка.Следующий() Цикл
    // ... выведем в окно сообщений поля из результата
    Товар = Выборка.Наименование;
    Количество = Выборка.Количество;
    Сообщить("Товар: "+Товар+" Итого по товару: "+Количество);

    ВыдатьДочерниеЗаписи(Выборка.Выбрать());

    КонецЦикла;
    КонецПроцедуры

    Процедура ВыдатьДочерниеЗаписи (Выборка)
    // Пока в выборке есть записи ...
    Пока Выборка.Следующий() Цикл
    // ... выведем в окно сообщений поля из результата
    Товар = Выборка.Наименование;
    Количество = Выборка.Количество;
    Сообщить("Товар: "+Товар+" Количество: "+Количество);

    КонецЦикла;
    КонецПроцедуры
    Работа с выборкой

    Объект ВыборкаИзРезультатаЗапроса предназначен для обхода записей результата запроса. Можно представить себе выборку как некоторый объект, который содержит указатель на текущую запись в результате и предоставляет программе доступ ко всем полям текущей записи. Для навигации по записям запроса используются три метода:
    • Следующий() – перейти к следующей записи результата в соответствии с порядком обхода выборки. При первом вызове позиционирует выборку на первую запись. Когда будут выбраны все записи, данный метод просигнализирует об этом, вернув значение Ложь.
    • СледующийПоЗначениюПоля() – получить следующую запись со значением в заданном поле, отличающимся от значения в этом поле текущей записи.
    • НайтиСледующий () – найти запись, с заданными значениями некоторых полей.
    Использование метода СледующийПоЗначениюПоля

    Метод позволяет сгруппировать записи результата по значениям полей.
    Пример запроса:
    ВЫБРАТЬ
    Док.Товар, Док.Получатель, Док.Количество
    ИЗ
    Документ.РасхНакл.Состав Док
    УПОРЯДОЧИТЬ ПО Док.Товар.Наименование, Док.Получатель.Наименование

    Его результат:
    N
    Товар Получатель Количество
    1
    Смеситель
    Маг. "Гигант"
    14
    2
    Смеситель
    Маг. "Хозяин"
    1
    3
    Смеситель
    Мосгорторг
    5
    4
    Кран
    Маг. "Гигант"
    44
    5
    Кран
    Маг. "Хозяин"
    8
    6
    Кран
    Мосгорторг
    10
    7
    Кран
    Мосгорторг
    22
    8
    Стол
    Маг. "Гигант"
    10
    9
    Стол
    Маг. "Мебель"
    15
    10
    Стол
    Мосгорторг
    1
    11
    Стул Маг. "Гигант"
    32
    12
    Стул
    Маг. "Мебель"
    55
    13
    Стул
    Маг. "Хозяин"
    5
    14
    Стул
    Мосгорторг
    16
    Получим линейную выборку из результата запроса и обойдем выборку при помощи метода СледующийПоЗначениюПоля.
    Пример:
    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.СледующийПоЗначениюПоля("Товар") Цикл
    // здесь мы получим записи с номерами 1, 4, 8, 11
    Пока Выборка.СледующийПоЗначениюПоля("Получатель") Цикл
    // здесь мы сначала получим записи с номерами 1, 2, 3
    // затем 4, 5, 6
    // затем 8, 9, 10
    // затем 11, 12, 13, 14
    КонецЦикла;
    КонецЦикла;
    Следует обратить внимание на то, что во внутреннем цикле не была выбрана запись с номером 7, т.к. в ней такое же значение поля "Получатель" как и в предыдущей записи.
    Заметим, что если в цикле получения по значению поля получать записи при помощи метода Следующий(), то будут выбраны все записи с равным значением поля, заданного в предыдущем вызове метода СледующийПоЗначениюПоля().
    Пример:
    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.СледующийПоЗначениюПоля("Товар") Цикл
    // здесь мы получим записи с номерами 1, 4, 8, 11
    Пока Выборка.Следующий() Цикл
    // здесь мы сначала получим записи с номерами 1, 2, 3
    // затем 4, 5, 6, 7
    // затем 8, 9, 10
    // затем 11, 12, 13, 14
    КонецЦикла;
    КонецЦикла;
    Методы определения типа текущей записи

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

    Результат представлен в таблице:
    N
    Товар Количество Уровень ТипЗаписи Группировка
    1
    Сантехника 104 0 ИтогПоИерархии
    Товар
    2
    Кран 84 1 ИтогПоГруппировке
    Товар
    3
    Кран 10 2 ДетальнаяЗапись
    4
    Кран 8 2 ДетальнаяЗапись
    5
    Кран 44 2 ДетальнаяЗапись
    6
    Кран 22 2 ДетальнаяЗапись
    7
    Смеситель 20 1 ИтогПоГруппировке
    Товар
    8
    Смеситель 5 2 ДетальнаяЗапись
    9
    Смеситель 1 2 ДетальнаяЗапись
    10
    Смеситель
    14 2 ДетальнаяЗапись
    11
    Мебель 134 0 ИтогПоИерархии
    Товар
    12
    Стол 26 1 ИтогПоГруппировке
    Товар
    13
    Стол 1 2 ДетальнаяЗапись
    14
    Стол 15 2 ДетальнаяЗапись
    15
    Стол 10 2 ДетальнаяЗапись
    16
    Стул 108 1 ИтогПоГруппировке
    Товар
    17
    Стул 55 2 ДетальнаяЗапись
    18
    Стул 5 2 ДетальнаяЗапись
    19
    Стул 32 2 ДетальнаяЗапись
    20
    Стул 16 2 ДетальнаяЗапись

  4. #4
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Работа с временными таблицами

    Менеджер временных таблиц
    Создание временных таблиц
    Использование временных таблиц
    Удаление временных таблиц
    Язык запросов 1С:Предприятия 8 позволяет использовать временные таблицы в запросах. Использование временных таблиц помогает повысить производительность запросов и сделать текст сложных запросов более легким для восприятия.
    Работа с временными таблицами обеспечивается двумя составляющими:
    • объектом встроенного языка МенеджерВременныхТаблиц, который хранит в себе данные временных таблиц;
    • синтаксисом языка запросов, позволяющим создавать новые временные таблицы и использовать существующие временные таблицы.
    Менеджер временных таблиц

    Менеджер временных таблиц предназначен для управления временем жизни временных таблиц, создаваемых в процессе работы прикладного решения.
    В одном прикладном решении может быть создано произвольное количество экземпляров менеджера временных таблиц, каждый из которых хранит свой набор временных таблиц. Каждая временная таблица однозначно идентифицируется своим именем, и в пределах одного менеджера временных таблиц все временные таблицы должны иметь уникальные имена.
    Экземпляр менеджера временных таблиц может быть создан с помощью конструктора Новый. Например:
    МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Все временные таблицы, созданные в данном экземпляре менеджера, существуют до тех пор, пока существует сам экземпляр менеджера временных таблиц. При уничтожении экземпляра менеджера все временные таблицы, содержащиеся в нем, также удаляются.
    Менеджер временных таблиц можно закрыть принудительно при помощи метода Закрыть(). При этом будут удалены все созданные в нем таблицы. Дальнейшая работа с данным экземпляром менеджера будет невозможна.
    Создание временных таблиц

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

    Результат исполнения такого запроса будет содержать одну строку с одной колонкой с именем "Количество", в которой будет находится количество записей, помещенных в созданную таблицу.
    В случае если менеджер временных таблиц не установлен, или менеджер был закрыт, будет выдана ошибка.
    В случае если в установленном менеджере временных таблиц уже существует таблица с указанным именем, будет выдана ошибка.
    При необходимости создания индекса для временной таблицы, следует в запросе указать ключевое слово ИНДЕКСИРОВАТЬ ПО, после которого перечислить поля, по которым нужно построить индекс.
    Например:
    ВЫБРАТЬ
    Код,
    Наименование
    ПОМЕСТИТЬ ВременнаяТаблица
    ИЗ Справочник.Номенклатура
    ИНДЕКСИРОВАТЬ ПО Код

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

    ДЛЯ ИЗМЕНЕНИЯ

    Для того чтобы создать временную таблицу на основании внешнего источника, следует в тексте запроса в списке источников указать имя параметра, в который будет помещен внешний источник. Остальной синтаксис идентичен обычному созданию временной таблицы. В качестве внешнего источника могут выступать:
    • таблица значений;
    • табличная часть;
    • результат запроса.
    Ниже приведен пример создания временной таблицы на основе внешнего источника:
    ВЫБРАТЬ
    Код,
    Наименование
    ПОМЕСТИТЬ ВременнаяТаблица
    ИЗ &ВнешнийИсточник КАК ВнешнийИсточник

    В данном примере во временную таблицу "ВременнаяТаблица" будет помещено содержимое колонок "Код" и "Наименование" из внешнего источника, например, таблицы значений, переданной в качестве параметра "ВнешнийИсточник".
    В случае если временная таблица создается на основании внешнего источника, в запросе нельзя использовать объединения и соединения. Также нельзя использовать поля, являющиеся реквизитами элементов таблиц, на основании которых создается временная таблица.
    Использование временных таблиц

    Для использования существующих временных таблиц в запросе следует установить объекту Запрос менеджер временных таблиц, после чего к временным таблицам, содержащимся в данном менеджере временных таблиц, можно обращаться по имени, как к обычным таблицам запроса.
    Удаление временных таблиц

    Для удаления временной таблицы из менеджера временных таблиц следует воспользоваться ключевым словом языка запроса УНИЧТОЖИТЬ, после которого указывается имя уничтожаемой таблицы. Например:
    УНИЧТОЖИТЬ ВременнаяТаблица
    В случае если уничтожаемой таблицы не существует, будет выдана ошибка.

  5. #5
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Работа с пакетными запросами

    Платформа 1С:Предприятие 8 позволяет работать с пакетами запросов. В пакетном запросе тексты запросов разделяются символом ";". Запросы исполняются последовательно, при этом временные таблицы, которые были созданы во время исполнения какого-либо запроса будут существовать до окончания исполнения всего пакета запроса или до исполнения в пакете запроса, уничтожающего данную временную таблицу. Например:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | УчетНоменклатурыОстаткиИОбороты.Номенклатура,
    | УчетНоменклатурыОстаткиИОбороты.КоличествоПриход,
    | УчетНоменклатурыОстаткиИОбороты.КоличествоРасход,
    | УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток
    |ПОМЕСТИТЬ УчетНоменклатуры
    |ИЗ
    | РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК УчетНоменклатурыОстаткиИОбороты
    |;
    |
    |ВЫБРАТЬ
    | УчетНоменклатуры.Номенклатура,
    | УчетНоменклатуры.КоличествоРасход,
    | УчетНоменклатуры.КоличествоКонечныйОстаток
    |ИЗ
    | УчетНоменклатуры КАК УчетНоменклатуры
    |"
    ;

    Результат=Запрос.Выполнить();
    Первый запрос создает временную таблицу, данные из которой используются во втором запросе.
    Если объекту Запрос, исполняющему пакетный запрос, установлен менеджер временных таблиц, временные таблицы, которые не были уничтожены в рамках пакетного запроса, сохранятся в установленном менеджере. В тексте пакетного запроса возможно использование и уничтожение временных таблиц, которые существовали в установленном менеджере временных таблиц на момент запуска пакета на исполнение.
    Метод ВыполнитьПакет()

    Кроме метода Выполнить(), последовательно выполняющего все запросы пакета и возвращающего результат последнего запроса в пакете, платформа 1С:Предприятие 8 предоставляет еще один метод – ВыполнитьПакет(). Этот метод последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета в последовательности расположения запросов в тексте пакета. Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов.

  6. #6
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Запрос (Query)

    Запрос (Query)
    Свойства:

    МенеджерВременныхТаблиц (TempTablesManager)
    Параметры (Parameters)
    Текст (Text)
    Методы:

    Выполнить (Execute)
    ВыполнитьПакет (ExecuteBatch)
    НайтиПараметры (FindParameters)
    УстановитьПараметр (SetParameter)
    Конструкторы:

    На основании текста запроса
    Описание:

    Предназначен для выполнения запросов к базе данных.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.

  7. #7
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Свойства:
    Запрос.МенеджерВременныхТаблиц (Query.TempTablesManager)


    Запрос (Query)
    МенеджерВременныхТаблиц (TempTablesManager)
    Использование:

    Чтение и запись.Описание:

    Тип: МенеджерВременныхТаблиц.
    Содержит менеджер временных таблиц, в котором будут создаваться временные таблицы.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.

  8. #8
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Запрос.Параметры (Query.Parameters)

    Запрос (Query)
    Параметры (Parameters)
    Использование:

    Только чтение.Описание:

    Тип: Структура.
    Содержит значения параметров, установленных запросу.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.

  9. #9
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Запрос.Текст (Query.Text)

    Запрос (Query)
    Текст (Text)
    Использование:

    Чтение и запись.Описание:

    Тип: Строка.
    Содержит исходный текст выполняемого запроса.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.

  10. #10
    Senior Member
    Регистрация
    03.02.2012
    Сообщений
    12,724
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а)
    в 0 сообщениях

    По умолчанию

    Методы:
    Запрос.Выполнить (Query.Execute)


    Запрос (Query)
    Выполнить (Execute)
    Синтаксис:

    Выполнить()Возвращаемое значение:

    Тип: РезультатЗапроса; Неопределено.
    Результатом исполнения запроса на уничтожение временной таблицы является значение Неопределено.Описание:

    Выполняет запрос к базе данных.
    В случае, если запросу установлен пакетный запрос, метод последовательно выполнит все запросы из пакета и вернет результат последнего запроса пакета, который не создает и не уничтожает временную таблицу. Если такого запроса нет, то будет возвращен результат исполнения последнего запроса.
    Доступность:

    Сервер, толстый клиент, внешнее соединение.Примечание:

    При выполнении некорректного запроса в тексте исключения сообщается номер строки, в которой обнаружена ошибка.Пример:

    Запрос = Новый Запрос("ВЫБРАТЬ
    | НДФЛДоходы.Ссылка
    |ИЗ
    | Справочник.ДоходыНДФЛ КАК НДФЛДоходы
    |
    |ГДЕ
    | (НДФЛДоходы.Предопределенный)"
    );
    Результат = Запрос.Выполнить();


Закрытая тема
Страница 1 из 23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... Следующая ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

     

Похожие темы

  1. Работа с файлами
    от Verojer в разделе 8.2/8.3
    Ответов: 51
    Последнее сообщение: 07.02.2012, 20:47
  2. Работа с маил агентом
    от rrt2010 в разделе 7.7
    Ответов: 0
    Последнее сообщение: 07.02.2012, 14:40
  3. Работа с конфигурацией
    от Verojer в разделе 8.2/8.3
    Ответов: 0
    Последнее сообщение: 03.02.2012, 05:37
  4. Работа с dll
    от Валерий731 в разделе 8.2/8.3
    Ответов: 0
    Последнее сообщение: 17.01.2012, 18:08
  5. Работа с диаграммой
    от maverick в разделе 1C:Общие вопросы
    Ответов: 0
    Последнее сообщение: 23.11.2010, 13:44

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения


Навигация по сайту:
, 1c, 1с 8.2, 1с 8.3, Скачать 1с, 1с бухгалтерия, 1с предприятие, Программа 1с,
1с торговля, 1с управление, 1с зарплата, Обновление 1с, Миста, Программирование 1с,

Положение об ответственности
Связь с администрацией erpsolution.ru@yandex.ru