Характеристики на автодовършването в 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 се поставя условие, ако селекцията е наложена на поле, чийто израз съдържа обобщена функция.