Характеристики на автодовършването в ACS

На втория ден от борбата с отчета разбрах какво представлява квадратчето за автоматично довършване в ACS. Калай, разбира се, сега ще знам. http://its.1c.ru/db/metod81#content:2696:1

В настройките за композиране на данни е възможно да се определи основният избор и избор на групи. Основният избор е зададен за целия отчет като цяло. Изборът на групи е зададен за конкретна група. Тази статия описва особеностите на системата с основния и груповия избор.

Избор на основен отчет

Основният избор влияе върху получаването на данни от наборите за изход към отчета. Например, ако добавите Номенклатурата Равно към условието "1С: Счетоводна 7.7 ​​Стандартна версия" към основния избор, тогава само записите с полето Номенклатура имат стойността "1С: Счетоводна 7.7 ​​Стандартна версия".

Използване на филтриране в заявки

Ако е възможно, условията от основната селекция се поставят в текста на заявката. Изборът може да бъде поставен в условието на виртуалната таблица, в клаузата WHERE, в клаузата HAVING, в зависимост от това към кое поле се прилага селекцията.

Изборът се поставя в условието на виртуалната таблица, ако първоначалната заявка на набора от данни изрично заявява, че селекцията за това поле трябва да бъде поставена в условието на виртуалната таблица, или ако наборът от данни задава автоматично попълване на полета.

Пример за изрично посочване на необходимостта от поставяне на условие в полето Номенклатура в параметър на виртуална таблица:

Генерираната заявка за набор от данни при филтриране в полето Номенклатура може да изглежда така:

Както можете да видите, селекцията се поставя в условието на виртуалната таблица.

В клаузата WHERE условието се поставя, ако първоначалната заявка на набора от данни изрично заявява, че селекцията в полето трябва да бъде поставена в клаузата WHERE или по време на автоматично попълване. Ако за набора от данни е посочено автоматично попълване, тогава условието ще бъде поставено в клаузата WHERE само ако изборът в полето не се прилага в условието на виртуалната таблица, която не е от лявата страна на връзката.

Пример. Наборът от данни използва следната заявка и използва автоматично попълване:

Ако добавим условие към селекцията за полетата Номенклатура и Склад, получената заявка ще изглежда така:

Както можете да видите, селекцията в полето Номенклатура е поставена в параметрите на виртуални таблици и оттогава селекцията за това поле е поставена в таблица, която не е в лявото съединение (SalesTurnover), селекцията за това поле не е поставена в предложението WHERE. Условието за полето Склад беше поставено както във виртуалната таблица, така и в клаузата WHERE, тъй като Таблица NomenclatureAccountingBalances, в състоянието на което е поставена селекцията, е в лявото присъединяване.

Ако в оригиналната заявка е имало изрично указание, че условието в полето Номенклатура трябва да бъде поставено в клаузата WHERE, както е в следното искане:

Тогава филтърът за това поле ще бъде добавен към клаузата WHERE на получената заявка, независимо дали филтърът е поставен в условието на виртуалната таблица. За горния пример получената заявка ще изглежда така:

В клаузата HAVING се поставя условие, ако селекцията е наложена на поле, чийто израз съдържа обобщена функция.