Използване на селекции в skd. Набор от данни - Заявка

SKD 1C означава Система за съставяне на данни. SKD 1C е нов начинписане на отчети в 1C, което позволява на потребителя напълно да персонализира отчета сам.

Недостатъкът на SKD 1C е, че настройките му са доста сложни и не всички потребители ги научават бързо.

Писането на ACS отчети изисква способността да работите със заявки в 1C, което обсъдихме в.

Каква е технологията за създаване на отчет SKD 1C:

  • Напишете 1C заявка до 1C SKD, която предоставя данни
  • Посочете SKD 1C ролята на полетата (изчислени полета, ресурси)
  • Въведете настройките по подразбиране на SKD 1C.

Потребителят има възможност да променя много настройки по желание.

Каква е технологията за създаване на отчет за предишни технологии:

  • Напишете заявка в програмата 1C
  • Разработете формуляр за настройки (уникален за отчета), който ще ви позволи да промените само N настройки, избрани от програмиста
  • Напишете код (програма) за изпълнение на заявка и изграждане печатна формаотчет.

Както можете да видите, SKD 1C има значително предимство както за потребителя, така и за програмиста:

  • Програматор - спестява ви писане на програма за извършване на отчет и настройки
  • Потребител - Получава значителен достъп до настройките на отчета.

Във всички нови конфигурации на 1C всички отчети ще се използват само на 1C SKD.

Нека да видим как сами да създадете отчет за SKD 1C от нулата.

Създаваме отчет SKD 1C

В конфигуратора щракнете върху бутона нов файл (меню Файл/Нов).

Изберете типа файл Нов отчет.

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

Нека създадем основната схема на ACS 1C.

Създаваме заявка за отчета SKD 1C

Може да има много източници на данни за SKD 1C. За да използвате например две отделни заявки - първо добавете "Набор от данни - Присъединяване", а след това няколко заявки.

В нашия пример ще използваме проста заявка.

Нека напишем заявка, за да получим данните.

Работата със създателя на заявки не се различава от нормалната, обсъдихме това в .

В резултат на заявката SKD 1C ще създаде списък с налични за използване полета и ще попълни имената по подразбиране с него.

Ако името ви е неудобно, можете да го промените тук.

Имайте предвид, че използвахме параметъра &StartDate в заявката. В SKD 1C има параметър (дата) по подразбиране, наречен &Период и можете да го използвате.

Освен това не е необходимо да го посочвате директно в заявката - той ще се използва автоматично. Има обаче една тънкост - важи за всички таблици, включително леви съединения и други неща, които могат да доведат до грешки.

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

Настройки на SKD 1C

В раздела Ресурси посочете полетата, които ще бъдат сумирани за общите суми (т.е. числа). Можете да зададете функция за сумиране за полета. По подразбиране това е Сума (т.е. сумиране на числата от всички редове и получаване на общата сума) или можете да използвате Средно, Преброяване, Максимално и т.н.

В раздела Параметри деактивирайте тези, от които не се нуждаем, и активирайте тези, от които се нуждаем. Тук можете също да зададете човешкото име на параметъра.

Основните настройки се извършват в раздела Настройки:


Нека го отворим в режим Enterprise. Моля, обърнете внимание, че не сме правили никакво програмиране, чертане на формуляри и други неща. За да зададете параметър, щракнете върху бутона Настройки.

Потребителят вижда почти същата форма на настройки като програмиста.

Готово. Докладът работи.

Настройки на SKD 1C

Всички настройки на отчета SKD 1C се извършват чрез натискане на бутона Настройки. Поне в шаблона по подразбиране. Възможно е сами да създадете формуляра за отчет SKD 1C и след това настройките могат да бъдат прехвърлени към други форми, начертани от програмиста независимо.

Плъзнете Warehouse от колони към редове.

Нека плъзнем номенклатурата в склада.

Щракнете върху OK и генерирайте отчета. Ура - току-що променихме начина на работа на отчета в режим на програмиране без програмиране.

