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

Описание на функцията "Форматиране".

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

FormattedValue = Format(VariableForFormatting, TextFormatString);

Ако параметърът "FormatString" не е зададен, тогава 1C преобразува посочената стойност в низ. Имайте предвид, че празна дата и 0 ще бъдат преобразувани в празен низ, което може да не се хареса на потребителите. Всеки параметър във форматиращия низ е комбинация от името, символа "=" и стойността, посочена в кавички. Това ви позволява да включите знаците, използвани при писане на форматиращия низ на функцията Format в 1C.

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

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

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

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

Основни опции за форматиране на низове

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

  • L е форматът на държавата, за чиито представители ще се показват данните;
  • ChG - задава групирането на цифрите на числото;
  • FZ - задава общия брой групи от знаци на целите и дробните части на числото, които ще бъдат показани. Ако стойността на параметъра NPV не е посочена във форматния низ с този ключ, тогава дробната част няма да бъде показана;
  • FDC е параметър, който указва броя на знаците в частта от числото след десетичната запетая. Закръгляването се извършва съгласно стандартните правила на математиката;
  • CHS е параметър, който измества цифрите на число. Стойността може да бъде положителна - умножение по 10, или отрицателна - деление. Полезен екип, ако трябва да извеждате в една форма и да продължите да работите с число в друга;
  • FRD - задава символа, който разделя дробната и целите части на числото. За да зададете знака, който разделя групи от цяла част, използвайте "CHG". За да използвате неразделен интервал, използвайте празен низ;
  • FHN - показва използването на водещи нули. Стойността на този параметър не е зададена;
  • DF е една от най-често срещаните опции за форматиране на низове. Управлява формата на датата. В 1C, използвайки командата "Формат", можете да покажете датата в почти всеки формат, включително да напишете името на месеца. Възможни стойностимного, техният списък може да се види в асистента за синтаксис;
  • BL и BI - задайте представянето за логическия тип данни, отговаряйки съответно за false и true. По този начин можете да замените стандартната „отметка“ с всяка дума или фраза, която е по-разбираема за потребителите.

Универсалността и удобството на конструктора се превърнаха в ключови причини за популярността на функцията "Формат" сред разработчиците на 1C. Гъвкавите настройки ще ви помогнат да зададете всякакви външен видданни по желание на клиента.

Подробно описание. Щракнете за разширяване

Форматиране на низе низова стойност, която включва опции за форматиране.

Опциите за форматиране са изброени чрез символа ";". Наличието на параметъра означава, че форматирането е различно от стандартното.

Ако параметърът не е зададен, тогава се прилага стандартно форматиране, което основно съответства на преобразуването на стойността в низ. Въпреки това, за стойности от тип Number и Date, стойностите по подразбиране (съответно 0 и 01.01.0001 00:00:00) ще върнат празен низ.

Всеки параметър се определя от името на параметъра, символа „=“ и стойността на параметъра. Стойността на параметъра може да бъде зададена в единичен или двойни кавички. Това е необходимо, ако стойността на параметъра съдържа знаци, използвани в синтаксиса на форматния низ.

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

