У дома / Етаж / Счетоводна информация. Как се използва универсален отчет. Структура на универсалните отчети

Счетоводна информация. Как се използва универсален отчет. Структура на универсалните отчети

Универсални отчети в 1C. Възможност за създаване на отчети в 1C. Промяна на групи, индикатори, селекции, сортировки. Създаване на групи. Настройване на селекции. В конфигурацията "Управление на търговията", възможността за използване на свойствата и категориите на директории и документи.

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

1C: Enterprise 8.1 като програма за подпомагане на вземането на решения има голямо разнообразие от отчети. „Конфигурацията за управление на търговията“ реализира система от универсални отчети, които са инструмент за анализ на почти всички аспекти на търговската дейност и оборота на предприятието.

Налични са следните отчети:

Останки от номенклатурата;

продажби;

Номенклатурни движения;

Текущо състояние;

История на продажбите;

Номенклатурно счетоводство;

Стойност на артикула;

Цени на артикулите;

Всички данни за контрагента (карта на контрагента);

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

Отчетите могат да се генерират по всяко време и да предоставят информация до един ден.

Правилата за генериране на отчети са същите. Изберете типа отчет в падащото подменю, след което в прозореца, който се отваря, посочете периода на генериране и щракнете върху бутона „Генериране“.

И така, какво е универсален доклад?

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

Да разгледаме например отчета „Отчет за партиди стоки в складове (управленско счетоводство)“.

Справката показва пълна информация за разпределението на стоките по партиди. Справката може да показва пълна информация за доставчиците на стоки и как стоките се разпределят между партидите. Отчетът може да се групира по статус на партида.Ако партидното счетоводство се поддържа по складове, отчетът може да се изведе по склад.

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

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

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

В отчета можете да зададете и допълнителни групи по статус на партида, както и по честота: ден, седмица, месец и др.

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

Нека отворим формата за отчет:




За да генерирате отчет, щракнете върху бутона "Генериране":

Ето как изглежда нашият доклад досега.

Когато щракнете върху бутона „Настройки“, ще се отвори формата за конфигуриране на отчета:

За да зададете период или интервал от коя дата до коя дата ще се показват данните в отчета, трябва да кликнете върху бутона:

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

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

В раздела " Интервал" - инсталирането се извършва чрез избиране на началото и края на интервала от време.

В раздела " Период“ – указва периода, за който ще бъдат избрани данните.

Ако искате списъкът да се отвори с избрания интервал на видимост, изберете " Използвайте тази настройка за период при отваряне ".

Ще се отвори формулярът „Настройка на период“:


Избираме необходимите данни и натискаме бутона „OK“.

" Настроики":

  • отрицателно в червено - всички отрицателни стойности (числа) ще бъдат маркирани в червено;
  • показване на общи суми - в края на списъка ще се изведе общата сума за всички показатели;
  • показване на подробни записи - показване на подробни данни за всеки продукт;
  • използвайте свойства и категории

"Индикатори":

Индикаторите на командния панел задават маркировки;

Премахнете отметката от индикаторите на командния панел;

Преместване нагоре (Ctrl +Shift +Нагоре);

Преместване надолу (Ctrl +Shift + Down);

Сортиране във възходящ ред;

Сортирайте в низходящ ред.

"Производителност":

Отбелязваме квадратчетата, които искаме да видим в генерирания отчет.

„Групиране на редове“:

Добавете;

Изтриване на текущия;

Преместване нагоре (Ctrl +Shift +Нагоре);

Преместване надолу (Ctrl + Shift + Down).

Характеристики на „Универсален отчет“ в счетоводната програма 1C 8.3.

В програмата 1C 8.3 Enterprise Accounting 3.0 в раздела „Отчети“ има много различни отчети за всеки вид дейност. По принцип са достатъчни за ежедневно счетоводство. Но понякога, за да се анализира конкретен проблем, е необходимо да се копае по-дълбоко, дори до сравняване например на записи в документ и в регистрите, които той засяга. И има моменти, когато стандартните отчети просто не са достатъчни.

За такъв задълбочен анализ на данни или за създаване на собствен отчет в програмата 1C 8.3 има „Универсален отчет“. Ще разгледам неговите възможности в тази статия.

Общо описание на универсалния отчет в 1C 8.3

Първо, нека разберем къде да намерим универсален отчет? Ако отидем в менюто „Отчети“ и след това щракнете върху връзката „Универсален отчет“, ще видим този прозорец:

Нека да разгледаме набързо неговите контроли.


Свършихме с горния ред.

  • По-долу най-интересният бутон е „Показване на настройките“. По-добре е да покажете с пример тук

Инструкции за настройка на универсален отчет 1C 8.3

Тъй като работим в програмата 1C: „Счетоводство на предприятието 3.0“, ние се интересуваме предимно от счетоводни регистри. В конфигурация 3.0 ни е достъпна само една - „счетоводно и данъчно счетоводство“. Нека го изберем. Нека да разгледаме оборота по сметка 10.01 „Материали“.

Изберете период. Ще имам това през цялата 2012 г. След това щракнете върху бутона „Показване на настройките“:

За да получим имената на материалите, избираме групирането с 1-ви подконто. Именно в него се съхранява името или по-скоро връзка към номенклатурата.

Отидете в раздела „Избори“:

Тук трябва да посочим, че искаме да видим само резултата 10.01.

Ако желаете, можете да посочите колкото искате условия за избор тук.

Нека щракнете върху бутона за генериране и да видим какво имаме:

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

Връщаме се към настройките и веднага отиваме в раздела „Индикатори“:

Премахваме квадратчетата за отметка от онези колони, които не трябва да показваме.

В раздела „Генериране“ можете да посочите полето, по което ще се извърши сортирането. Например, така че материалите да се показват по азбучен ред:

Кликнете върху „Генериране“:

Получаваме желания резултат. По този начин можете да получите огромен брой опции за отчети.

Сега отчетът може да бъде отпечатан или изпратен по имейл.

Ако изберете тези числа в колоните с числа, сборът от избраните числа ще се появи най-отгоре в полето с иконата „Сума“.

По материали от: programmist1s.ru


Ключови думи: Универсален отчет, Общ отчет, Отчет за салда и обороти, Списък на отчети CrossTable, Салда и обороти, Списък кръст / таблица

Повечето отчети са изградени на едни и същи основни принципи. Най-бързият начин за разработване на отчет е да използвате конструктора „Output Form Designer“, вграден в платформата. Въпреки това, когато разработват (или модифицират) стандартна конфигурация, програмистите са длъжни да унифицират програмния код, както и формите на справочници, документи и формуляри за изходни отчети. Следователно, в типичните конфигурации, често използваният програмен код се поставя в общи модули и се използват специални „универсални“ отчети за унифициране на изходните форми на отчетите.
Целият набор от отчети в стандартни конфигурации може да бъде разделен на отчети, генерирани на базата на общи отчети, когато всички функции за генериране на изходната форма и настройки се прехвърлят към външния модул на общия отчет, и тези, генерирани с помощта на конструктора, когато всички функции, генериращи изходната форма, се съдържат в обектния модул.
В UT и UPP има два общи отчета: „Отчети салда и обороти (ReportRemainsAndTurnovers)“ и „Кръстосана таблица на списъка на отчетите (ReportListCrossTable)“. Първият „Отчет за салда и обороти (Отчет за салда и обороти)“ е предназначен за генериране на линейни отчети от типа „Начално салдо – Приход – Разход – Краен баланс“, с групиране, изведено по редове. Вторият отчет „Списък / кръстосана таблица (ReportListCrossTable)“ е предназначен за показване на кръстосани таблици, когато групите се разширяват не само по редове, но и по колони.

Структура на универсалните отчети