Кликнете Кликнете с десния бутонкъм Редове (или някое от полетата) и изберете Ново групиране.

Разгънете полето Склад и изберете едно от полетата му, например Тип склад.

След като помислихме, си спомнихме, че бихме искали да имаме няколко полета, показани в една колона наведнъж. Кликнете върху новосъздаденото поле два пъти с левия бутон на мишката. Можете да добавите полета тук.

Ако добавите ново групиране, но не изберете поле, това означава „Всички полета“ (показва се като „Подробни записи“). Изглежда така.

Хванете нашата групировка (Склад / Номенклатура) с левия бутон на мишката и я плъзнете към нова групировка (Тип Склад).

Резултатът от нашите настройки.

В допълнение към настройките, чийто ефект е лесен за отгатване по името им (Избор, Сортиране и т.н.), има раздел „Други настройки“. Позволява ви да активирате или деактивирате такива неща като показване на общи суми, местоположение на групи в колони и т.н.

Обърнете внимание, че настройките могат да бъдат зададени за целия отчет (отчетът е избран) или за определен ред от полета (изберете ред, като например Номенклатура, и изберете Настройки: Номенклатура).

В последната си статия вече писах, че 1C е парадоксална платформа. Системата за свързване на данни е един такъв парадокс. SKD е предназначен за проектиране на сложни отчети и включва замяната на "ръчното" програмиране на отчети с проектиране в многофункционален инструментариум. Възможността за използване на ACS се появи в осмата версия, но отне много време, за да се появи версия 8.2, за да може 1C да я използва в стандартните си продукти. От една страна, ACS е многофункционален инструментариум, с помощта на който можете да създавате много сложни отчети без нито един ред код. Въпреки това, системата за контрол на достъпа има доста висок праг на влизане, много е трудно да се изучава и да се започне пълноценното й използване "от един замах", тъй като интерфейсът не е напълно интуитивен, но повечето пълни ръководстваизползване са достъпни само под формата на платена литература.

В хода на моето проучване на SKD възникна проблем. Необходимо е да се получат данни от таблица със стойности на трета страна с помощта на езика за заявки и след това да се работи с тези данни като с подобни данни от таблици на базата данни (основни операции, групиране и т.н.). В класическия формат бихме направили заявка, която получава информация от таблицата, предадена на заявката като параметър.