Имена и стойности на параметрите на форматния низ:

  • L - името на езика, страната, за която ще се извърши стандартното форматиране.
  • CHC - общ бройпоказани десетични знаци на цели и дробни части. След това първоначалното число се закръгля в съответствие с правилата за закръгляване. Ако този параметър е посочен, тогава за показване на дробната част от числото трябва да бъде посочен параметърът NPV, в противен случай дробната част няма да бъде показана.
  • NDC - броят на десетичните знаци в дробната част. След това първоначалното число се закръгля в съответствие с правилата за закръгляване.
  • CHS - битово изместване: положително - деление, отрицателно - умножение. С други думи, това означава, че първоначалното число ще бъде умножено или разделено на 10*C, където C е модулната стойност на параметъра.
  • FRD е символът-разделител на целите и дробните части.
  • CHRG - знак-разделител на групи от цялата част на числото. Ако празен низ се използва като разделител, тогава разделителят ще бъде непрекъсващ интервал.
  • CH е низ, представляващ нулева стойностчисла. Ако не е зададено, представянето е празен низ. Ако е зададено “PN=”, то във формата “0”. Не се използва за цифрови полета за въвеждане.
  • FHN - дали да се извеждат водещи нули. Стойността на този параметър не е зададена, действителното присъствие на параметъра определя изхода на водещите нули.
  • CHG - редът на групиране на цифрите на числото. Като стойност се посочват числа, разделени със запетаи, указващи броя на групираните цифри отдясно наляво. Само първите две числа имат смисъл. Първият от тях показва основното групиране, т.е. това, което ще се използва за най-малко значимите цифри от цялата част на числото. Ако второто число не е посочено, тогава ще бъдат групирани само най-малко значимите цифри. Ако 0 е посочено като второ число, тогава стойността, посочена за първичното групиране, ще бъде приложена към всички цифри от цялата част на числото. Ако като второ число се използва стойност, различна от 0, тогава тази стойност ще се използва за групиране на всички цифри, с изключение на вече групираните най-малко значими.
  • CHO е представяне на отрицателни числа.
    • 0 (0) – низ като „(1,1)“;
    • 1 (1) – низ като „-1,1“;
    • 2 (2) – низ като „- 1.1“;
    • 3 (3) – низ като „1,1-“;
    • 4 (4) – низ като „1,1 -“.
  • DF е форматът на датата.
    • e – ден от месеца (в цифри) без водеща нула;
    • дд – ден от месеца (в цифри) с водеща нула;
    • dd е краткото име на деня от седмицата;
    • dddd - пълно име на деня от седмицата;
    • М – номер на месеца (в цифри) без водеща нула;
    • MM – номер на месеца (в цифри) с водеща нула;
    • МММ - кратко име на месеца;
    • MMMM е пълното име на месеца;
    • k - номерът на тримесечието в годината;
    • d – номер на година без век и водеща нула;
    • yy – номер на година без век с водеща нула;
    • yyyy - номер на година със век;
    • h - час в 12-часов вариант без водещи нули;
    • hh - час в 12-часов вариант с водеща нула;
    • H – час в 24-часов вариант без водещи нули;
    • HH (HH) - час в 24-часов вариант с водеща нула;
    • m – минута без водеща нула;
    • mm – минута с водеща нула;
    • s – секунда без водеща нула;
    • ss - секунда с водеща нула;
    • bb - Показва половината от деня AM/PM (валидно само за езици за конфигурация, които поддържат 12-часово представяне на времето).
  • DLF е местният формат за дата. Указва опцията за показване на части от датата.
    • D - дата (в цифри);
    • DD - дълга дата (месец с думи);
    • B - пълен работен ден, датата може да се комбинира с час;
    • DV - дата час.
  • DP е низ, представляващ празна дата (например Format('00010101000000' ,DP=””празна дата”””) ще върне низа “празна дата”).
  • BL е низ, представляващ булево Лъжа.
  • BI - низ, представляващ булева стойност Вярно.

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

Вероятно най-известният пример е различното представяне на времето - в Русия е прието да се използват 9:00 и 21:00, а в англоговорящите страни 9 сутринта и 9 вечерта. Разликата е както в логиката (12-часова система или 24-часова система), така и в писмеността.

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

Какво е форматиране

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

Основните разлики между форматите 1C за представяне на числа и дати:

  • Номер
    o "." или "," за разделяне на дробната част
    o брой знаци след десетичната запетая
    o групиране на цифри в тройки (1 000 000, а не 1 000 000)
  • дата и час
    o година, месец, ден
    o разделителен знак
    o 1C формат на времето (12 или 24 часа)
    o подробности за правописа.

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

Принцип на форматиране

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

Например, когато преобразувате число в низ, то се превежда, като се вземе предвид групирането на цифри (и вие очаквате това?):
Номер на низ = AbbrLp(2400); //ще бъде равно на "2 400"

За точно определяне на формата на езика 1C има функция Format (), с която е възможно да се посочи необходимото представяне.
NumberString = Format(2400, "Настройки")

Като ред "Настройки" трябва да посочите необходимия формат 1C. Такива настройки са посочени в специален кодиран формуляр. Помислете за най-често използваните настройки:

Форматирайте 1С дата и номер по подразбиране

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

L = Кратко име на желаната държава

Пример за показване на дата според правилата на някои държави:
Формат (CurrentDate(), "L=ru")
> 28.03.2012 14:21:32

Формат(CurrentDate(), "L=en")
> 28.03.2012 г. 14:21:24 ч

Формат(CurrentDate(), "L=fr")
> 28/03/2012 14:22:08

Както не е трудно да се види, имената на държавите са интуитивни.

Формат на датата на езика 1C

Ако настройката по подразбиране не ви е достатъчна и искате да посочите реда на частите на датата и символите за тяхното разделяне, трябва да използвате настройката:
DF = "dmg hms"

Съответно "dmg" е ден, месец и година, а "hms" е час, минути и секунди. Всяка от тези части може да бъде пропусната. Редът е всякакъв. Знаците, посочени между частите, ще се използват като разделителни знаци.

