телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Оформление на ресурсите на SKD таблица. СтавАналит. Информация за връзка. Показване на картина в отчета на ACS

Създаваме отчет в системата за контрол на достъп.

Съставът на полетата например е следният:

В редовете на отчета има групиране „Контрагент“, в колоните – групиране „Проект“. Отчетните данни включват ресурса "Взаимни разплащания".

В резултат на това получаваме следния резултат:

Виждаме, че заглавието на отчета включва заглавието на ресурса „Взаимни разплащания“. Нямаме нужда от това заглавие тук, така че ще се отървем от него.

Вариантите са няколко.

Опция 1.

Чрез персонализиране на оформлението.

Отворете съответния раздел в дизайнера на системата за композиране на данни. Изберете „Добавяне на оформление за групиране“. Във формуляра „Оформление на групиране“ добавете полето „Проект“. Тип оформление - "Header".

Ние определяме района. Например клетка R1C1. За клетката задайте свойството запълване на „Опция“. Нека назовем параметъра, например, "Проект".

Задайте израза за параметъра: View(Project). Това означава представяне на полето "Проект".

Резултатът трябва да е нещо подобно:

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

Вариант 2.

1. В избраните полета на цялата справка оставете само ресурса
2. В избраните полета за групиране на колони премахнете автоматичното поле и добавете поле за тази колона (например, ако колоните са групирани по период, изберете периода тук)
3. В раздела „Други настройки“ на корена на отчета изберете „локация на ресурса“ - „вертикално“.

Тази опция не изисква оформление.

Нека създадем външен отчет, който ще показва отчетна информация за балансите на артикулите и техния оборот. Необходимата информация се изисква от заявката с помощта на набор от данни от типа "Заявка", който съдържа текста на заявката:
ИЗБИРАМ
_DemoNomenclature.Връзка КАК Номенклатура
МЯСТО Текуща номенклатура
ОТ
Директория._DemoNomenclature КАК ДА _DemoNomenclature
КЪДЕТО
НЕ _ДемоНоменклатура. Знак за изтриване
И НЕ _ДемоНоменклатура. Това е група
;

////////////////////////////////////////////////////////////////////////////////
ИЗБИРАМ
CurrentNomenclature.Номенклатура,
_Демонстрация Остатъци от стоки в местата за съхранение Остатъци и обороти. Място за съхранение,
_DemoRemaining GoodsIn Storage LocationsRemainingsAndTurnover.QuantityInitialRemaining,
_DemoRemaining GoodsIn Storage LocationsRemainingsAndTurnover.QuantityFinalRemaining,
_DemoRemaining GoodsIn Storage LocationsRemainingsAndTurnover.QuantityIncoming,
_DemoRemaining GoodsIn Storage PlacesRemainingsAndTurnover.QuantityConsumption,
_DemoRemaining GoodsIn Storage LocationsRemainingsAndTurnover.QuantityTurnover
ОТ
Текуща номенклатура КАТО текуща номенклатура
ЛЯВА ВРЪЗКА RegisterAccumulations._DemoRemaining GoodsInStorageLocations.RemainingsAndTurnover AS _DemoRemainingGoodsInStorageLocationsRemainingAndTurnover
Софтуер CurrentNomenclature.Nomenclature = _DemoRemaining Goods in Storage LocationsRemainingsAndTurnover.Nomenclature

В резултат на това отчетът съдържа следните полета (вижте Фигура 1):

Тъй като информацията се взема от виртуалната таблица "Салда и обороти", ACS автоматично създава два параметъра на данните, Начало на периода и Край на периода, които са необходими за задаване на границите на периода на извадка на данните. Предпочитам да не работя директно с такива параметри, а да задавам стойностите им чрез друг параметър, който ще бъде достъпен за редактиране на потребителя (вижте Фигура 2).
Докладът се справя със задачата си, но заглавката на доклада е доста суха. По време на работата си намерих няколко начина за проектиране на заглавка на отчета:

  1. Настройка на заглавки на полета в раздела ACS "Набори от данни";
  2. Настройка на заглавки на полета в раздел "Настройки" на ACS;
  3. Инсталиране на софтуерзаглавки на полета;
  4. Задаване на заглавката на отчета с помощта на оформление;
  5. Финализиране на резултата ( документ с електронна таблица);