Заявка = Нова заявка(
"ИЗБИРАМ
| Таблица Номенклатура,
| Маса.Склад
| ОТ
| &TK AS Table");
Request.SetParameter("TK", TK);

Но със SKD не е толкова просто. Уви, описаната по-горе операция не може да се извърши в системата за съставяне на данни. Въпреки това е реализирана възможността за зареждане на външни таблици със стойности в системата.

Тук си струва да направим малко лирично отклонение и да говорим за набори от данни. Наборите от данни са източници на информация, от които SKD получава данни, които по-късно компилира в отчет. Наборите от данни са разделени на типове, като основно се използва типът "Заявка", в тялото на който програмистът записва заявка към базата данни. Типът "Обект" се използва за зареждане на данни от външни обекти. И в двата случая на изхода имаме определен набор от полета, получени в резултат на изпълнение на заявка или зареждане на външен обект. По-късно с тези полета може да се работи в раздела „Настройки“, заедно с подробна конфигурация на структурата на отчета. За взаимното свързване на различни набори в ACS е възможно да се уточнят връзките на набори от данни в едноименния раздел. Тези връзки са пряк аналог на лявото съединение в класическа заявка. Въпреки това трябва да се има предвид, че заявките във всеки набор от данни не „знаят“ за съществуването на други набори от данни, в крайна сметка връзките между наборите от данни ще повлияят на оформлението на данните според структурата, посочена в раздела „Настройки“.

Описваме подробно проблема с някакъв пример. Има стандартен отчет Разчетни отчети за организацията на конфигурацията ZiK 8. Необходимо е видовете изчисления в отчета да бъдат групирани в определени групи. Съответствията Calculation Type-Group се съхраняват във външна таблица със стойности. За да го заредим в основната схема за оформление на данни, създаваме „обект на набор от данни“ с името „Групи“ (Фигура 2). Правим връзка с "набор от данни за заявка" - "Начисления" по вида на изчислението (Фигура 3). В "набор от данни за заявка" - "Начисления" има информация за групите, изтриваме всички събития. След това в раздела „Настройки“ можем да използваме полето „Група“, чиято стойност се зарежда от външен източник на данни (Фигура 4). Във функцията за генериране на отчет ние допълваме зареждането на външни данни.

Функция GenerateReport(Резултат = Недефиниран, DecodeData = Недефиниран, OutputToReportForm = True) Експорт

//получаване или формиране на желаната таблица със стойности на "Група" и записването й в променливата със същото име

ExternalData = New Structure();//създайте и попълнете структурата на външните данни
ExternalData.Insert(Groups);

UserPanelValue = GenericReports.GetUserPanelSettingsValuesofObject(ThisObject);
DefaultSettings = SettingsComposer.GetSettings();
GenericReports.GetAppliedSetting(ThisObject);
GenericReports.Generate GenericReport(ThisObject, Result, Decryption Data, OutputToReportForm, ExternalData);
SettingsComposer.LoadSettings(DefaultSetting);
Връщане на резултат;

Крайни функции

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

ExternalDataSets = нова структура;
ExternalDataSets.Insert("Групи", Групи); //Групи - необходимата таблица със стойности
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); //нашето оформление с оформление на данни
Настройки = DataCompositionSchema.Default Settings;
Layout Layout Builder = Ново оформление на данни Layout Layout Builder;
LayoutLayout = LayoutComposer.Run(DataCompositionScheme, Settings);
DataCompositionProcessor = Нов DataCompositionProcessor;
DataCompositionProcessor.Initialize(LayoutLayout, ExternalDataSets);
TabDoc = Нов документ за електронна таблица;
OutputProcessor = Нов OutputProcessorofDataCompositionResultIntoSpreadsheetDocument;
Изходен процесор.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

Прочети 9660 веднъж

внимание! Ето пробна версия на урока, чиито материали може да не са пълни.

Влезте като студент

Влезте като ученик за достъп до училищно съдържание

1C 8.3 система за съставяне на данни за начинаещи: създаване на връзка между набори от данни

  • Напишете отчет, който показва клиентите и техните любими продукти. Всеки клиент има любим цвят, а всеки продукт има свой собствен цвят - именно на базата на тези цветове трябва да определите "фаворита" на продукта. Например, ако любимият цвят на Андрей е червен, то една от любимите му храни ще бъдат доматите (те са червени).
  • Приложете два набора от данни към отчета. Първият набор са данни от справочната таблица „Клиенти“. Вторият - данни от таблицата на справочника "Храна".
  • внедрите връзка на тези две групитака че в отчета да останат само любимите продукти за всеки от клиентите.

Създаване на нов отчет

Отворете базата данни "Gastronom" в конфигуратора и създайте нов отчет през главното меню:

Тип документ - "Външен отчет":

Във формата на нов отчет посочете името "Lesson6" и щракнете върху бутона "Отворена схема за съставяне на данни":

Оставете името на схемата по подразбиране:

Добавяне на първия набор от данни

В схемата, която се отваря, отидете в раздела "Набори от данни" и изберете "Добавяне на набор от данни - заявка" чрез зеления знак плюс:

Ние наричаме конструктора на заявката:

Посочете таблицата "Клиенти" и полетата, които искате да получите от заявката:

Добавяне на втори набор от данни

Добавяне на втори набор от данни:

Изберете го (DataSet2) и извикайте отново конструктора на заявката:

Посочете таблицата на справочника "Храна" и полетата, които искате да получите от заявката:

Това е текстът на искането:

Моля, обърнете внимание, че сега имаме два набора от данни в отчета: DataSet1 и DataSet2. Всеки има собствен текст и данни на заявката.

Направете имената по-описателни

За по-голяма яснота нека преименуваме Dataset1 на Clients и Dataset2 на Food.

Направете това, като кликнете два пъти върху всеки от комплектите:

Можем да използваме данните за всеки от наборите в нашия отчет. Ще имаме достъп до тези данни чрез полета.

IN този моментнабор "Клиенти" има следните полета: "Име" и "Любим цвят", а набор "Храна": "Име" и "Цвят".

Виждаме, че имената се пресичат и лесно можем да се объркаме. Така че нека променим имената на полетата, за да бъдат по-описателни.

Изберете набора „Клиенти“ и променете имената на полетата по следния начин:

След това изберете набора „Храна“ и променете имената на полетата по следния начин:

Извикване на конструктора на настройките

Накрая отидете в раздела „Настройки“ и щракнете магическа пръчказа да извикате конструктора на настройките:

Тип отчет - "Списък...":

Изберете полета за отчета от двата набора:

Вижте защо беше толкова важно да промените имената на полетата? На етапа на настройките за съставяне на данни не виждаме от кои набори са тези полета. Виждаме само имената им.

Проверка на отчета

Ние запазваме отчета и го генерираме в потребителски режим:

да Добре, но не наистина. Извършено е така нареченото кръстосано свързване на двата комплекта (трябва да сте запознати с това от съединенията в заявките, които изучавахме в предишните модули). Всеки запис от таблица "Клиенти" има съответен запис от таблица "Храна".

Но от всички тези записи трябва да оставим само тези, за които полето „FavoriteCustomerColor“ е равно на полето „FoodColor“:

Свързване на два набора от данни

За да направите това, нека свържем два набора от данни (Клиенти и Храни) чрез полетата Любим цвят на клиента и Хранителен цвят.

Отидете в раздела „Връзки към набор от данни“ и щракнете върху бутона плюс, за да добавите нова връзка:

Задайте параметрите, както е показано по-долу:

Ще направя обяснение.

Източник и приемник на комуникация.Е, тук всичко е ясно. Посочете първия набор (Клиенти) и втория набор (Храна) от данни. искам да рисувам Специално вниманиече комуникацията ще се осъществява съгласно принципа външно ляво съединение(прегледахме го в темата за заявки в предишни модули). Въз основа на това трябва да изберете кой комплект ще бъде източник и кой приемник.

източник израз.Посочете тук израз или просто поле от изходния набор от данни (тук сме указали полето Любим цвят на клиента от набора Клиенти).

приемник израз.Тук посочваме израз или просто поле от набора от данни на приемника (тук посочихме полето за цвят на храната от набора за храна).

Така тази връзка ще остави от предишния списък само онези редове, чието поле FavoriteCustomerColor е равно на полето FoodColor.

Запазете отчета и го стартирайте в потребителски режим:

Страхотен!

Ще направя обяснение за полето " Комуникационно състояние“, за които начинаещите програмисти толкова често удрят копията си.

Условието за връзка е спомагателно поле. Можете да пишете изрази там. включващи полета само от набора от данни, посочен в източника на връзката.

В този случай за всички редове от източника на връзката този израз (условие на връзката) ще бъде проверен преди свързването. И ако този израз е TRUE, тогава ще бъде направен опит за свързване на този низ към низове от приемника на връзката. Ако изразът е FALSE, няма да се правят такива опити.

Добър ден, мои читатели! Днес ще продължим да разглеждаме основите на системата за оформление. В тази поредица от статии научихте какво е SKD и се запознахте с основните компоненти на SKD. Също така разгледахме входните данни за изграждане на отчет и научихме основните етапи на изготвяне на отчет в ACS. Освен това мнозина имаха възможност да проверят знанията си, преминавайки през малък. А сега можете да разгледате съдържанието на статията и да видите какво ще бъде обсъдено в нея.