Нека да разгледаме детайлите, елементите на формата и процедурите на универсалните модули за отчитане. Съставът на детайлите и функциите на отчетите е малко по-различен, така че разликите между „Списък / кръстосана таблица (ReportListCrossTable)“ и „Отчет за салда и обороти (ReportRemainsAndTurnovers)“ ще бъдат дадени по-долу с описания на общи подробности, функции и елементи на формата.
Подробности за универсалния отчет:
  • “RegisterName” - низ, име на регистъра за натрупване, от който получаваме данни
    „Начална дата“ – датата, от която започва извадката на данните
  • “DataCon” – датата, за която данните са извадени. Тези. период на генериране на отчет от “DataStart” до “DataConk”

  • “Report Builder” – тип Report Builder, този атрибут съдържа екземпляр на обекта Report Builder, с помощта на който се генерира информация в табличната част, управляват се настройките на отчета (групиране, селекции, сортиране), както и външния вид на отчетът се контролира (извеждане на резултати за всички нива, оцветяване на групи)
  • „UsePropertiesAndCategories“ – Булева стойност, предназначена да прецизира селекцията на отчетни данни по свойства и категории обекти. След като укажете този параметър в настройките на отчета, вие получавате възможност да изберете определени свойства и категории обекти за групиране, избор и подреждане

  • “SavedSettings” – структура, в която са поставени настройки, които се записват при затваряне на отчета и се възстановяват при следващото му отваряне
  • „ColorDimensions“ – Boolean, настройката на този атрибут на True показва, че когато се показват редове от групи и полета, те трябва да бъдат оцветени за по-добро представяне на информацията на екрана

  • „OutputIndicatorsInLine“ – булево, показва възможността за показване на групировки в един ред
  • „Извеждане на допълнителни полета В отделна колона“ – булево, ако в настройките на отчета са посочени допълнителни полета, те трябва да се показват в различни колони

  • „Изходни суми за всички нива“ – Булева стойност, за някои групи можете конкретно да забраните извеждането на цифри за индикатори, този атрибут премахва тази забрана
  • „ShowTitle“ – Boolean, показва дали да се показва заглавието на екрана (регулируемо чрез бутона „Title“ във формуляра за отчет)

  • Табличната част “Индикатори” - съдържа списък с индикатори, изведени на екрана

  • В отчета „Списък кръст / таблица (ReportListCrossTable)“:
  • „Използване на групиране на интервали (UseIntervalGroups)“ - булево, показва възможността за показване на данни по интервали от периоди
  • Табличната част “Интервали” - съдържа списък с интервали

Универсални отчетни форми:
“FormMain” – основната форма за извеждане на данни.
Подробности „FormMain“:
  • “ReportObject” - основният обект на отчета, връзка към “ReportRemainsAndTurnover” или “ReportListCrossTable”

  • Модулът формуляр съдържа следните променливи:
  • „Височина на заглавието“ - номер, брой редове в заглавието, тази променлива се използва, когато трябва да скриете/покажете заглавието на отчета в документ с електронна таблица
  • "DecryptionWindowIdentifier"

  • „Формуляр за настройки“ - връзка към формата за настройки
  • „Не попълвайте настройки при отваряне“ - Булева, променливата се използва, когато няма нужда да се попълват първоначалните настройки на отчета. При първото отваряне променливата е FALSE, при дешифриране на отчета променливата ще бъде зададена на TRUE

  • „Структура на връзки на елементи с данни“ - структура, която съдържа данни, показващи кои елементи на формуляра съответстват на детайлите на отчета

  • Елементи на формата "FormMain":
  • „Form CommandBar“ – съдържа бутони за контрол на формата:
    o Меню “Подменю” (Действия) – съдържа списък с възможни действия на формата
    o Бутон „Генериране” – при натискане се генерира отчет
    o Бутон “Избор” – отваря/затваря панела за избор
    o Бутон „Заглавие” – отваря/затваря редове със заглавието на отчета в табличния раздел
    o Бутон “Настройки” - отваря формата за настройки на отчета
    o Бутони “RestoreSettings”, “SaveSettings” - запазване и възстановяване на настройките на отчета
    o Бутон “Помощ (Действие1)” – извиква помощ за отчета
  • “Период от: (DateStart)”, “до: (DateCon)” - поле за въвеждане, въведете начална/крайна дата на избор на данни за отчета

  • “Счетоводна секция (RegisterName)” - поле за избор, име на регистъра, за който се генерира справката
  • „Панел за избор” - панел, върху който са разположени елементи за реализиране на механизъм за бърз достъп до отчетните селекции

  • “DocumentResult” - табличен документ, в който се показват данните от отчета
Модул за формуляр "FormMain":
Нека изброим процедурите:
  • “BeforeOpening” - манипулатор на събития преди отваряне на формата. Съдържа код, който се изпълнява за инициализиране на първоначалните настройки на отчета. Възстановява запазените данни, атрибут „RegisterName“.

  • “При отваряне” - манипулатор на събития при отваряне на формата
  • “UpdateReport” - процедурата генерира отчет и актуализира табличния документ “DocumentResult”

  • „Показване на избора“ - показване/скриване на панела с формуляр за избор
  • “Fill ObjectByDialog” - попълва детайлите на отчета с помощта на детайлите на формуляра

  • „Попълване на DialogBy Object“ - попълване на детайлите на формуляра с помощта на детайлите на отчета
  • “Извеждане на заглавие” - извежда заглавието на отчета

  • “GenerateFormTitle” - генерира заглавния текст
  • “AfterRestoringValues” - след възстановяване на стойностите във формуляра. В тази процедура - манипулатора на събития на формуляра, можете да вмъкнете код, който ще зададе стойностите на отчета и подробностите за формуляра след отваряне на формуляра за отчет. Запазените стойности обикновено се поставят в атрибута SavedSettings и след възстановяване на формуляра всички настройки се поставят в атрибута SavedSettings

  • „Before SavingValues“ е манипулатор на събитие на формуляр, изпълнява се, когато формулярът е затворен и стойностите от атрибута SavedSettings са запазени
  • “Обработка на предупреждения” - манипулатор на предупреждения

  • “ButtonSettingPeriodPress”, “SettingsField1OnChange”, “SettingsFieldWith1OnChange”, “SettingsFieldBy1WhenChange”, “ComparisonViewField1WhenChange” - манипулатори на събития за елементи на формуляр
  • „DocumentResultDecryptionProcessing“ - манипулатор на събитие за събитието „DecryptionProcessing“ на полето на документа на електронната таблица „DocumentResult“

“FormSettings” - форма, предназначена за настройка на отчет, извиквана, когато щракнете върху бутона “Настройки” в основния формуляр за отчет.
Подробности за „FormConfiguration“:
  • “ReportObject” - отчет, връзка към “ReportRemainsAndTurnover” или “ReportListCrossTable”


  • “CallingReport” - произволен тип
  • "IntervalGrouping" - тип низ

  • “IntervalField” - произволен тип
  • “SelectedIntervals” - тип таблица със стойности. Свързан с елемента на формуляр SelectedIntervals в раздела Интервали за групиране.

Елементи на „FormSettings“:
„Панел за отчети (панел за отчети)“ съдържа следните раздели:
Разделът „Общи“ съдържа следните елементи:
  • “Период от: (DateStart)”, “до: (DateCon)” - поле за въвеждане, начална и крайна дата на извадката на данните от отчета. Данните са свързани с подробностите за отчета „DataStart“ и „DataCon“

  • „Счетоводна секция (RegisterName)“ е поле за избор, данните на елемента са свързани с атрибута на отчета „RegisterName“, съдържа името на регистъра, за който се генерира отчетът. Ако "FormSettings" се извиква от външен отчет, това поле не е достъпно за преглед и редактиране
  • „Използване на свойства и категории (UsePropertiesAndCategories)“ - квадратче за отметка, задава флага за използване на свойства и категории обекти, данните от това поле за отметка са свързани с данните на атрибута на отчета „UsePropertiesAndCategories“

  • „Цветни размери (ColorDimensions)“ - квадратче за отметка, данните са свързани с детайлите на отчета „ColorDimensions“, ако квадратчето е маркирано, тогава нивата на групиране, показани в документа с електронна таблица, ще бъдат маркирани в цветове
  • „Изходни суми за всички нива (OutputTotalsAcrossAllLevels)“ - квадратче за отметка, ако е отметнато, тогава сумите за всички нива на групиране се показват в документ с електронна таблица, свързан с атрибута на отчета „OutputTotalsAcrossAllLevels“

  • „Изход в различни колони (Изход в различни колони)“ - квадратче за отметка, по подразбиране стойностите на индикатора се показват в една клетка, когато това квадратче е отметнато, стойностите на индикатора ще се показват в две клетки
  • „Списък с индикатори (Индикатори)” - таблична част, съдържа списък с индикатори

  • В „Отчет за списък/кръстосан отчет (ListCrossTableReport)“:
  • “Период (DateStart)” - поле за въвеждане на дата, предназначено за избор на период. Видимостта на това поле се регулира от променливата на модула „mPeriodInputMode“, в зависимост от стойността на тази променлива в това поле можете да изберете период на стъпки от ден, месец, тримесечие, година