Характерът на част от датата може да бъде посочен няколко пъти подред, появата на тази част от датата зависи от това, например "d" или "dd" или "dddd".

Дешифриране на части от датата:

  • d - ден
    о малко "d"
  • M - месец
    о голямо "М"
    o може да се посочи от 1 до 4 пъти
  • d - година
    o малко "g"
    o може да бъде изброено 1, 2 или 4 пъти
  • h - часове
    o малко "h" - 12 часов формат
    o голямо "H" - 24 часов формат
  • m - минути
    о малко "м"
    o може да се посочи 1 или 2 пъти
  • s - секунди
    o малко "s"
    o може да се посочи 1 или 2 пъти
  • bb - Дисплей AM/PM за 12-часов формат
  • k - четвърт.

Пример за показване на дата с правила:
Format(CurrentDate(), "DF=""dd.MM.yyyy hh:mm:ss""")
> 28.03.2012 02:44:44

Формат (Текуща дата(), "DF="" M / d /yyy h:m:s dd""")
> 28.03.2012 г. 14:44:44 ч

Формат (Текуща дата(), "DF=""дд/ММ/гггг чч:мм:сс""")
> 28/03/2012 02:44:44

Числов формат на езика 1C
За разлика от форматирането на дата, където всичко е доста просто, има много опции за форматиране на числа. Ще разгледаме тези, които намерихме за полезни - тоест, според нас, те се използват често.

Първият "проблем" е свързан с групирането по подразбиране на цифрите в числа от 3 и разделянето на групите с интервал, например:
StrNumber = String(22300500)
> 22 300 500

Това е неудобно, когато числото се преобразува в низ не за красив и разбираем изход за потребителя, а за нуждите на услугата. Това може да бъде повлияно от параметъра "CH", например:

Формат (22300500, "HH=100")
>22300500 //премахна напълно нулите

Формат (22300500, "HH=6")
> 22 300500 //направи групиране само от милиони

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

Формат (3,535353, "NPV=""2""")
> 3,54

Параметър, който ви позволява да посочите разделителния знак за целите и дробните части на "BRD":

Формат (3.535353, "BRD="".""")
> 3.535353

В някои случаи може да бъде полезно да можете да показвате нещо друго вместо числото "0": празен низ или "не е попълнено". Това ви позволява да направите параметъра "CHN":