Набор от данни - заявка.

  1. За разлика от обикновената заявка, заявката за съставяне на данни не съдържа клауза TOTAL. Вместо това общите суми се генерират в раздела Ресурси. В този раздел избирате полетата, за които искате да получите крайните изрази. И в раздела „Настройки“ е посочено в кой раздел ще бъдат получени резултатите, тоест тук се създават съответните групировки и ресурсите се изчисляват от тях. Можете да прочетете повече за това в статията.
  2. Следващата точка се отнася до настройките за избор. Има две възможности за изпълнение.
    1. През настройките на опцията отчет. Това може да стане в раздела "Настройки" - "Избор". Ако използваме тази опция, тогава тя е най-гъвкавата, тъй като можете да посочите различни видовесравнения, от които дори потребителят може да избира. Също така, когато използвате тази опция, условията за филтриране се налагат в самата заявка. Ако отчетът се основава на групова заявка, използваща временни таблици, тогава изборът ще засегне всички таблици на пакетна заявка, където се среща полето за филтър.
    2. на ниво заявка. Ако използваме заявка, тогава не можем да използваме нищо друго освен операцията за равенство.
      Изключение е случаят, когато трябва да извършим "твърдо" филтриране на данни по някаква стойност. Да кажем по изброена стойност. В раздела "Параметри" можем да зададем условието. Ако включим флага „Ограничаване на достъпността“, тогава потребителят няма да може да отмени това условие.
  3. Сортирането също е по-правилно да се наложи на ниво настройки на варианта на отчета.
    1. Ако посочите поле за сортиране в заявката, тогава потребителят ще посочи друго поле при настройката на своята опция за отчет, тогава нашата настройка, извършена на ниво заявка, ще има най-нисък приоритет. Първо ще се извърши сортирането, зададено от потребителя в настройката на варианта на отчета. Следователно, ако трябва да зададете сортирането "по подразбиране", използвайте настройките на варианта на отчета в конфигуратора.
    2. И ако трябва да настроите „твърдо“ сортиране в отчета, така че потребителят да не може да го промени? След това задаваме сортирането на ниво заявка и в раздела „Набори от данни“ задаваме ограничението на полето. Изберете желания набор от данни и в колоната "Ограничение на полето" - "Поръчка" поставете отметка.

Опции за виртуална маса.

  • Изграждането на виртуални таблици на счетоводни регистри, натрупващи регистри, информационни регистри зависи от посочената дата. Тя може да бъде или една дата, или интервал, като например таблица за салда и обороти. ACS е проектиран така, че ако отчетът е базиран на виртуална таблица, тогава е необходимо да се остави потребителят да избере за какъв интервал или на коя дата да генерира отчета. ACS автоматично добавя необходимите параметри на периода към схемата на оформлението.
  • Ако в заявката е избрана виртуална таблица със салда или виртуална таблица с информационни регистри, автоматично се добавя параметър, наречен "Период".
  • Ако в заявката е избрана виртуална таблица за салда и обороти или виртуална таблица за обороти, автоматично се добавят параметрите "Начало на периода" и "Край на периода".
  • Какво да направите, ако трябва да получите салда в края на периода? Има два начина:
    1. Отиваме в раздела „Параметри“ и в параметъра „Период“ в колоната „Изрази“ пишем следното:
      &Краен период. Също така активирайте флага „Ограничаване на достъпността“.
    2. Ние напълно се отърваваме от параметъра "Period" и го заменяме с параметъра "EndPeriod". Настройте незадължителен параметър виртуална маса:
      • Отидете в раздела „Набори от данни“ и щракнете върху бутона „Конструктор на заявки...“.
      • В раздела „Композиция на данни“ в горния ляв ъгъл щракнете върху бутона, за да отворите диалоговия прозорец „Опции за виртуална таблица“ (това е сив квадратен бутон със зъбно колело на фона на малка таблица).
      • В полето "Период" на диалоговия прозорец напишете: &EndPeriod.
      • Сега в текста на заявката за набор от данни в параметрите на виртуалната таблица този параметър ще се появи заобиколен от фигурни скоби:
Регистрирай Натрупване. Останки от стоки. Остава(((&EndPeriod) ), ) КАТО Остава

Къдравите скоби показват разширение на езика за заявка за съставяне на данни. Той също така показва, че този параметър е незадължителен. Това означава, че ако не е дефинирано в схемата за съставяне на данни, тогава балансите ще бъдат получени на текущата дата.

Разширение за език за заявки.

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

Когато се създаде набор от данни за заявка, по подразбиране наличните полета на схемата за съставяне на данни се попълват автоматично въз основа на създадената заявка (квадратът за отметка „Автоматично попълване“ е отметнат в раздела „Набори от данни“).

Как работи автоматичното попълване на наличните полета на схемата за съставяне на данни?

    1. Полетата от списъка за избор на заявка и техните дъщерни полета стават достъпни.
    2. Ако изберем от регистъра за натрупване, тогава дори полетата на регистъра, които не са включени в заявката, стават достъпни в полетата за съставяне на данни. Но тези полета са достъпни само за избор (в условни изрази)
      и не могат да се използват като изходни полета.
    3. Параметрите на виртуалните таблици "Period", "StartPeriod" и "EndPeriod" стават
      налични за избор.
    4. Ако в текста на заявката е посочено "трудно" условие, този параметър също ще бъде добавен в раздела "Параметри".

Ако квадратчето за отметка AutoComplete е изчистено, тогава полетата на схемата за съставяне на данни се изчистват, но параметрите, затворени във фигурни скоби в тялото на заявката, остават.

Как мога сам да попълня полетата на схемата за съставяне на данни?

Премахнете отметката от квадратчето „Автоматично попълване“ в раздела „Набори от данни“.

Кликнете върху бутона "Конструктор на заявки...". Нека създадем следната заявка:

ИЗБЕРЕТЕ Останки. Номенклатура КАТО Номенклатура, останки. Количество AS Регистър за натрупване на количество. Останки от стоки. Остава(((&EndPeriod) ), ) КАТО Остава

В раздела "Таблици" можем да зададем параметрите на виртуални маси за всички маси.

Сега в раздела „Композиция на данни“ изберете раздела „Полета“. Тук задаваме полетата за избор, които
ще бъдат показани в диаграмата на оформлението.

Полето "И.." означава, че дъщерните записи ще бъдат включени в селекцията
полета от сложен тип, като директории и документи и др. Ако полето е, като например число, тогава ще бъде невъзможно да поставите флаг в полето "И.."

Изберете две полета "Номенклатура" и "Количество". За полето "Номенклатура" задайте флага "И ..",
за избор на дъщерни записи. Получете следната заявка:

ИЗБЕРЕТЕ Останки. Номенклатура КАТО Номенклатура, останки. Количество AS Количество (ИЗБЕРЕТЕ номенклатура. * , Количество) Регистър на натрупване. Останки от стоки. Остава(((&EndPeriod) ), ) КАТО Остава

В новата заявка във къдрави скоби има още една секция SELECT - това е текстът на разширението, който показва полетата, които ще бъдат налични в оформлението. Полето "Номенклатура.*" показва, че полето "Номенклатура" и неговите дъщерни подробности, като "Код", "Име" и т.н., ще бъдат налични. И така, ние сами попълнихме полетата за оформление.

Но в момента не можем да използваме полета в условията на оформлението. Ако отидете в раздела „Настройки“ и изберете раздела „Избор“, тогава не можете да задавате условия за нито едно от полетата, които сме избрали в предишния параграф. Защо?