Нека ги разгледаме подробно.

1. Настройка на заглавки в раздела ACS "Набори от данни".

Тук всичко е просто, поставете отметка в квадратчето до свойството на полето „Заглавие“ (т.е. отменете автоматичното заглавие) и въведете необходимия текст на заглавието (вижте Фигура 4).
Ако трябва да зададете дизайна за цялото поле, а не само за заглавието му, тогава има свойство на полето „Дизайн“, с което можете да зададете някакъв дизайн за полето, например да промените шрифта или да зададете фона цвят (вижте Фигура 5).
Тук свършват знанията ми за раздела „Набори от данни“.

2. Настройка на заглавки на полета в раздела "Настройки" на ACS

За да зададете заглавие на поле, трябва да изберете желаното поле, щракнете с десния бутон, за да извикате контекстно менюи изберете „Задаване на заглавие“ (вижте Фигура 6)
За да групирате полета (например по тип информация), трябва да добавите поле за групиране и да поставите задължителните полета в него (вижте Фигура 7), влагането е неограничено.
Можете също да играете със свойството на полето за групиране „Местоположение“, което определя типа на групирането на полето.

Тези действия могат да се извършват и в режим 1C:Enterprise, като отворите настройките на отчета, НО елементът „Избрани полета“ трябва да бъде включен в настройките на отчета (вижте Фигура 8).
Това завършва лесната част от настройката на заглавката на отчета. От предимствата на горните действия: всички настройки са готови стандартни средства. От минусите: невъзможността да се зададе многоредово заглавие на полето.

3. Програмно задаване на заглавки на полета

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

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

// 1. Вземете потребителски настройки.
SettingsKD = ThisObject.SettingsLitter.GetSettings();

// 2. Получаваме стойността на параметъра "Период", от който определяме началната и крайната дата на периода.
ParameterPeriod = NewDataCompositionParameter("Период");
Период = SettingsCD.DataParameters.FindParameterValue(PeriodParameter).Value;
StartPeriod = Период.Начална дата;
EndPeriod = Period.EndDate;

// 3. Подгответе информация за предефиниране на заглавки на полета. За да направите това, нека създадем
// масив, който ще съдържа информация: FieldName - стойности на свойството "Path" в
// набор от данни (виж Фигура 1), Заглавие - текст на заглавието.
FieldList = Нов масив;
pagePeriodStart = Format(PeriodStart, "DF=dd.MM.yyyy; DP="Празна дата"");
FieldInitialRemaining = New Structure("FieldName, Heading", "QuantityInitialRemaining", "Remaining on " + Symbols.PS + pageBeginningPeriod);
List ofFields.Add(FieldInitialRemaining);
strEndPeriod = Format(EndPeriod, "DF=dd.MM.yyyy; DP="Празна дата"");
FieldFinalRemaining = New Structure("FieldName, Heading", "QuantityFinalRemaining", "Remaining on " + Symbols.PS + strEndPeriod);
FieldList.Add(FieldFinalRemaining);

// 4. Вземете списък с полета, които са в групата "Оставащи" (вижте Фигура 7) и
// задаване на ново заглавие чрез обхождане на елементите в цикъл.
SelectedFields = SettingsCD.Selection.Items; // Първо ниво на полета.
SelectedFieldsRemains = SelectedFields.Items; // Остава групиране на полета.
За всеки цикъл SelectedField From SelectedFieldsRemainders
За всеки елемент от масив от списък с полета
LayoutField = NewDataCompositionField(ArrayItem.FieldName);
Ако SelectedField.Field = LayoutField Тогава
SelectedField.Header = ArrayItem.Header;
endIf;
EndCycle;
EndCycle;

// 5. Заредете обратно променените потребителски настройки.
ThisObject.SettingsLinker.LoadSettings(CDSettings);

Докладвайте резултата (вижте Фигура 10):
Методът е по-труден от всички по-горе, но ми харесва.

4. Задаване на заглавката на отчета с помощта на оформление