Раздел „Групи“:
  • „Размери на ред (Report Builder.Row Dimensions)“ - тип размери на Report Builder, размери, определени от редовете на отчета

  • В отчета „Списък / кръстосана таблица (ReportListCrossTable)“:
  • „Размери на колони (Създател на отчети. Размери на колони)“ - тип размери на конструктора на отчети, размери, определени от колони на отчета

  • В отчета „Списък / кръстосана таблица (ReportListCrossTable)“: ако атрибутът
  • „Use IntervalGroups“ е зададено на „True“, след което отметката става достъпна
„Интервали на групиране“:
  • “Име (IntervalField)” - поле за избор. При отваряне на формуляра се попълват тези измерения от колекцията “Report Builder.AvailableFields”, чието име започва с “IN”

  • “SelectedIntervals” - таблица със стойности. При промяна на „Име (IntervalField)“ списъкът с избраните интервали се попълва
Раздел „Избор“:
  • “Избор (ReportBuilder.Selection” - тип Избор. Избор на конструктора на отчети

Раздел „Полета“:
  • „SelectedFields (Report Builder.SelectedFields)“ - тип поле на Report Builder. Полета за показване в отчета

  • „Показване на допълнителни полета в отделна колона (OutputAdditionalFieldsINSeparateColumn)“ - квадратчето за отметка, когато е отметнато, показва полетата в отделни колони
Раздел „Сортиране“:
  • “Поръчка (ReportBuilder.Order)” - тип Поръчка. Сортиране на групи в отчет

Модулът “FormsSettings” съдържа следните процедури и манипулатори на събития:
  • „Попълване на DialogByObject“ - попълва диалоговия прозорец според стойностите на подробностите за отчета

  • “Преди отваряне” - манипулатор за събитието “Преди отваряне” на формата за отчет
  • „RegisterNameOnChange“, „ButtonPeriodSettingPress“, „BasicFormActionsOK“, „UsePropertiesAndCategoriesWhenChange“, „CommandPanelListIndicatorsSetAll“, „CommandPanelListIndicatorsRemoveAll“, „SelectionValueStartofSelection“, „SelectionBeforeDeleting“, „StartDateOnChange“, „DateCon OnChange - манипулатори на събития за съответния елемент от формата

  • В модула на формуляра променливата Списък на регистрите също се инициализира (функцията Получаване на списък с регистри и остатъци) и се посочва като списък за избор на елемент на формуляр „Счетоводна секция (име на регистър)“

  • В отчета „Списък / кръстосана таблица (ReportListCrossTable)“:
  • “Select Intervals” - процедурата генерира списък с избрани интервали в атрибута “Selected Intervals”, извикван при промяна на полето за избор “Name (IntervalField)”
  • “InsertIntervalsByName” - процедурата се извиква преди генериране на отчета, попълва табличната част “Интервали”

  • “ButtonPeriodSettingPress” - манипулатор за натискане на бутона за настройка на периода
  • “PlusPeriodPress”, “MinusPeriodPress” - манипулатор за натискане на бутона “+”, “-” точка

  • „IntervalFieldOnChange“, „SelectedIntervalsAfterDeleting“, „SelectedIntervalsWhenEditingCompleted“, „SelectedIntervalsInBorderOnChange“ - манипулатори на събития за елементи от раздела „Интервали за групиране“

  • Полето за избор “IntervalField” се инициализира в модула на формуляра.
Модул за обект на отчет:
Модулни променливи, които влияят на генерирането на отчет:
  • “mTableIndicators” - таблица със стойности, съдържаща всички възможни индикатори, попълнена по подразбиране с индикатори от табличния раздел “Индикатори”

  • “NP” - настройка на период, използвана при извикване на “Бутон за настройки на период”
  • “mAssignment Match” - съвпадение, съдържащо присвояване на свойства и категории на имена

  • „mСтруктура на връзката на показателите и измеренията“ - съответствие, съдържа връзката на показатели и измервания. Използва се, когато трябва да покажете стойностите на определени индикатори само в редове с определени групи
  • “mArrayWidths of Columns” - масив от ширини на колони на документ с електронна таблица, който да бъде запазен между генерирането на отчет. Използва се при актуализиране на отчет, за да се запази ширината на колоните, включително зададената от потребителя

  • „mInitialReportLayout“ – оформлението, използвано за отчета, по подразбиране е „Layout“, но може да бъде заменено. Променливата е необходима, ако възнамерявате да използвате оформление, различно от оригиналното оформление на универсалния отчет „Оформление“
  • “mReportName” - низ, заглавие на отчета

  • „mSelectRegisterName“ - Boolean, знак за избор (промяна) на име на регистър (тип отчет), влияе върху видимостта на елемента на формуляра за настройка „Счетоводна секция (RegisterName)“
  • “mSelectUseProperties” - Boolean, знак за избор (промяна) на флага за използване на свойства и категории

  • “FieldFormatStructure” - структура, която съхранява формата на полета от примитивни типове, използвани за форматиране на полета от типа дата в представяне на низ
  • “mStructureForSelectionByCategories” - структура, предназначена да свързва селекциите на Builder с категории от свързаните таблици

  • В отчета „Списък / кръстосана таблица (ReportListCrossTable)“:
  • “mStructure of Non-Displayable Groups” - структура, която съхранява списък с онези групи, които не трябва да се показват. Използва се в случаите, когато трябва да пропуснете суми, например Номенклатура - Характеристики - Серии: суми за номенклатурата не са необходими, само за трите
  • „Съвпадащи типове полета с интервал“ - съвпадение

Процедури и функции на модула за отчет:
  • “Попълване на първоначални настройки” - процедурата попълва първоначалните настройки на справката. Извиква се в модула на формуляра за отчет преди отваряне на формуляра (обработчикът на събитие „BeforeOpen“)

  • „Обработка на препис на стандартен отчет“ - процедура, извикана от манипулатора на събитие за събитието „Обработка на препис“ на полето на документа в електронната таблица „DocumentResult“
  • „Попълване на полетата с основни данни“ - процедура, извиквана при инициализиране на основния формуляр за отчет (модул за формуляри)

  • „Персонализиране“ - процедура, която конфигурира отчета, използвайки предадената структура на параметрите, извиквана при дешифриране на отчета
  • “GetReportBuilder” - функция, която връща конструктора на отчети

  • “GetMainForm” - функция, която връща основната форма на отчета
  • „Създаване на структура за запазване на настройки“ - процедура, която създава структура „Запазени настройки“ за запазване на параметрите на отчета. Извиква се преди запазване на настройките в манипулатора на събитие „BeforeSavingValues“. Структурата се състои от следните полета:
    o “RegisterName” – съдържа името на регистъра
    o “Настройки на Builder” - съдържа настройки на Builder: налични полета, селекции, ред и др.
    o “Индикатори” - таблична част “Индикатори”
    o „Използване на свойства и категории“ - знак за използване на свойства и категории
    o „Извеждане на допълнителни полета В отделна колона“ - знак за показване на допълнителни полета в отделна колона
    o “Показване на суми за всички нива” - показване на суми за всички нива
    o “OutputIndicatorsInLine” - изходни индикатори в ред
    o “ColorDimensions” - оцветява размерите
    o “TitleTagged” - показване или скриване на заглавието
  • “RestoreSettingsFromStructure” - процедура, която попълва общи параметри на отчета от структурата на настройките. Извиква се след възстановяване на настройките в манипулатора на събитие „AfterValuesRestored“.

  • “GenerateReport” - изпълнява заявка и генерира табличен документ-резултат от отчета

  • В отчета „Списък / кръстосана таблица (ReportListCrossTable)“:
  • „Попълване на индикатори“ е процедура, която попълва специална таблица „mTableIndicators“. Извиква се в процедурата „Попълнете първоначалните настройки“, преди да отворите отчета
  • “GenerateTitle” - процедура, която генерира заглавна табела

  • „Изходна заглавна колона“ - процедура, която показва заглавката на таблицата
  • “OutputIndicators” - процедура, която показва индикатори в отчетен ред

  • “GetIndicators” - процедура, която получава стойностите на индикаторите за извеждане в таблицата
  • “OutputLine” - показва ред за отчет

Отчетът „Салда и обороти (ReportBalances and Turnovers)“ съдържа следните оформления:
„Оформление“ - е оформление за показване на информация в документа с електронна таблица „Резултат на документа“, състои се от следните раздели:
  • “Header” е хоризонтална секция, която съдържа клетки, в които се извежда информация за името на отчета, периода на генериране, списъка с показваните индикатори и групи.

  • „Обща заглавка на таблица“ - съдържа клетки, в които се показват заглавията на колоните на таблицата. Този раздел включва следните вертикални секции: „Поле“ - показват се имената на групировките и допълнителните полета, „Първоначално салдо“ - индикатори за начален баланс, „Приход“ - индикатори за приходи, „Разходи“ - индикатори за разходи, „Краен баланс“ - показатели за крайно салдо. Разделът включва и хоризонтални подсекции: „Заглавие на таблица“ - включва един ред клетки „Поле“, „Начален баланс“, „Получаване“, „Разходи“, „Краен баланс“, „Долу заглавие на таблица“ - показва имената на допълнителни полета. Ако не е необходимо да се показват допълнителни полета, се показва само секцията „Заглавие на таблица“.
  • „Долен колонтитул“ е хоризонтална секция, използвана като крайна секция при показване на таблица; тя не показва данни, но съдържа плътна линия, като по този начин завършва кантирането на таблицата с плътни линии

  • „Йерархичен ред“ - хоризонталната секция се показва само ако методът за показване на групирането на директории е „по йерархия“, показва група от елементи на директория
  • „Ред“ - хоризонтална секция, линия за групиране на дисплея

  • „Ред с подробности“ е хоризонтална секция, ако настройките показват, че трябва да се показват допълнителни полета, в този ред се показват допълнителни полета
  • „Общи суми“ - хоризонтална секция, в този ред се показват общи суми

  • „Дизайн на размерите“ - хоризонталната секция съдържа дизайна на размерите, ако в настройките е поставена отметка в квадратчето „Цвятни размери (ColorDimensions)“; за показване на групировки и полета на различни нива, настройките за дизайн на клетката от раздела „Дизайн на Използват се размери”.
  • „Детайлен дизайн“ - хоризонталната секция съдържа детайлния дизайн

  • „Параметри на отчета...“ - оформления, в които са посочени настройките на параметрите за показване на отделни отчети. Попълването на първоначалните настройки на отчета по оформление се извиква от функцията „Попълване на първоначалните настройки по оформление“.
В оформлението можете да посочите състава на индикаторите, групировките и полетата за извеждане в отчета; той съдържа два раздела:
  • „Индикатори“ е хоризонтална секция, клетките в която показват състава на индикаторите и параметрите за показване на индикатори в отчета. В този раздел можете също да посочите изчислени показатели

  • “Групиране” - хоризонтална секция, съдържа клетки, изброяващи групировките, показани в отчета
Отчетът CrossTable/Списък с таблици (ReportListCrossTable) съдържа следните оформления:
„Оформление“ - е оформление за показване на информация в табличния документ „Резултат от документа“, състои се от същите секции като оформлението на отчета „Отчети салда и обороти (салда и обороти)“, с изключение на вертикалните секции „Начален Салдо“, „Получаване“, „Разходи“, „Краен баланс“ бяха заменени от секцията „Индикатор“ и беше добавен хоризонтален раздел „Ред на заглавния ред на таблицата“, за да се покажат имената на групировките в реда.

Изграждане на потребителски изходни форми на базата на универсални (общи) отчети

Сега, след като сме запознати със структурата на универсалните отчети, нека разгледаме използването им за изграждане на други изходни форми.
„Салда и обороти (Отчети баланси и обороти)“ (наричани по-долу OiO) и „Списък с кръстосани таблици (ReportListCrossTable)“ (наричани по-долу SCT) са независими отчети, те могат да се използват за получаване на различна информация за всички регистри за натрупване, които са в конфигурацията. Но често има нужда от генериране на по-подробни отчети въз основа на сложни заявки и селекции (ние ще наричаме такива изходни форми персонализирани). За целта се създава отделна изходна форма, в която чрез общи отчети можем да организираме извеждането на необходимата информация.

Основна форма

Нека да разгледаме как персонализираните отчети взаимодействат с общите отчети. Първото нещо, на което трябва да обърнете внимание е, че в данните на отчета има атрибут „GeneralReport“, който е от типа „ReportObject.ReportRemainsAndTurnover“ или „ReportObject.ReportListCrossTable“, този атрибут съдържа екземпляр на общия отчет, подробности за който методи, които използваме за генериране на изходната форма. Основният атрибут на формуляра за персонализиран отчет „Общ отчет“ също има тип O&O или SKT. За да се обърнете към персонализиран обект на отчет, използвайте атрибута на формуляра „ThisReport“.
Структурата на основния формуляр е същата като тази на основния общ отчет:
  • “Команден панел (CommandPanelForms)” - команден панел, съдържа контролни бутони: “Формуляр” - генерира отчет, “Избор” - показва/скрива панела за избор (“Панел за избор”), “Заглавие” - показва/скрива заглавието в документ с електронна таблица (елемент форми "DocumentResult"), "Настройки" - отваря формуляра за настройки на отчета, "SaveValues" - запазва стойностите на настройките на отчета, "RestoreValues" - възстановява стойностите на настройките на отчета, достъп до всички горепосочени бутони можете да получите чрез подменюто "Действия".

  • „Период от: (DataStart)“, „до: (DataCon)“ или „На дата: (DataCon)“ - поле за въвеждане на дата, данните се свързват с детайлите на общия отчет „DataStart“ или „DataCon“
  • “Панел за избор (PanelSelection)” е панел, върху който се поставят елементи за бърз избор. За да настроите селекция, имате нужда от три елемента на формуляр: поле за отметка, поле за избор и поле за въвеждане, името на всеки елемент започва с конкретно име плюс името на селекцията, тъй като то трябва да бъде посочено в инструмента за създаване на отчети:
    o „Квадратче за отметка за настройки…“ - квадратче за отметка, свързано с атрибута за избор „Използване“; когато това квадратче за отметка е избрано, съответната селекция ще бъде активирана в инструмента за създаване на отчети
    o „Поле за тип сравнение...“ - полето за избор, свързано с атрибута за избор „Тип сравнение“, съдържа метод за сравняване на стойността за избор с избраните стойности
    o “Поле за настройки...” - полето за въвеждане, свързано с атрибута за избор “Стойност”, съдържа стойността, по която се извършва филтрирането

  • Пример за употреба:
    Задайте избор според измерението "Номенклатура". Добавяме три елемента на формуляра към панела за избор, като ги наричаме по следния начин: полето за отметка „NomenclatureSettingsCheck“, полето за избор „NomenclatureComparisonViewField“, полето за въвеждане „NomenclatureSettingsField“. Проверяваме дали в манипулатора на събития на формуляра „Преди отваряне“ се изпълнява процедурата „SetLink на полета за бърз избор във формуляра“, която свързва елементите на формуляра с данните за избор на конструктора на отчети. Всичко. Ако данните в отчета съдържат избора „Номенклатура“, тогава можем да управляваме избора в панела за избор, без да извикваме формуляра за настройки на отчета.
  • „Табличен документ (DocumentResult)“ - действителният табличен документ, в който се показват данните от отчета
Когато за първи път отворите персонализиран отчет, се създава екземпляр на обекта „GeneralReport“. Необходимо е ясно да се разбере, че в рамките на персонализиран отчет работим с два обекта „GeneralReport“ - екземпляр на обекта на общия отчет и „ThisReport“ - екземпляр на обекта на персонализирания отчет.
Тоест, ако трябва да извикате процедурата на персонализирания модул за отчет „Fill in InitialSettings()“, след това напишете следната конструкция: „ThisReport.Fill inInitialSettings()“ и да извикате общата процедура за отчет „Fill in the MainAttributeFields() “, напишете „Общ отчет. Попълнете основните полета с подробности ()". Обърнете внимание, че в модула на формуляра, за да извикате процедури за общи отчети, просто посочете името на процедурата, а в модула за потребителски обект на отчет трябва да напишете „Общ отчет“. и името на процедурата.
Пример за използване на персонализиран отчет от директорията „Контрагенти“:
Акаунт = Елементи на формуляр Списък с директории Текущи данни Връзка; Доклад = Доклади Отчет за взаимно разплащане с контрагенти Създай(); Form = Report.GetForm(); Form.ThisReport.FillInInitialSettings(); Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].Usage = True; Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].Value = Account; Ако Account.This е група, тогава Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account "].ComparisonType = ComparisonType.VIierarchy; В противен случай Form.ThisReport.GeneralReport.ReportBuilder.Selection["Account"].ComparisonType = ComparisonType.Equals; endIf; Form.UpdateReport(); Form.Open();
Изброяваме основните процедури и функции на основната форма на потребителски отчет:
  • При инициализиране на формуляра се изпълнява процедурата “Попълване на полетата с основни атрибути”, която попълва полетата и детайлите на основния обект на формуляр. Променливите на формата също са зададени

  • „Показване на актуализация“ - процедура, манипулатор за актуализиране на данни от формуляра
  • Преди отваряне на формуляра се извиква процедурата на персонализирания модул за отчет „Fill InitialSettings“, стойностите на параметрите на формуляра се възстановяват и се осъществява връзката между елементите на формуляра и селекциите на създателя на отчети: „SetLink of QuickFilterFieldsOnForm“

  • “OnOpening” - процедура за обработка на събития при отваряне на формуляр

  • Запазването и възстановяването на параметрите на отчета се извършва чрез следните процедури:
  • „AfterRestoringValues“ - процедура за обработка на събития след възстановяване на запазени стойности, извиква процедурата на модула за отчет „RestoreSettingsFromStructure“
  • “Before SavingValues” - процедура за обработка на събития преди запазване на стойностите, извиква функцията на модула за отчет “GenerateStructureForSavingSettings”, в която се формира структурата на запаметените настройки и се присвоява на атрибута “SavedSettings”

  • Във всички отчети, базирани на O&E или SKT, запазването на параметрите на настройките се изпълнява по следния начин. В свойствата на формуляра посочете „Запазване на стойности“ и в списъка „Запазване на стойности“ изберете атрибута „Запазени настройки“. В манипулатора на събития „Преди запазване на стойности“, „След възстановяване на стойности“, се вмъква код, който извиква процедурите на общия модул за отчет: „GenerateStructureToSaveSettings“ за запазване на настройките и „RestoreSettingsFromStructure“ за възстановяване на настройките на отчета. Структурата на настройките вече е описана в раздела за универсалните отчети
    Пример за употреба:
    След генериране на отчета потребителите могат да коригират ширината на колоните на документа с електронна таблица (чрез натискане на Ctrl + позициониране на ширината с курсора на мишката). В общите отчети масив от ширини на колони се съхранява в променливата mArrayColumnWidths; когато отчетът се актуализира, ширините на колоните се коригират въз основа на данните, съхранени в този масив. Задачата е да запазите масив от ширини на колони при затваряне на отчет и след отваряне на отчета да възстановите ширините на колоните, както са зададени от потребителя преди затварянето. За да направите това, преди да запазите стойностите на формуляра „Before SavingValues“ в структурата „SavedSettings“, добавете масив към манипулатора на събития, който се формира, както следва:
// Трябва да се запомни, ако документът не е такъвАко FormElements.DocumentResult.TableHeight > 0 Тогава празно За Count=1 От FormElements.DocumentResult.TableWidth Loop ArrayColumnWidths.Add(FormElements.DocumentResult.Area(1 ,ColumnWidth); EndCycle; endIf; SavedSettings.Insert(" ArrayWidthColumns", ArrayWidthColumns);
В манипулаторната процедура „AfterValuesRestoration“ въведете следния код:
ThisReport.RestoreSettingsFromStructure(SavedSettings, ShowTitle); SavedSettings.Property(" ArrayWidthColumns", GeneralReport.mArrayofColumnWidths); // Възстановяване на масива от ширини на колони
  • „OnClose“ е процедура за обработка на събития, когато формулярът е затворен. Към тази процедура обикновено се добавят функции за запазване на параметрите на формата.
  • „Обработка на известия“ е процедура за обработка на съобщения. Използва се за актуализиране на елементи за избор във формуляра, ако настройките за избор в създателя на отчети са се променили при извикване на формуляра за настройки

  • „DocumentResultTranscriptProcessing“ е манипулираща процедура за събитието „TranscriptProcessing“ на документното поле на електронната таблица DocumentResult. Извиква процедурата на модула за общ отчет „ProcessingDecryption“
  • Модулът на формуляра също така съдържа манипулатори на процедури за събития на елементи за избор, избор на дата и т.н., съставът на тези манипулатори зависи от типа на потребителския отчет
  • Общи процедури и функции:

    • „Управление на параметрите за показване на елементи на формуляр“ - контролира етикетите на бутоните в лентата с инструменти

    • “UpdateReport” - актуализира отчетната таблица, извиква се, когато щракнете върху бутона “Генериране”, както и когато трябва да премахнете / зададете заглавието на отчета (бутона “Заглавие”), във втория случай се извежда само заглавието на отчета Процедурата съдържа извикване на процедурата на модула за отчети „GenerateReport“
    • “OutputHeader” - процедура – ​​контролира изхода на заглавката, извиква процедурата “GenerateReport” от модула за отчет

    • „GenerateFormHeader“ е процедура, която конфигурира заглавието на формуляра и извиква функцията на общия модул „GenerateMainFormHeader“. Заглавието, върнато от тази функция, се състои от името на отчета, началната и крайната дата на генерирането на отчета. Обикновено „GenerateFormHeader“ извиква манипулатора на събития за актуализиране на дисплея на формуляра

    Модул за отчет

    Нека разгледаме модула за персонализирани отчети. Най-важната процедура на модула за отчет „Попълване на първоначалните настройки“, тази процедура се извиква преди отваряне на формуляра и съдържа команди, които конфигурират списъка с индикатори, групи, селекции и ред, които ще присъстват в отчета:
    • Инициализиране на променливи:
      „FieldRepresentationStructure“ е структура, в която се въвеждат представяния на полета, където ключът е името на индикатора/групирането/полето от източника на данни, а стойността е текстовото представяне на индикатора/групирането/полето.
      Пример за употреба:
      StructureFieldRepresentation.Insert(" Характеристики Номенклатури", "Характеристика на номенклатурата"); StructureFieldRepresentation.Insert(" База документи", "База документи");
      „Масив за избор“ е масив за избор, масив, в който включваме селекции, които присъстват в настройките на отчета по подразбиране.
      Пример за употреба:
      Добавяме две селекции по артикул и склад; тези селекции могат да бъдат свързани с елементи в панела за избор на главната форма. Когато добавяте елементи за бърз достъп до селекции във формуляра за отчет, в настройките на отчета е препоръчително да добавите имената на тези селекции към „Масив за избор“
      Избор Array.Add("Номенклатура"); Избор Array.Add("Warehouse");
    • Параметри на отчета:
      “GeneralReport.RegisterName” - ако генерираме отчет въз основа на конкретен регистър, тогава посочете името на този регистър.
      “GeneralReport.mReportName” - името на отчета, което ще се показва в заглавката на документа на електронната таблица.
      Пример за употреба:
      GeneralReport.RegisterName = " Продукти В Складове"; GeneralReport.mReportName = " Анализ на наличността на стоките в складовете";
    • Заявка за съставител на отчети:
      Отчетите предоставят възможност за генериране на текст на заявка за създателя въз основа на три източника: метаданни за регистриране, метаданни за оформление и директно присвояване на текста на заявката на създателя на отчети.
      - Запитване въз основа на метаданни в регистъра
      Ако сме посочили името на регистъра в „GeneralReport.RegisterName“, тогава чрез извикване на процедурата „Fill in InitialSettingsByRegisterMetadata“ можем да попълним настройките на конструктора на заявки и подробностите на общия отчет
      Пример за употреба:
      Генерира текста на заявка към регистъра “ProductsInWarehouses” и попълва общите детайли на отчета с настройки:
      GeneralReport.RegisterName = " Продукти В Складове"; Попълнете първоначалните настройки въз основа на метаданни на регистъра (структура на представяне на полето, масив за избор, общ отчет, " ListCrossTable");
      - Заявка въз основа на оформлението
      Както е описано в раздела „Универсален дизайн на отчети“, опциите за персонализиране на отчети могат да бъдат зададени в специално проектирано оформление. Удобството на оформлението е, че можете да регулирате показването на индикатори, групи и полета, без да прибягвате до изграждане на заявка чрез конструктора.
      Пример за употреба:
      ReportBuilder = GeneralReport.ReportBuilder; Попълнете InitialSettingsByLayout(GetLayout(" ПараметриОтчетиПродуктиОрганизации"), StructureRepresentationFields, SelectionArray, GeneralReport, " ListCrossTable");
      - Посочване на заявка като източник на данни за съставителя на отчети
      Използвам универсални отчети за генериране на персонализирани изходни формуляри; можете да създадете своя собствена заявка и да посочите нейния текст като източник за създателя на отчети. Този метод е много удобен, защото можете да създавате заявки с всякаква сложност и структура.
      Пример за употреба:
      ReportBuilder.Text = " ИЗБЕРЕТЕ | Продажби Оборот. Номенклатура AS Номенклатура, | SalesTurnover.CostTurnover КАТО CostTurnover |(ИЗБЕРЕТЕ | Номенклатура.*, | SalesTurnover.CharacteristicsNomenclature.* |//СВОЙСТВА |) |ОТ | RegisterAccumulations.Sales.Turnover(&StartDate, &EndDate,) AS SalesTurnover |//CONNECTIONS |GROUP BY | Продажбени обороти. Номенклатура | //ГРУПИРАЙ ПО|(КЪДЕ | Номенклатура.Оборот.Продажби.*, |Оборот.Характеристики.Номенклатура.* |//СВОЙСТВА |//КАТЕГОРИИ |) |(ПОРЕД ПО | Номенклатура.*, |Оборот.Характеристики Номенклатура.* |//СВОЙСТВА |) |РЕЗУЛТАТИ | SUM(РазходиОборот) |PO | ОБЩИ, | Номенклатура |(РЕЗУЛТАТИ ПО | Оборот.Продажби.Номенклатура.*, | Оборот.Продажби.ХарактеристикиНоменклатура.* |//СВОЙСТВА |)"
      Когато създавате заявки, трябва да следвате няколко правила:
      o В заявката можете да посочите два предварително дефинирани параметъра: „Начална дата“ и „Крайна дата“, в които се предава стойността на съответните детайли на отчета. Тези параметри се използват за ограничаване на извадки от данни по период.
      o Докладът винаги трябва да съдържа общи резултати: „РЕЗУЛТАТИ ... ОБЩО“
      o За да можете да управлявате настройките на отчета от формуляра за настройки, трябва да посочите подходящите настройки за създателя на отчети, в къдрави кавички „(“ и „)“ или в раздела „Конструктор“ на дизайнера на заявки.
      o Можете да посочите специални директиви в заявката: “//PROPERTS”, “//CATEGORIES”, “//CONNECTIONS”, “//GROUP BY”. След това, използвайки процедурата „AddToTextPropertiesAndCategories“, към заявката се добавят селекции от полета за свойства и категории обекти.
      Пример за употреба:
      В заявката, дадена по-горе с директивата „//PROPERTIES“, ние показваме, че изборът, групирането и условията по свойствата на обекта трябва да бъдат добавени към текста на заявката, „//CATEGORIES“ - добавяме условие по категория и с помощ на “//CONNECTION” предоставяме връзки към информационния регистър “ObjectPropertyValues”, “//GROUP BY” - групиране по избрани свойства на обекта
    • Процедури за попълване на полетата на инструмента за създаване на отчети:
      След като заявката бъде генерирана, трябва да попълните съответните подробности за създателя на отчети и общия отчет.
      В „Selection Array“ въвеждаме масив от селекции; за да попълним селекциите в инструмента за създаване на отчети, използваме процедурата „Fill Selection“.
      Ако планираме да използваме свойства и категории, трябва да добавим процедурата “AddToTextPropertiesAndCategories”.
      Пример за употреба:
      AddToTextPropertiesAndCategories(FieldTable, Text, StructureFieldRepresentation, mAssignment Matching, StructureParameters, TextInformationSources="", CategoriesFieldText="", PropertyFieldText="", FieldTextGroupBy = "", ReplaceProperties=" //Свойства", ReplaceCategories = "//КАТЕГОРИИ", ReplaceConnections = " //ВРЪЗКИ", ReplaceGroupBy = "//GROUPBY",Идентификатори на параметри за избор по категория = "") Експорт
      За да попълните представяния на полето „FillRepresentationsFields“, можете също да използвате процедурата „FillRepresentations“.
      Пример за употреба:
      FillView("Номенклатура", "Номенклатура", TRUE, TRUE); FillView(" Характеристики Номенклатури", "Характеристика на номенклатурата", НЕВЯРНО, НЕВЯРНО);
    • Допълнителни процедури за създаване на отчет:
      „Изчистване на допълнителни BuilderFields“ е задължителна процедура; тя премахва индикатори и групи от атрибута „Report Builder.SelectedFields“
      “GeneralReport.OutputIndicatorsInLine = True” - показва индикаторите в ред
      “mStructure of Links of Indicators and Dimensions” - попълване на структурата на връзките между индикатори и измерения
      Пример за употреба:
      Необходимо е индикаторът „Остатъчно количество“ да се показва само за размерите „Артикул“ и „Характеристики на артикула“:
      GeneralReport.mStructure of Links of Indicators and Dimensions.Insert(" QuantityRemaining", Нова структура ("Номенклатура, номенклатурни характеристики"));
      Ако трябва да покажете всички резултати, независимо от настройките на структурата „mStructure of Relations of Indicators and Dimensions“, задайте следните подробности:
      Общ доклад. Обобщаване на всички нива = Вярно
      Ако трябва да пропуснете някои групи, тогава трябва да попълните структурата „mStructure of Ignorable Groups“.
      Пример за употреба:
      Трябва да покажем измеренията „Характеристики на номенклатурата“ заедно с измерението „Номенклатура“; за да направите това, добавете следното извикване на функция
      GeneralReport.mStructure of Non-Displayable Groupings.Insert("Nomenclature ",New Structure(" Характеристики Номенклатури"));
      В резултат на това отчетът ще покаже измервания, разделени със запетая: „Елемент, Характеристики на артикул“

    • Други процедури на модула за персонализирани отчети са подобни на тези на универсалните отчети, описани в раздела „Универсални отчети“. Това, на което трябва да обърнете внимание, са параметрите в заявката; преди да генерирате отчета (процедурата „GenerateReport“), трябва да посочите тези параметри за създателя на отчети:
      Пример за употреба:
      ReportBuilder.Parameters.Insert(ParameterName,ParameterValue);

    Заключение

    Използването на OiO и SKT за генериране на персонализирани изходни форми е доста просто; ако правилно съставите заявка в дизайнера и я предадете на създателя, ние ще получим готов отчет. Също така, голямо предимство при използването на общи отчети е унифицирането на извеждането на данни във формата за отчет, гъвкави настройки за групиране, избор и сортиране, представяне на измервания и индикатори.
    Практиката показва, че 90% от функционалността за създаване на всяка персонализирана форма е внедрена в универсални отчети; можете също да вземете готови стандартни отчети като основа и да ги „промените“ според изискванията на клиента.

    Списък с връзки

    По-долу има списък с някои връзки към статии в „Книгата на знанието“ (

    Как бързо да разработите красив отчет с помощта на универсалния отчет в приложните решения 1C

    Конфигурации: BP, UT, UPP и други 1C компании на платформата 8.1

    Тази статия е предназначена за начинаещи и напреднали програмисти.

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

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

    Напоследък използвам Универсален доклад в стандартни решения от 1C.

    Като пример, разгледайте задачата: За приложното решение 1C: Управление на търговията версия 10.3.7.9, създайте отчет, показващ салдата на стоки на избрана дата, по склад (или складове), свободни и в резерв, с цени в избрана цена и сумите на остатъците в избраната цена. Справката позволява избор по склад, артикул и артикулни детайли. Отчетът може да бъде групиран по складове, артикули и подробности за артикулите. В отчета е възможно да се покажат произволни подробности за артикула. Да отбележа, че задачата не е измислена, а е съвсем реална.

    И така, какво представлява Универсалният доклад и какво включва той? Нека отворим конфигурацията, раздел Отчети. Обектът „Универсален отчет“ се намира в секцията с отчети:

    Универсалният отчет е конфигурационен обект, който може да се използва както самостоятелно, така и в други отчети. Този отчет присъства в много фирмени конфигурации на 1C: управление на търговията, счетоводство на предприятието, управление на производствено предприятие и др. Няма нужда да разбирате работата му, просто разберете как може да се използва.

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

    И така, нека запазим този отчет като външен и го отворим в конфигуратора:

    Както можете да видите, този отчет има само един атрибут - Универсален отчет. Нека дадем ново име на нашия отчет - “ Стоки на баланс и в резерв»:

    Нека отворим формата за отчет:

    Формулярът за отчет е абсолютно безличен, дори няма заглавие в заглавката. Но има две дати. Нека обърнем внимание на това, защото имаме нужда от една дата. Но ние не бързаме да премахнем една от датите, това е конфигурирано в модула за отчет, нека го отворим. За да направите това, затворете формуляра и щракнете върху „Действия - Отваряне на обектен модул“. Обектният модул изглежда изненадващо лаконичен, ето го и целият:

    Нека обърнем внимание на редовете в края на модула:

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

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

    Нека намерим функцията InstallInitialSettingsи да видим какво има вътре:

    В началото, както виждаме, има някои настройки за универсалния отчет: какво име да се показва в заглавката, дали да се показват отрицателни в червено и т.н. Това не ни интересува, превъртаме по-нататък, докато намерим заявката . Заявката започва с реда

    RequestText = "...:

    Според условията на задачата се нуждаем от салда от стоки в склада, салда в резерв (това, което е в резерв, задължително трябва да е в някакъв склад) и цени. Без да навлизаме в подробности, структурата на нашата заявка ще бъде следната: основната таблица е таблицата на регистъра за натрупване Стоки в складове, ние прикрепяме таблицата на регистрите за натрупване към него с ляво съединение Артикули в резерви друга таблица - таблицата на информационния регистър Цени на артикулите.

    Бележка 1: Ако някой има въпроси като „Какво е ляво съединение“, тогава тези въпроси са извън обхвата на статията. Предполага се, че читателят знае езика SQL в интерпретацията, в която се използва в платформата 1C 8.1.

    И така, да преминем към искането. Нека преместим мишката върху текста на заявката и натиснете десния бутон на мишката. В контекстното меню изберете Query Builder. Ще се отвори следният прозорец:

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

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

    Нека попълним полетата (дясната страна). От таблица Стоки в складове изберете полетата Наличност, Номенклатура, Характеристика на номенклатурата, Номенклатурни серии, Оставащо количество. От таблицата Стоки в резерв в складове изберете Оставащо количество(това е друг баланс - резерв), от таблицата Цени на артикулите Тип ценаИ Цена:

    Използвайте бутона, за да добавите две нови полета: Количество на складИ Сума в резерв(цената умножена по наличността в склада и наличността в резерва). След като щракнете върху посочения бутон, ще се отвори прозорец, в който можете да конструирате израза, от който се нуждаем:

    Това е сумата в наличност, по същия начин, сумата в резерв:

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

    За таблиците Продукти в складове, Продукти в складове в резерв, Цени на артикулите е необходимо да зададете датите, за които изчисляваме салда и цени. За да направите това, изберете таблицата Стоки в складове и щракнете върху бутона - параметри на виртуална таблица. Ще се отвори прозорецът с опции. В реда Период пишем &DateCon:

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

    Редактираните псевдоними са маркирани в черно. Помним псевдонимите, които сме присвоили на полетата; това ще ни трябва по-късно.

    Нека да установим връзки между таблици в раздела „Връзки“:

    В раздела „Резултати“ изберете числовите полета и сумите ще бъдат изчислени от тях. За поле Цена вземаме максимума, за останалите изчисляваме сумите.

    Сега нека изберем полетата, които ще се използват в настройките на строителя. Нека отидем в раздела "Builder". Разделът „Builder“ съдържа още пет раздела. В раздела „Полета“ изберете полетата, които ще се използват при настройване на отчета. В нашия случай изберете всички полета:

    Отметките в средната колона “Use child” означават, че можем да изберем не само Склад, Артикул и т.н., но и произволно дъщерно поле - Тип склад за склада, ДДС ставка, SKU за артикула и т.н. Можем да използваме деца само за сложни типове данни, но не и за прости (цена, количество, сума).

    В раздела „Условия“ изберете полетата, за които можете да зададете избор. В нашия случай полетата Тип цена, Склад, Номенклатура:

    В раздела „Поръчка“ изберете полетата за поръчка. Изберете полето Номенклатура:

    И накрая, разделът „Резултати“. Нека изберем Склад, Номенклатура - сумите ще бъдат изчислени от тези полета:

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

    Щракнете върху OK - нашата заявка е изпълнена.

    След текста на заявката има настройка за Свойства и Категории. Нека коментираме за простота:

    По-долу има раздел, в който можете да конфигурирате представянето на полета. Да настроим изгледи за полетата Склад, Артикул, Характеристики на артикул, Серия артикул, Тип цена:

    В този случай първото поле е как сме конфигурирали изгледа в раздела „Присъединявания / псевдоними“, второто поле е как ще бъде показано в отчета. Например, характеристиката в заявката е посочена като „Характеристики на артикул“, а представянето ще бъде посочено като „Характеристики на артикул“.

    Да настроим изчисляеми полета - индикатори:

    Като се има предвид това, първото поле е как сме конфигурирали изгледа в раздела Joins/Aliases. Второто поле е как ще се появи в отчета. Трето, този индикатор ще бъде ли активиран по подразбиране? Четвъртият е форматът на полето. Петото и шестото са името на групата и представянето (няколко полета могат да бъдат комбинирани в едно).

    За полето Цена задайте формата на число 15.2, група Цена. За салда - формат 15.3, група Количество. За суми, формат 15.2, група Сума.

    Нека да настроим предварително дефинирани групи:

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

    Сега предварително дефинираните селекции:

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

    И накрая, допълнителни полета. Какво е? Ние посочихме, че ще използваме номенклатура в отчета, и също така посочихме, че ще използваме всички дъщерни полета на това поле. Ако трябва да посочите, че статията ще бъде показана, тогава това ще бъде допълнително поле и ще трябва да напишем:

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

    Всъщност това е всичко. Можем да изготвим отчета. Нека запазим промените и отворим в корпоративния режим:

    Както можете да видите, има една дата и тя не е попълнена (изчислението се прави в края на текущия ден), три предварително дефинирани селекции. Щракването върху бутона „Настройки“ ще отвори настройките:

    Има индикатори, конфигурирани са групировки. И ако кликнете върху бутона „Разширени настройки“, ще видите номера на артикула в допълнителните полета:

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

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

    Забележка 2: В настройките на заявката сме посочили параметъра DateCon. В допълнение към този индикатор има още три предварително дефинирани: Начална дата, Начална дата, Крайна дата. Каква е разликата? StartDate и EndDate са точно дати, първата е началната дата на периода (ако датата е празна, тогава началото на счетоводството), втората е крайната дата на периода (ако датата е празна, тогава краят на текущия ден). DateStart и DateEn са граници на периода (дата + указание за включване или изключване на граничната стойност). Какво означава това? Например, трябва да изберете документи по дати. Ако посочите Document.Date >= &StartDate в текста на заявката, тогава всичко ще бъде наред, но ако сравните не с StartDate, а с StartDate, тогава изпълнението на отчета ще бъде прекъснато с грешка, защото не можете да сравните Boundary и Date ! Таблиците с данни разбират всички тези параметри.

    Забележка 3: Ако отчетът е изграден като нашия На дата, тогава можете да използвате индикаторите DateCon и DateEnd. Индикаторите DateStart и DateStart ще показват началото на поддръжката.

    Бележка 4: В нашия отчет сме задали избора по типове цени. След като помислите малко, ще забележите, че няма смисъл да генерирате отчет, без да изберете Тип цена. Ако забравим да изберем тип цена, отчетът няма да се оплаква, но няма да има голяма полза да видим какво се появява в колоните Цена и Сума. Как да се справим с това? Можете да изберете типа цена в командния панел на формуляра, в областта за избор на дата и да забраните генерирането на справка, без да изберете този параметър. Но как да го посочите в заявката? В параметрите на виртуалната таблица Цените на артикулите посочваме:

    Процедура GenerateReportтрябва да е така:

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

    И последно. Първоначално всичко може да изглежда твърде сложно, но ако съставим план за извършената работа, ще получим следното:

    1. Посочете настройката на периода;
    2. Генерирахме заявка и посочихме кои полета ще конфигурираме с конструктора и как (по кои можем да групираме данните, по които можем да ги сортираме и как могат да се изчисляват резултатите);
    3. Конфигурира представянето на полета;
    4. Задайте първоначалните настройки.

    Както можете да видите, има само четири точки.

    Стъпка 1. Къде е универсалният отчет в 1C 8.3

    Универсалният отчет в 1C 8.3 се извиква чрез секцията Отчети – Универсален отчет:

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

    Стъпка 2. Как да генерираме универсален отчет за намиране на грешки в счетоводството

    Има ситуации, когато бизнес транзакция е завършена с помощта на транзакция, въведена ръчно: сумата в сметка 68.02 е отразена, но не са направени движения в регистъра за натрупване на ДДС на покупките. В резултат на това сумата в книгата за покупки не съвпада със сумата в баланса за сметка 68.02.

    важно! За да разберете кой регистър да използвате за генериране на универсален отчет в 1C 8.3, трябва да преминете през блок-схемата, представена по-долу, и да разберете в резултат на кой документ можете да намерите необходимия регистър:

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

    Стъпка 3. Как да настроите универсален отчет в 1C 8.3

    Нека конфигурираме отчета, както следва, като щракнете върху бутона Показване на настройките:

    • В раздела Групиране използвайте бутона Добавяне, за да добавите редовете Организация и Регистратор. В същото време добавихме групиране по организация, за да видите общата сума по организация за лесно сравнение с общата сума в картата:

    • В раздела Избор задайте избора за желаната организация, като използвате бутона Добавяне:

    В резултат на това отчетът ще изглежда така:

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

    Ето примерна таблица с регистри, които е препоръчително да проверите, ако се открие грешка в определен счетоводен раздел:

    внимание! Много често не е достатъчно да коригирате един регистър: може би грешката няма да изчезне, а ще стане по-скрита и проблематична. В особено трудни случаи ще е необходимо да коригирате набор от регистри и в този случай е по-добре да дадете базата данни 1C 8.3 на специалист 1C програмист за анализ.

    Стъпка 4. Как да коригирате намерената грешка

    В нашия пример в картата на сметката 68.02 имаше „допълнителен“ документ Транзакция, въведен ръчно, който генерира суми в счетоводните сметки, но не генерира движения в регистъра за натрупване на ДДС покупки и не попадна в книгата за покупки. Тоест в този случай трябва да добавите движение по този регистър в този документ. Как да направите това е описано подробно в.

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

    Стъпка 5. Как да използвате универсалния отчет в 1C 8.3

    Универсален отчет в 1C 8.3 може да бъде изграден с помощта на директории, информационни регистри, документи и счетоводни регистри.

    Според счетоводния регистър

    Например, вместо карта на сметка, можете да генерирате Универсална справка за счетоводни регистри със следните настройки:

    За да не претрупвате отчета в раздела Индикатори, премахнете отметките от квадратчетата за ненужни индикатори:

    Използване на следните команди за управление на прозорци:

    Можете да поставите прозорците на отчетите един до друг за лесно сравнение на данни:

    По информационен регистър

    Например в 1C 8.3 е необходимо да се намери информация за служители, които вече имат открити лични банкови сметки за превод на заплати.

    Ще генерираме Универсална справка за едноименния информационен регистър, като направим следните настройки:

    Ако в базата данни 1C 8.3 има няколко организации, можете да зададете избора за желаната организация в раздела Избор. Получаваме тази опция:

    Според справочника

    Да предположим, че трябва да получите списък на купувачите с техните адреси и телефонни номера от базата данни 1C 8.3. Нека направим следните настройки:

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


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

    В резултат на това получаваме такъв отчет:

    Как работи универсалният отчет в 1C

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

    Въпрос No1

    Как да направите селекция в универсален отчет само за конкретен купувач и да разберете колко от определена (определена) продуктова гама му е продадена?

    Отговор: При осчетоводяване на документ за продажба (акт, фактура) в 1C 8.3 се формират движения в счетоводния регистър и ДДС Продажби (ние не го приемаме в случай на отделно счетоводство по ДДС). Няма анализи за стоки в регистъра Продажби по ДДС, така че ще трябва да вземете данни от счетоводния регистър.

    В този случай универсалният отчет е конфигуриран, както следва:

    • Месечен цикъл;
    • Счетоводен регистър;
    • Журнал за осчетоводяване (счетоводен и данъчен);
    • Подконто движения:
    1. След това щракнете върху бутона Показване на настройките и добавете следните стойности в раздела Избор:
    • Сметка Dt – Равно на – 62.01;
    • Сметка Kt – Равно на – 90.01.1:

    1. В раздела Групиране се добавят следните стойности:
    • Подконто 1 Dt;
    • Подконто 3 Kt:

    1. След тези настройки трябва да щракнете върху бутона Генериране и универсалният отчет в 1C 8.3 ще бъде изграден в необходимата форма:

    Въпрос No2

    Разходите не включват заплати, данъци и вноски. Тези разходи не се виждат в КУДиР. Опростената данъчна система за плащане се изчислява без тези разходи. Как да намерите грешка с помощта на универсалния отчет?

    Отговор:Нека изградим анализ в Универсалния отчет въз основа на регистъра за натрупване на разходи по опростената данъчна система. В този случай универсалният отчет е конфигуриран, както следва:

    1. В заглавката на отчета за избор на информация са посочени следните стойности:
    • Месечен цикъл;
    • Разходи по опростената данъчна система;
    • Салда и оборот:
    • Вид разход;
    • Елемент на потребление:

    1. В раздела Индикатори стойностите трябва да бъдат зададени, както е показано на фигурата:

    От отчета виждаме, че някои разходи в графата Отражение в НУпосочен като Не се приема. Това означава, че тези разходи няма да бъдат включени автоматично от програмата в КУДиР и е допусната грешка при въвеждане на документи. Необходимо е да се коригират анализите в такива документи, т.е. разходната позиция трябва да има стойността Прието в NU, както е показано на фигурата:

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

    Въпрос #3

    В КУДиР разходите по НУ не включват себестойността на продадените стоки. Как да намерите грешка с помощта на универсалния отчет?

    Отговор:В 1C 8.3 разходите се приемат в KUDiR в съответствие с условията, определени в счетоводната политика. При продажба на стоки в съответствие с Данъчния кодекс на Руската федерация следните условия са: стоките трябва да бъдат капитализирани, плащането за тях трябва да се извърши на доставчика и продажбата на тези стоки трябва да бъде отразена. Когато и трите условия са изпълнени, разходите ще бъдат включени в КУДиР.

    Нека да изградим универсален отчет в 1C 8.3 за регистъра за натрупване на разходи по опростената данъчна система и да изясним условията, които не са изпълнени за приемане като разходи в NU. В този случай универсалният отчет е конфигуриран, както следва:

    1. В заглавката на отчета за избор на информация са посочени следните стойности:
    • Месечен цикъл;
    • Счетоводен регистър на натрупване;
    • Разходи по опростената данъчна система;
    • Салда и оборот:
    1. След това щракнете върху бутона Показване на настройките и добавете следните стойности в раздела Групиране:
    • Вид разход;
    • Елемент на потребление:

    1. В раздела Индикатори стойностите трябва да бъдат зададени, както е показано на фигурата:

    1. След тези настройки трябва да кликнете върху бутона Генериране и отчетът ще бъде изграден в необходимата форма:

    Видно от отчета, причината разходите за закупени стоки да не попадат в КУДиР е липсата на плащане към доставчика на стоките.

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

    Въпрос #4

    Как да видите цената на получаване на стоки в 1C Enterprise 8.3 (8.3.8.1964) с помощта на универсалния отчет?

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

    1. В заглавката на отчета за избор на информация са посочени следните стойности:
    • Месечен цикъл;
    • документ;
    • Разписка (актове, фактури);
    • Стоки:
    1. След това щракнете върху бутона Показване на настройките и в раздела Групиране добавете стойността на номенклатурата:

    1. В раздела Индикатори стойностите трябва да бъдат зададени, както е показано на фигурата:

    1. След тези настройки трябва да кликнете върху бутона Генериране и отчетът ще бъде изграден в необходимата форма:

    ВНИМАНИЕ!Моля, имайте предвид, че не всеки проблем може да бъде разрешен с помощта на универсалния отчет. Основното му неудобство е, че работи САМО с един обект на анализ: указател, документ, счетоводен регистър, информационен регистър или натрупващ регистър.

    Не проследява сложни връзки между обекти. За целта има специален DCS инструмент – Data Composition System. С негова помощ програмисти и опитни потребители могат да генерират сложни отчети, да избират необходимата информация и да добавят свои собствени полета за изчисление.