Налагането на условия върху параметрите на виртуалната таблица също трябва да бъде указано в раздела Data Composition на Query Builder. В горния ляв ъгъл щракнете върху бутона, за да отворите диалоговия прозорец „Опции за виртуална таблица“.
(това е сив квадратен бутон със зъбно колело на фона на малка маса). В полето "Условие" на диалоговия прозорец напишете: Номенклатура. Сега в текста на заявката за набор от данни в параметрите на виртуалната таблица този параметър "Номенклатура" ще се появи, заобиколен от фигурни скоби:

Регистрирай Натрупване. Останки от стоки. Остава(((&EndPeriod) ), ((Номенклатура) )) КАТО Остава

В обикновен език за заявки указването на параметър изглежда така: Номенклатура = &Номенклатура. Но в разширението на езика за заявки това е написано по различен начин. Посочено е само името на полето. Тук не уточняваме операцията на равенство, неравенство или в йерархията, тъй като потребителят сам ще избере желаната операция в своите настройки.

В раздела Data Composition на Query Builder виждаме друг раздел, Conditions. Необходимо е да се уточнят условията за клаузата WHERE в разширението на езика на заявката. Изберете полето "Сума". Сега това поле е достъпно в условията на раздела "Настройки" - "Избор". И в текста на искането се появиха нови редове, оградени с къдрави скоби.

(КЪДЕ остава. Количество)

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

Така че, мисля, че това е достатъчно материал за днес. Ако все още имате неясни точки, не се колебайте да питате, защото за това е предвидена възможността за коментар. Скоро ще бъдем готови да консолидираме този материал, така че се абонирайте за актуализации на нашия уебсайт, за да не го пропуснете!

И в тази поредица от уроци ще разгледаме функциите на езика за изразяване на SKD, ще говорим за характеристиките на системата за оформление и ще анализираме основните настройки за полетата за оформление. Успех в разбирането на този труден материал!

В края на статията искам да ви посъветвам безплатно от Анатолий Сотников. Това е курс от опитен програмист. Той ще ви покаже на отделна основа как да създавате отчети в ACS. Просто трябва да слушате внимателно и да запомните! Ще получите отговори на въпроси като:
  • Как да създадете прост отчет със списък?
  • За какво служат колоните Поле, Път и Заглавие в раздела Полета?
  • Какви са ограниченията за полетата за оформление?
  • Как правилно да настроите ролите?
  • Какви са ролите на полетата за оформление?
  • Къде мога да намеря раздела за оформление на данни в заявка?
  • Как да конфигурирате параметри в SKD?
  • Още по-интересно...
Вероятно не трябва да се опитвате да сърфирате в интернет в търсене на необходимата информация? Освен това всичко е готово за употреба. Просто започнете! Всички подробности за това какво има в безплатните видео уроци на страницата на автора мек производител http://www..pngмек производител 2015-12-07 14:51:12 2018-06-12 13:14:13 Система за съставяне на данни (SKD). Част 2.

Разширение на езика за заявки за система за съставяне на данни

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

Елементи на синтаксиса на разширението на езика за заявки за композиране на данни

ИЗБИРАМ

Това изречение описва полетата, които потребителят ще може да избира за извеждане. След това ключова думапсевдоними на полета от основния списък за избор на заявка, които ще бъдат достъпни за персонализиране, са изброени разделени със запетаи.

Например:

(ИЗБЕРЕТЕ номенклатура, склад)

Псевдоним на поле може да бъде последван от комбинация от знаци ".*", което показва възможността за използване на дъщерни полета от това поле.

Например записът Номенклатура.* показва възможността за използване на дъщерни полета на полето "Номенклатура" (например полето "Номенклатура.Код"). Елементът SELECT може да присъства само в първата заявка за присъединяване.

КЪДЕТО

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

(WHERE Номенклатура.*, Склад)

Прост пример

Трябва да получите продажби за периода + да покажете целия асортимент, независимо дали е имало продажби или не. Тоест, трябва да изберете данни от оборотната таблица на Регистър Продажби, данни от номенклатурния справочник. Да пропуснем въпроса защо ни трябва цялата номенклатура.