За още гъвкави настройкиПоявата на отчета в ACS осигурява създаване на оформления. В настройките на отчета ще създадем друго групиране „подробни записи“ и ще зададем името „DZ линия“ за това групиране (вижте Фигура 11).
В раздела "Оформления" добавете оформление на заглавката за групиране. За оформлението в документ с електронна таблица ще създадем заглавка на отчет (заглавката на отчета трябва да съдържа толкова заглавки на полета, колкото са показаните полета подробен запис) и посочете областта на документа с електронна таблица за оформлението (вижте Фигура 12).
В резултат на това отчетът има следната заглавка (вижте Фигура 13):

Фигура 13. Оформление на ACS като заглавка на отчета
Според мен оформленията имат един голям недостатък: невъзможността да се адаптират към дадена потребителска група, така че те трябва да се използват, ако формата за отчитане е регламентирана и не може да се променя. Опитайте да зададете групиране за групирането "LineDZ" и ще видите, че оформлението е объркано.

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

5. Финализиране на резултата (табличен документ)

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

Да започваме. Деактивираме стандартното генериране, за да направим това в модула за отчет за събитието При представяне на резултатаНека зададем променливата StandardProcessing на False и напишем нашето собствено оформление на резултата:
StandardProcessing = False;
LayoutLinker = newDataLayoutLayoutLinker;
LayoutLayout = LayoutLocker.Execute(
ThisObject.DataCompositionSchema,
ThisObject.SettingsLinker.Settings,
DecryptionData);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout, DecryptionData, True);
OutputProcessor = Нов OutputProcessorDataCompositionResultInTabularDocument;
OutputProcessor.SetDocument(DocumentResult);
OutputProcessor.Output(CompositionProcessor);
Софтуерното оформление на резултата от отчета е описано по-подробно в статията

Компилираният резултат се извежда в документ с електронна таблица - това е променливата DocumentResult. След това, след генериране на резултата и извеждането му в документ с електронна таблица, ние пишем код, за да заменим един текст в клетка с друг. Например, нека променим името на групата „Остатъци“ на „Оставащи елементи“ в заглавката на отчета (вижте Фигура 14):
Cell = DocumentResult.FindText("Остатъци");
Ако Cell<>Недефиниран Тогава
Cell.Text = "Оставащи елементи";
endIf;

Можете също да зададете форматиране за намерената клетка; вижте свойствата на клетката на документа с електронна таблица в асистента за синтаксис.

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

P.S. Може би имате друг начин да проектирате заглавки на полета?

В тази статия ще прегледаме накратко всички раздели на дизайнера на схема за съставяне на данни.

Набори от данни

В този раздел можете да създавате неограничен брой набори от данни. Наборът от данни е източник на данни.

Има няколко типа набори от данни:

  • Заявка;
  • Предмет;
  • Асоциация.

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

Обектът е външен набор от данни, като например таблица със стойности.

Обединение – комбиниране на няколко набора от данни от типове заявки и обекти.

