Довідковий матеріал

Ефективне звернення до віртуальної таблиці «Залишки»

<em>Область застосування: керований застосунок, мобільний застосунок, звичайний застосунок.</em>Приклад.. НЕПРАВИЛЬНО. ПРАВИЛЬНО

Редакційна сцена з двома способами звернення до сховища залишків: прямий шлях до збережених даних і обхідний маршрут через зайву обробку.

Приклад.

НЕПРАВИЛЬНО

ПРАВИЛЬНО

 

Область застосування: керований застосунок, мобільний застосунок, звичайний застосунок.

Ефективність звернення до віртуальних таблиць значною мірою залежить від того, як побудовано звернення до цієї таблиці. Стандарт Звернення до віртуальних таблиць описує загальні вимоги та рекомендації щодо роботи з віртуальними таблицями. У цьому стандарті викладено додаткові рекомендації щодо підвищення ефективності звернення до віртуальної таблиці Залишки регістрів накопичення та бухгалтерії.

При зверненні до будь-якої віртуальної таблиці платформа 1С:Підприємство генерує запит до СУБД, що містить вкладений запит. Найефективнішим вкладеним запитом для читання залишків буде читання збереженої таблиці поточних залишків без застосування групування за вимірами. Платформа 1С:Підприємство згенерує такий запит, якщо буде дотримано всіх перелічених нижче умов:

  • отримання залишків здійснюється без зазначення дати;
  • не використовується поділ підсумків (необхідно враховувати, що використання такого режиму може знижувати паралельність запису до регістру. Див. також Режим поділу підсумків для регістрів накопичення, Режим поділу підсумків для регістрів бухгалтерії);
  • зовнішній щодо віртуальної таблиці запит використовує всі виміри (у реченні ВЫБРАТЬ або в умовах з'єднання).

Приклад.

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

НЕПРАВИЛЬНО

ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Товар, ЕСТЬNULL(ОстаткиТоваров.Остаток, 0 ) КАК Остаток ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНИЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(&СегодняшняяДата, Склад = &Склад) КАК ОстаткиТоваров ПО ОстаткиТоваров.Номенклатура = СпрНоменклатура.Ссылка

У цьому запиті:

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

ПРАВИЛЬНО

ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Товар, ЕСТЬNULL(ОстаткиТоваров.Остаток, 0 ) КАК Остаток ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНИЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(, Склад = &Склад) КАК ОстаткиТоваров ПО ОстаткиТоваров.Номенклатура = СпрНоменклатура.Ссылка И ОстаткиТоваров.Склад = &Склад
Записатися телефоном