За да разрешите проблема, можете да създадете заявка, свързваща артикула и таблицата с оборота на продажбите с ляво съединение, в резултат на което за артикула, който не е бил продаден през избрания период, ще получим стойностите на полето контрагент, Договор, Количество, Сума= нула. Такова искане:

Изберете sprnome -оферта.Динк като номенклатура,продажби разходи.Контрол,продажби,договори,продажби,продажби.Текущо като количество,продажби,себестойност като себестойност от справочник.Номенклатура като гръбначно обвита връзка на регистър. Развитие като продажба на спрни.

Ето резултата:

контрагент Договор Номенклатура Количество Сума
нула нула _Тест1 нула нула
LLC "Рога и копита" Споразумение1 Домашни пантофи 10 1200
"Газпром" страхотна сделка Ботуши 5 13000
нула нула Галоши нула нула
нула нула Плочи нула нула

В този пример няма продажби на артикула: „Галоши“ и „Шисти“

И всичко би било наред, ако групираме избора по контрагент, тогава всички непродаваеми артикули ще попаднат в отделно групиране, където Контрагент = Null, но клиентът иска да има произволен избор в отчета по полето за контрагент (на разбира се, това означава контрагента от регистъра на продажбите). Как да бъдем? В крайна сметка всъщност трябва само да филтрираме таблицата Продажби. Ако използваме автоматично довършване в ACS конструктора, тогава наличните полета за избор ще включват полето контрагент, изглежда всичко е наред, но при изпълнение на справка с избор по контрагент ще загубим всички записи от връзката с номенклатурата. Например, нека зададем селекция: контрагент = LLC Рога и копита. Резултатът ще изглежда така:

Не е точно това, от което се нуждаем, нали?

За да разрешите проблема, разбира се можете да добавите параметър към заявката, например към параметрите на виртуалната таблица Обороти от продажби, но в същото време се губи гъвкавостта при задаване на типа сравнение.

Има решение: за това, в конструктор на заявкираздел Оформление на данните => масидобавете поле за условие към условията на виртуалната таблица Обороти от продажбии сменете неговия псевдоним на Избор на контрагент

За да не обърквате потребителя с полетата за избор, деактивирайте полето за условие контрагенти променете заглавието на полето Избор на контрагент


В резултат на изпълнение на тази схема с активирано филтриране по полето контрагент, получената заявка ще приеме формата:

Изберете sprnome Dink като номенклатура продажби на оборот Изпълнител като контрагент продажби договор като договор -договор продажби Текущо Изпълнение като> количество разходи продажби като разход представителство (продажби оборот. Договор за договор) като договорен персонал, представителство, представителство (контрол на продажбите. RefNomenclature.Representation AS NomenclatureRepresentation FROM Directory.Nomenclature AS ReferenceNomenclature LEFT JOIN Регистър на натрупване.Sales.Turnovers(&P , , , Counterparty = &P3 ) AS SalesTurnovers ON SprNomenclature.Reference = ПродажбиОбороти.Номенклатура

И съответния резултат:

контрагент Договор Номенклатура Количество Сума
нула нула _Тест1 нула нула
LLC "Рога и копита" Споразумение1 Домашни пантофи 10 1200
нула нула Ботуши нула нула
нула нула Галоши нула нула
нула нула Плочи нула нула

Test1 е група в директорията Nomenclature, в която се намира всичко

Към публикацията е приложена XML схемата на отчета, използван в публикацията. Създадох схемата в Integrated Automation, но мисля, че всичко ще работи добре както в SCP, така и в UT 10

Обобщаване

Този пример показва как да създадете свои собствени настройки за избор в ACS и да деактивирате автоматично създадените, ако проектирате схема с активиран флаг Автоматично довършване.

Ако имате достатъчно опит да създавате вериги, без да използвате Автоматично довършване- тогава този съвет няма смисъл.

Използван софтуер

  • Програма за екранни снимки SnapOK!
  • Редактор на XML файлове


Зареждане...
Връх