В тази статия ще прегледаме накратко всички раздели на дизайнера на схема за съставяне на данни. Набори от данни В този раздел можете да създавате неограничен брой набори от данни. Наборът от данни е източник на данни. Има няколко вида набори от данни: Заявка; Предмет; Асоциация. Заявката е обикновена 1C заявка, само езикът на заявката е леко разширен. За удобство можете да използвате конструктора на заявки. Обектът е външен набор от данни, като например таблица със стойности. Обединение – комбиниране на няколко набора от данни от типове заявки и обекти. Връзки между набори от данни Този раздел описва връзките между набори от данни. Тук можете да посочите кои набори от данни да се свържат и по кои полета и с кои параметри. Най-важното нещо, което трябва да запомните: в схемата за съставяне на данни, когато свързвате набори, винаги се използва ляво съединение! Изчисляеми полета В този раздел можете да създавате допълнителни полета, които не са описани в раздела Набори от данни. Като изрази за изчисления можете да използвате езика за изрази за съставяне на данни, полета от основните набори от данни, както и функции на неглобални общи модули. Ресурси Ресурсите са обобщените данни за групировките. В раздела можете да зададете полета от набори от данни, както и изчислени полета като ресурс. Също така за ресурси се посочва изразът, по който се изчисляват, като е възможно да се посочи групирането, по което ще се изчислява изразът за ресурси. Въз основа на стойностите на ресурсите се изчисляват и общите суми на отчета. Параметри Параметрите на данните обикновено се използват в заявка за набор от данни. Всички параметри, описани в заявката, се показват в раздела Опции. В този раздел можете да посочите заглавието, наличните типове, наличните стойности и някои други неща. Повече подробности за параметрите малко по-късно. Оформления По подразбиране оформлението на генерирания отчет се генерира автоматично от системата за съставяне на данни. Но системата също така позволява на разработчика да проектира отделни области на отчета (полета, групи, ресурси...). Всички отделни оформления на области, създадени в този раздел, са свързани само с текущия отчет. Вложени схеми Вложените схеми се използват в случаите, когато данните от един отчет трябва да се използват в друг. С други думи, ние „вграждаме“ една схема за оформление на данни в друга, което показва връзка през общо поле. Пример за използване на вложени схеми може да бъде намерен в тази статия. Настройки В този раздел разработчикът създава стандартни настройкигенериране на отчет. Йерархичната структура е посочена в горната част на прозореца. Структурата за генериране на отчет може да се състои от следните елементи: Групиране; маса; Диаграма; Вложена диаграма В долната част на прозореца се задават настройки за целия отчет и за всеки елемент от структурата на отчета. Накратко в разделите за настройки: Избрани полета – списък с полета, показани в отчета; Избор – всички възможни селекции на отчетни записи; Ред – сортиране на записите в отчета; Параметри на данните – стойността на параметрите на отчета; Персонализирани полета – допълнителни полета за отчет, създадени от потребителя; Условно форматиране – задава условното форматиране на записите в отчета; Други настройки - всякакви допълнителни настройкикато: заглавие на отчета, оформление на дизайна, оформление на полето и др....

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

Знам, че оформлението в ACS може да бъде заменено (променено) с помощта на кодиране директно във формуляра за отчет, но за мен беше фундаментално важно да правя промени в ACS, без да прибягвам до кодиране.

Текстът на заявката в отчета беше следният:

Избери предмет. Име, номенклатура. Код, номенклатура. Основна мерна единица, номенклатура. Мерна единица Място, номенклатура. Единица за съхранение на остатъци, номенклатура. UnitForReports, Номенклатура. Коментар, Номенклатура. Статия, Номенклатура. Връзка КАК Номенклатура ОТ Справочник. Номенклатура КАТО номенклатура КЪДЕ НЕ номенклатура. Тази група

Точка 1. Произволен отчет и заглавия на колони.


По подразбиране ACS има способността да показва произволен текст на заглавието. Това става в настройките на ACS:

на изхода получаваме:

Но ако заглавията на отчета и колоните трябва да са произволни, тогава тази опция не е подходяща. Така че направих следното:

Посочете име за подробни записи:


Начертах оформлението, от което се нуждаех, в SKD

Там, в раздела „Оформление“, очертах границите на оформлението на заглавката на групата:

и посочи името на групата:

след това посочих областта на оформлението, която трябва да се покаже в заглавката на отчета:

Ако генерирате отчет, тогава:

не точно това, което исках да получа. За себе си намерих начин да реша този проблем - направих цвета на фона и рамката на областта на оформлението, която е заглавката на отчета, бели:

и изходът е желаният тип отчет:

Точка 2. Безплатно декодиране на отчетни полета.

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

В отчета по-горе, ако щракнете двукратно върху което и да е поле, няма да можете да отворите картата на артикула:

Например, ако щракнете върху полето „Статия“, получаваме следното:

Решението е:

Добавяне на оформление на полето:

посочете полето (Артикул), при щракване трябва да се отвори картата на артикула:

в оформлението попълнете всяко празно поле с текста „Артикул“, в свойствата посочете - Попълване = „Параметър“, Параметър за декриптиране = „Декодиране на номенклатура“:

и посочете това оформление на областта на полето:

След това трябва да се появят опциите за оформление:

В тези параметри посочваме израза за „Декодиране на номенклатура“, в моя случай това е връзка към номенклатурата:


Получаваме възможност да отворим продуктовата карта, като щракнете върху полето „Статия“:

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

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



Свързани публикации