Формат (0, "HN=""""")
>

Форматиране на 1C полета във формуляра

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

Например, потребителят работи с формуляра. Формата има поле, което показва датата. Ние можем да повлияем на представянето на тази дата.

Отворете свойствата на това поле. За да направите това, щракнете върху дебелия клиент Кликнете с десния бутонна полето, а в тънкия - щракнете с десния бутон върху името на полето в списъка с полета, изберете Свойства.
Полето има свойство "Форматиране".

Щракнете върху бутона „…“, за да го настроите. За да настроите формата на датата, използвайте раздела Дата (за число използвайте раздела Число). Можете да изберете желания формат от списъка.

Форматирайте 1C клетки в печатна форма

Когато трябва да проектирате печатен формуляр (печат на отчет или документ), можете да зададете формат на клетка по абсолютно същия начин, както за поле на документ.
Избираме клетка (или няколко клетки едновременно), отиваме в свойствата, свойството "Формат", избираме необходимия формат.

Формат 1C в SKD

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

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

В режим Enterprise изберете елемента от менюто на формуляра за отчет "Промяна на вариант". В ACS отчета в дебелия клиент този елемент е в менюто "Действия/Настройки".

В отворената форма на всички настройки на ACS има раздел "Условно форматиране". Добавете нов ред. Линията има три колони:

  • Декор. Посочете необходимия 1C формат - шрифт, фон или цвят на текста, 1C формат за показване на числа и дати
  • Състояние. Ако този дизайн се използва винаги, оставете това поле празно. В противен случай посочете полето и неговата стойност. Тогава форматирането ще се прилага само в тези редове, в които тези стойности съвпадат. Ако трябва да посочите стойностите на няколко полета едновременно и условията "и/или", добавете група и групирайте полетата с помощта на групи.
  • Оформени полета. Списък с полета, за които ще се приложи форматиране.

1C формат в управлявани форми

Същите правила за форматиране се прилагат за всеки управляван формуляр за списък на клиенти. Във формуляра за списък изберете елемента от менюто „Всички действия / Конфигуриране на списък“.

Разделът Условно форматиране.

Изберете желания дизайн и формат.

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

Настроики:

<Значение>

Стойността за форматиране.

<ФорматнаяСтрока>

Форматиращият низ е низова стойност, която включва опции за форматиране.

Опциите за форматиране са изброени чрез знака ";". Наличието на параметъра означава, че форматирането е различно от стандартното.

Ако параметърът не е зададен, тогава се прилага стандартно форматиране, което основно съответства на преобразуването на стойността в низ. Въпреки това, за стойности от тип Number и Date, стойностите по подразбиране (съответно 0 и 01.01.0001 00:00:00) ще върнат празен низ.

Всеки параметър се определя от името на параметъра, символа "=" и стойността на параметъра. Стойността на параметъра може да бъде зададена в единични или двойни кавички. Това е необходимо, ако стойността на параметъра съдържа знаци, използвани в синтаксиса на форматния низ.

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

Имена и стойности на параметрите на форматния низ:

  • L - името на езика, страната, за която ще се извърши стандартното форматиране.
  • CC - общият брой показани десетични знаци на целите и дробните части. След това първоначалното число се закръгля в съответствие с правилата за закръгляване. Ако този параметър е посочен, тогава за показване на дробната част от числото трябва да бъде посочен параметърът NPV, в противен случай дробната част няма да бъде показана.
  • NDC - броят на десетичните знаци в дробната част. След това първоначалното число се закръгля в съответствие с правилата за закръгляване.
  • CHS - битово изместване: положително - деление, отрицателно - умножение. С други думи, това означава, че първоначалното число ще бъде умножено или разделено на 10*C, където C е модулната стойност на параметъра.
  • FRD - символът-разделител на целите и дробните части.
  • CHRG - знак-разделител на групи от цялата част на числото. Ако празен низ се използва като разделител, тогава разделителят ще бъде непрекъсващ интервал.
  • CHN - низ, представляващ нулевата стойност на число. Ако не е зададено, представянето е празен низ. Ако е указано "HN=", тогава под формата на "0". Не се използва за цифрови полета за въвеждане.
  • FHN - дали да се извеждат водещи нули. Стойността на този параметър не е зададена, действителното присъствие на параметъра определя изхода на водещите нули.
  • ChG - редът на групиране на цифрите на числото. Като стойност се посочват числа, разделени със запетаи, указващи броя на групираните цифри отдясно наляво. Само първите две числа имат смисъл. Първият от тях показва основното групиране, т.е. това, което ще се използва за най-малко значимите цифри от цялата част на числото. Ако второто число не е посочено, тогава ще бъдат групирани само най-малко значимите цифри. Ако 0 е посочено като второ число, тогава стойността, посочена за първичното групиране, ще бъде приложена към всички цифри от цялата част на числото. Ако като второ число се използва стойност, различна от 0, тогава тази стойност ще се използва за групиране на всички цифри, с изключение на вече групираните най-малко значими.
  • CHO - представяне на отрицателни числа.
    • 0 (0) - низ като "(1,1)";
    • 1 (1) - низ като "-1,1";
    • 2 (2) - низ като "- 1,1";
    • 3 (3) - низ като "1,1-";
    • 4 (4) - низ като "1,1 -".
  • DF - формат на датата.
    • d - ден от месеца (в цифри) без водеща нула;
    • дд - ден от месеца (в цифри) с водеща нула;
    • ddd - кратко име на деня от седмицата;
    • dddd - пълно име на деня от седмицата;
    • M - номер на месеца (в цифри) без водеща нула;
    • MM - номер на месеца (в цифри) с водеща нула;
    • МММ - кратко име на месеца;
    • MMMM - пълното име на месеца;
    • k е номерът на тримесечието в годината;
    • d - номер на годината без век и водеща нула;
    • yy - номер на година без век с водеща нула;
    • yyyy - номер на година със век;
    • h - час в 12 часов вариант без водещи нули;
    • hh - час в 12 часов вариант с водеща нула;
    • H - час в 24-часов вариант без водещи нули;
    • HH (HH) - час в 24 часов вариант с водеща нула;
    • m - минута без водеща нула;
    • mm - минута с водеща нула;
    • s - секунда без водеща нула;
    • ss - секунда с водеща нула;
    • вв - показване на половината от деня AM/PM (валидно само за конфигурационни езици, които поддържат 12-часово представяне на времето).
  • DLF - локален формат за дата. Указва опцията за показване на части от датата.
    • D - дата (в цифри);
    • DD - дълга дата (месец с думи);
    • B - пълен работен ден, датата може да се комбинира с час;
    • DV - дата час.
  • DP е низ, представляващ празна дата (например Format("00010101000000" ,"DP=""empty date""") ще върне низа "empty date").
  • BL - низ, представляващ булева стойност Лъжа.
  • BI - низ, представляващ булева стойност Вярно.