Пакет запитів 1с 8

Платформа «1С Підприємство» дозволяє виконати послідовно кілька запитів за один раз. В 1С це називається пакетом запитів. В рамках одного пакету кожен запит розділяється «крапкою з комою».

Для досягнення поетапного виконання запитів в пакеті, як правило, спочатку створюються тимчасові таблиці, потім формуються умови їх спільного використання, такі як фільтри, з'єднання, об'єднання. Завдяки цьому досягається кінцевий результат. Тимчасові таблиці, отримані в результаті будь-яких запитів в пакеті, продовжують існувати до закінчення виконання пакету в цілому або до виконання запиту, який знищує тимчасові таблиці.

Крім того, використання пакетних запитів і тимчасових таблиць значно підвищує Новомосковскемость всього відрізка даного коду. Складні запити, що містять в собі ще й вкладені запити, бувають дуже важкими до сприйняття. Однак Розділення довгих складний запит на кілька, та ще й використовувати тимчасові таблиці, то це дозволить домогтися не тільки підвищення сприйняття, але і в більшості випадків призводить до підвищення продуктивності.

Ще одна важлива деталь на користь пакетних запитів в 1С - це те, що на відміну від вкладених запитів ми можемо отримати окремо результат кожного запиту в пакеті.

Приклад створення пакету запитів на мові 1С

Щоб подивитися на прикладі, як створити пакет запитів, будемо використовувати конструктор запитів, який викличемо для наочності з консолі запитів. Таким чином, зможемо відразу подивитися результат виконання пакету.

Створимо простенький пакетний запит. Пропоную відразу вставити текст запиту в консоль запитів. а потім відкрити конструктор і подивитися, як формується пакет запитів. Додайте в консоль новий запит і вставте наступний текст:

У мене це виглядає так:

Пакет запитів 1с 8

Тепер перейдемо в конструктор запитів. Тут нас буде цікавити закладка «Пакет запитів»:

Пакет запитів 1с 8

Як бачимо, у нас з'явився пакет з двох запитів. Клікнувши два рази на будь-якому з них, можна перейти до його редагування:

Пакет запитів 1с 8

Натиснемо кнопку «Ок» і спробуємо подивитися результат виконання пакетного запиту.

Встановимо параметр «Рахунок». Можна вибрати будь-який рахунок з плану рахунків. Як Ви вже, напевно, здогадалися, даний пакет запитів повинен отримати властивості рахунку. Натискаємо «Виконати» і дивимося результат:

Пакет запитів 1с 8

Методи Виконати () і ВиполнітьПакет ()

Крім методу Виконати (), який по черзі виконає всі запити в пакеті і поверне результат останнього запиту, в 1С існує метод ВиполнітьПакет (). Він повертає масив вибірок кожного запиту в пакеті. В наведеному вище прикладі виконується саме цей метод.

Далі працюємо з результатом як з масивом:

Якщо Виборка1.Следующій () Тоді

// Дії з вибіркою 1