Hlavní datové typy v 1C - číslo, boolean a datum, mohou být reprezentovány v mnoha formátech. Programátoři se často potýkají s tím, že požadavky na typ dat se v různých sestavách a tabulkách velmi liší. Vývojáři 1C mysleli na pohodlí programátorů a vytvořili speciální funkci, která výrazně usnadňuje proces změny vzhledu dat. Hlavním úkolem funkce je převést číslo, datum nebo booleovský typ do požadovaného tvaru řetězcového typu.

Popis funkce "Formátovat".

Syntaxe této funkce je jednoduchá – jako parametry můžete předat dva parametry. Nejprve vývojář určí hodnotu, která má být formátována. Aby 1C pochopil, jak změnit hodnotu, programátor specifikuje druhý parametr jako řetězcovou hodnotu obsahující předdefinované operandy. Právě hodnota tohoto řádku určuje, jak uživatelé uvidí data v přehledu.

FormattedValue = Format(VariableFormatting, TextFormatString);

Pokud parametr "FormatString" není nastaven, 1C převede zadanou hodnotu na řetězec. Mějte na paměti, že prázdné datum a 0 budou převedeny na prázdný řetězec, což se uživatelům nemusí líbit. Každý parametr ve formátovacím řetězci je kombinací názvu, symbolu "=" a hodnoty uvedené v uvozovkách. To vám umožní zahrnout znaky používané při psaní formátovacího řetězce funkce Formát v 1C.

Do zobrazení dat můžete vložit jakýkoli znak kromě těch, které se používají v syntaxi zápisu formátovacího řetězce. Pokud je potřeba toto omezení obejít, použijte jednoduché uvozovky. Toto řešení také pomůže v situacích, kdy může být symbol nesprávně interpretován kompilátorem.

Pro pohodlí vývojářů má 1C vestavěný konstruktor formátovacích řetězců. Lze k němu přistupovat v modulech přes kontextová nabídka nebo v ACS prostřednictvím míst poskytnutých vývojáři. Takovou příležitost lze například nalézt v seznamu polí pro požadavek v sekci „Návrh“.

Nejdůležitější výhodou konstruktoru je, že okamžitě vidíte, jak budou vaše data nakonec vypadat. Po odeslání potřebná nastavení pro konkrétní typ dat v části "Příklad" se zobrazí výsledek vašeho nastavení. V nepojmenovaném textovém poli dole najdete formátovací řetězec použitý k získání výsledku. Lze jej zkopírovat a použít v budoucnu, pokud vám výsledek zcela vyhovuje.

Konstruktor formátovacího řetězce může být velkým pomocníkem pro začínající vývojáře, ale zkušení programátoři s ním raději neztrácejí čas. Vývoj půjde mnohem rychleji, pokud znáte základní klíčové parametry formátovacího řetězce a používáte je bez volání konstruktoru.

Základní možnosti formátovacího řetězce

Naučit se všechny dostupné příkazy nebude fungovat a není to nutné. Vývojář potřebuje znát pouze některé oblíbené operace a jak je aplikovat. Úplný seznam parametrů formátovacího řetězce můžete kdykoli otevřít v asistentovi syntaxe a vybrat ten, který potřebujete. Následující parametry mohou být užitečné pro programátora 1C v každodenní práci:

  • L je formát země, pro jejíž zástupce budou data zobrazena;
  • ChG - nastavuje seskupení číslic čísla;
  • FZ - nastavuje celkový počet skupin znaků celého čísla a zlomkové části čísla, které se zobrazí. Pokud není hodnota parametru NPV uvedena ve formátovacím řetězci s tímto klíčem, pak se zlomková část nezobrazí;
  • FDC je parametr, který určuje počet znaků v části čísla za desetinnou čárkou. Zaokrouhlování probíhá podle standardních pravidel matematiky;
  • CHS je parametr, který posouvá číslice čísla. Hodnota může být kladná – násobení 10, nebo záporná – dělení. Užitečný tým, pokud potřebujete výstup v jednom formuláři a pokračovat v práci s číslem v jiném;
  • FRD - nastavuje symbol, který odděluje zlomkovou a celočíselnou část čísla. Chcete-li nastavit znak, který odděluje skupiny celočíselné části, použijte "CHG". Chcete-li použít pevnou mezeru, použijte prázdný řetězec;
  • FHN - ukazuje použití úvodních nul. Hodnota tohoto parametru není nastavena;
  • DF je jednou z nejběžnějších možností formátovacího řetězce. Řídí formát data. V 1C pomocí příkazu "Formát" můžete zobrazit datum téměř v jakémkoli formátu, včetně zápisu názvu měsíce. Možné hodnoty hodně, jejich seznam lze vidět v asistentu syntaxe;
  • BL a BI - nastavení reprezentace pro logický datový typ, resp. odpověď pro nepravda a pravdivá. Standardní „zaškrtnutí“ tak můžete nahradit libovolným slovem nebo frází, která je pro uživatele srozumitelnější.

Univerzálnost a pohodlí konstruktéra se staly klíčovými důvody popularity funkce „Formát“ mezi vývojáři 1C. Flexibilní nastavení vám pomůže nastavit jakékoli vzhledúdaje na žádost klienta.

Detailní popis. Kliknutím rozbalíte

Formátovat řetězec je řetězcová hodnota, která zahrnuje možnosti formátování.

Možnosti formátování jsou uvedeny pomocí symbolu ";". Přítomnost parametru znamená, že formátování je odlišné od standardního.

Pokud parametr není uveden, použije se standardní formátování, které v podstatě odpovídá převodu hodnoty na řetězec. Pro hodnoty typu Číslo a Datum však výchozí hodnoty (0 a 01.01.0001 00:00:00) vrátí prázdný řetězec.

Každý parametr je určen názvem parametru, symbolem „=“ a hodnotou parametru. Hodnotu parametru lze zadat v jednoduchém nebo dvojité uvozovky. To je vyžadováno, pokud hodnota parametru obsahuje znaky použité v syntaxi formátovacího řetězce.

Uvnitř hodnoty parametru lze zadat libovolné znaky, které se zobrazí tak, jak jsou při vytváření výsledného řetězce. Při formátování tak můžete například zadat oddělovače pro hodiny, minuty a sekundy. Pokud se tyto znaky shodují s hodnotami formátovacího řetězce, musí být uzavřeny v jednoduchých uvozovkách.

Názvy a hodnoty parametrů formátovacího řetězce:

  • L - název jazyka, země, pro kterou bude provedeno standardní formátování.
  • CHC - celkový počet zobrazená desetinná místa celých a zlomkových částí. Původní číslo se pak zaokrouhlí v souladu s pravidly zaokrouhlování. Pokud je tento parametr zadán, pak pro zobrazení zlomkové části čísla musí být zadán parametr NPV, jinak se zlomková část nezobrazí.
  • NDC - počet desetinných míst ve zlomkové části. Původní číslo se pak zaokrouhlí v souladu s pravidly zaokrouhlování.
  • CHS - bitový posun: kladné - dělení, záporné - násobení. Jinými slovy to znamená, že původní číslo bude vynásobeno nebo vyděleno 10*C, kde C je modulo hodnota parametru.
  • FRD je symbol-oddělovač celých a zlomkových částí.
  • CHRG - znakový oddělovač skupin celé části čísla. Pokud je jako oddělovač použit prázdný řetězec, bude oddělovačem nerozdělitelná mezera.
  • CH je řetězec představující nulová hodnotačísla. Pokud není nastaveno, reprezentace je prázdný řetězec. Pokud je nastaveno „PN=“, pak ve tvaru „0“. Nepoužívá se pro numerická vstupní pole.
  • FHN - zda vypisovat úvodní nuly. Hodnota tohoto parametru není nastavena, skutečná přítomnost parametru určuje výstup úvodních nul.
  • ChG - pořadí seskupování číslic čísla. Jako hodnota jsou uvedena čísla oddělená čárkami, které udávají počet seskupených číslic zprava doleva. Pouze první dvě čísla dávají smysl. První z nich označuje primární seskupení, tedy to, které bude použito pro nejméně významné číslice celé části čísla. Pokud druhé číslo není uvedeno, budou seskupeny pouze nejméně významné číslice. Pokud je jako druhé číslo zadáno 0, pak se hodnota určená pro primární seskupení použije na všechny číslice celé části čísla. Pokud je jako druhé číslo použita jiná hodnota než 0, bude tato hodnota použita pro seskupení všech číslic, kromě těch nejméně významných, které jsou již seskupeny.
  • CHO je reprezentace záporných čísel.
    • 0 (0) – řetězec jako „(1,1)“;
    • 1 (1) – řetězec jako „-1,1“;
    • 2 (2) – řetězec jako „- 1.1“;
    • 3 (3) – řetězec jako „1,1-“;
    • 4 (4) – řetězec jako „1,1 -“.
  • DF je formát data.
    • e – den v měsíci (v číslicích) bez úvodní nuly;
    • dd – den v měsíci (v číslicích) s nulou na začátku;
    • dd je krátký název dne v týdnu;
    • dddd - celý název dne v týdnu;
    • М – číslo měsíce (v číslicích) bez úvodní nuly;
    • MM – číslo měsíce (v číslicích) s nulou na začátku;
    • MMM - krátký název měsíce;
    • MMMM je celý název měsíce;
    • k - číslo čtvrtletí v roce;
    • d – číslo roku bez století a úvodní nuly;
    • yy je číslo roku bez století s úvodní nulou;
    • yyyy - číslo roku se stoletím;
    • h - hodina ve 12hodinové verzi bez úvodních nul;
    • hh - hodina ve 12hodinové verzi s úvodní nulou;
    • H – hodina ve 24hodinové verzi bez úvodních nul;
    • HH (HH) - hodina ve 24hodinové verzi s úvodní nulou;
    • m – minuta bez úvodní nuly;
    • mm – minuty s úvodní nulou;
    • s – sekunda bez úvodní nuly;
    • ss - sekunda s úvodní nulou;
    • cc - Zobrazuje půl dne AM/PM (platí pouze pro konfigurační jazyky, které podporují 12hodinové zobrazení času).
  • DLF je místní formát data. Určuje možnost zobrazení částí data.
    • D - datum (v číslech);
    • DD - dlouhé datum (měsíc slovy);
    • B - plný úvazek, datum lze kombinovat s časem;
    • DV - datum a čas.
  • DP je řetězec představující prázdné datum (například Format('00010101000000' ,DP=””prázdné datum”””) vrátí řetězec “prázdné datum”).
  • BL je řetězec představující booleovský Lhát.
  • BI - řetězec představující booleovskou hodnotu Skutečný.

Programování (a obchodní programy) se obvykle zabývají následujícími jednoduchými datovými typy: číslo, řetězec, datum. Hodnoty těchto typů pro rozdílné země, normy a spravedlivé zvyky mohou mít jinou představu.

Asi nejznámějším příkladem je odlišné znázornění času – v Rusku je zvykem používat 9:00 a 21:00 a v anglicky mluvících zemích 9:00 a 21:00. Rozdíl je jak v logice (12hodinový systém nebo 24hodinový systém), tak v psaní.

Reprezentace hodnoty se nazývá „formát“ a dnes budeme diskutovat o změně formátu data a formátu čísla v 1C.
Formátování může využít jak programátor v jazyce 1C, tak i vizuálně, bez programování, například při vytváření tisknutelného formuláře nebo sestavy, při nastavování prvků na formuláři.

Co je formátování

Číslo a datum, bez ohledu na jejich zobrazení na obrazovce nebo na tisku, zůstávají samy sebou. Formátování znamená pouze převod na řetězcovou hodnotu – tedy jak bude „vypadat“ na obrazovce počítače nebo na papíře.

Hlavní rozdíly mezi formáty 1C pro reprezentaci čísel a dat:

  • Číslo
    o "." nebo "," pro oddělení zlomkové části
    o počet desetinných míst
    o seskupení číslic po 3 (1 000 000, nikoli 1 000 000)
  • datum a čas
    o rok, měsíc, den pořadí
    o oddělovací znak
    o 1C formát času (12 nebo 24 hodin)
    o pravopisné detaily.

Ve formátu 1C lze také uvést další „vymoženosti“, například zobrazení záporných čísel červeně nebo zobrazení „prázdné hodnoty“ ve formě „0“ nebo „nevyplněno“.

Princip formátování

Výchozí formátování funguje například při převodu čísla na řetězec. V některých případech mohou taková nastavení sloužit k medvědí službě tam, kde to programátor neočekává.

Například při převodu čísla na řetězec se překládá s ohledem na seskupení číslic (a očekáváte to?):
StringNumber = AbbrLp(2400); //bude se rovnat "2 400"

Pro přesné určení formátu v jazyce 1C existuje funkce Format () , pomocí které je možné specifikovat požadovanou reprezentaci.
NumberString = Format(2400, "Nastavení")

Jako řádek "Nastavení" musíte zadat požadovaný formát 1C. Taková nastavení jsou specifikována ve speciální kódované formě. Zvažte nejčastěji používaná nastavení:

Ve výchozím nastavení formátujte datum a číslo 1С

Pokud potřebujete zobrazit datum nebo číslo a nechcete se obtěžovat vědět, jak by měly být reprezentovány podle pravidel požadované země, existuje jednoduché nastavení, které vám to umožní:

L = ShortName požadované země

Příklad zobrazení data podle pravidel některých zemí:
Format(CurrentDate(), "L=ru")
> 28.03.2012 14:21:32

Format(CurrentDate(), "L=en")
> 28. 3. 2012 14:21:24

Format(CurrentDate(), "L=fr")
> 28/03/2012 14:22:08

Jak to není těžké vidět, názvy zemí jsou intuitivní.

Formát data v jazyce 1C

Pokud vám výchozí nastavení nestačí a chtěli byste upřesnit pořadí částí data a symboly pro jejich oddělení, musíte použít nastavení:
DF = "dmg hms"

Proto "dmg" je den, měsíc a rok a "hms" je hodiny, minuty a sekundy. Kteroukoli z těchto částí lze přeskočit. Pořadí je libovolné. Znaky zadané mezi částmi budou použity jako oddělovací znaky.

Charakter části data lze zadat vícekrát za sebou, na tom závisí vzhled této části data, např. „d“ nebo „dd“ nebo „dddd“.

Rozluštění částí data:

  • d - den
    o malé "d"
  • M - měsíc
    o velké "M"
    o lze zadat 1 až 4krát
  • d - rok
    o malé "g"
    o může být uvedeno 1, 2 nebo 4krát
  • h - hodiny
    o malé "h" - 12hodinový formát
    o velké "H" - 24hodinový formát
  • m - minut
    o malé "m"
    o lze zadat 1 nebo 2 krát
  • s - sekund
    o malé "s"
    o lze zadat 1 nebo 2 krát
  • bb - AM/PM displej pro 12hodinový formát
  • k - čtvrtletí.

Příklad zobrazení data s pravidly:
Format(CurrentDate(), "DF=""dd.MM.yyyy hh:mm:ss""")
> 28.03.2012 02:44:44

Format(CurrentDate(), "DF="" M / d /yyy h:m:s dd""")
> 28. 3. 2012 14:44:44

Format(CurrentDate(), "DF=""dd/MM/yyyy hh:mm:ss""")
> 28/03/2012 02:44:44

Formát čísel v jazyce 1C
Na rozdíl od formátování data, kde je vše celkem jednoduché, existuje mnoho možností formátování čísel. Zvážíme ty, které jsme považovali za užitečné - to znamená, že jsou podle našeho názoru často používané.

První „problém“ souvisí s výchozím seskupením číslic po 3 a oddělením skupin mezerou, například:
StrNumber = Řetězec(22300500)
> 22 300 500

To je nepohodlné, když je číslo převedeno na řetězec nikoli pro krásný a srozumitelný výstup pro uživatele, ale pro potřeby služby. To lze ovlivnit parametrem "CH", například:

Formát(22300500, "HH=100")
>22300500 //zcela odstraněny nuly

Formát(22300500, "HH=6")
> 22 300500 //vytvořilo seskupení pouhých milionů

Parametr, který umožňuje zaokrouhlit číslo při výstupu na požadovaný počet číslic za desetinnou čárkou „NPV“:

Format(3,535353; "NPV=""2""")
> 3,54

Parametr, který umožňuje zadat oddělovací znak pro celé číslo a zlomkové části "BRD":

Format(3.535353, "BRD="".""")
> 3.535353

V některých případech může být užitečné mít možnost zobrazit místo čísla „0“ něco jiného: prázdný řetězec nebo „nevyplněno“. To vám umožní vytvořit parametr "CHN":

Format(0, "HN=""""")
>

Naformátujte pole 1C ve formuláři

Probrali jsme s vámi techniky, které umožňují programátorovi formátovat hodnotu v jazyce 1C. Existují také mechanismy, které umožňují určit požadovaný formát vizuálně, bez programování.

Uživatel například pracuje s formulářem. Formulář obsahuje pole, které zobrazuje datum. Reprezentaci tohoto data můžeme ovlivnit.

Otevřete vlastnosti tohoto pole. Chcete-li to provést, v tlustém klientovi klepněte na klikněte pravým tlačítkem myši na poli a v tenkém - klikněte pravým tlačítkem na název pole v seznamu polí a vyberte Vlastnosti.
Pole má vlastnost "Formát".

Kliknutím na tlačítko „…“ jej nastavíte. Chcete-li nastavit formát data, použijte kartu Datum (pro číslo použijte kartu Číslo). Požadovaný formát můžete vybrat ze seznamu.

Naformátujte buňky 1C v tištěné podobě

Když potřebujete navrhnout tištěný formulář (tisk zprávy nebo dokumentu), můžete přiřadit formát buňky úplně stejným způsobem jako u pole dokumentu.
Vybereme buňku (nebo několik buněk současně), přejděte na vlastnosti, vlastnost "Formát", vyberte požadovaný formát.

Formát 1C v SKD

Sestavy ACS umožňují přizpůsobit formát 1C jak pro programátora (v době vytváření sestavy), tak pro uživatele (při použití sestavy). Existuje také více příležitostí díky použití podmíněného formátování.

To znamená, že nejen určíte, které pole se má formátovat, ale také za jaké podmínky (například pokud je hodnota tohoto pole záporná).

V režimu Enterprise vyberte položku nabídky na formuláři sestavy "Změnit variantu". V sestavě ACS v tlustém klientovi je tato položka v nabídce "Akce/Nastavení".

V otevřeném formuláři všech nastavení ACS je záložka "Podmíněné formátování". Přidat nový řádek. Řádek má tři sloupce:

  • Výzdoba. Zadejte požadovaný formát 1C - písmo, barvu pozadí nebo textu, formát 1C pro zobrazení čísel a dat
  • Stav. Pokud je tento design vždy použit, ponechte toto pole prázdné. V opačném případě zadejte pole a jeho hodnotu. Poté bude formátování použito pouze v těch řádcích, ve kterých se tyto hodnoty shodují. Pokud potřebujete zadat hodnoty několika polí současně a podmínky „a/nebo“, přidejte skupinu a seskupte pole pomocí skupin.
  • Vytvořená pole. Seznam polí, pro která bude použito formátování.

1C formátu ve spravovaných formulářích

Stejná pravidla formátování platí pro jakýkoli formulář seznamu spravovaných tenantů. Ve formuláři seznamu vyberte položku nabídky „Všechny akce / Konfigurovat seznam“.

Karta Podmíněné formátování.

Vyberte požadovaný design a formát.

Zadejte seznam polí, na která bude tento návrh použit.

Možnosti:

<Значение>

Hodnota, která se má formátovat.

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

Formátovací řetězec je řetězcová hodnota, která zahrnuje možnosti formátování.

Možnosti formátování jsou uvedeny prostřednictvím znaku ";". Přítomnost parametru znamená, že formátování je odlišné od standardního.

Pokud parametr není uveden, použije se standardní formátování, které v podstatě odpovídá převodu hodnoty na řetězec. Pro hodnoty typu Číslo a Datum však výchozí hodnoty (0 a 01.01.0001 00:00:00) vrátí prázdný řetězec.

Každý parametr je určen názvem parametru, symbolem "=" a hodnotou parametru. Hodnotu parametru lze zadat v jednoduchých nebo dvojitých uvozovkách. To je vyžadováno, pokud hodnota parametru obsahuje znaky použité v syntaxi formátovacího řetězce.

Uvnitř hodnoty parametru lze zadat libovolné znaky, které se zobrazí tak, jak jsou při vytváření výsledného řetězce. Při formátování tak můžete například zadat oddělovače pro hodiny, minuty a sekundy. Pokud se tyto znaky shodují s hodnotami formátovacího řetězce, musí být uzavřeny v jednoduchých uvozovkách.

Názvy a hodnoty parametrů formátovacího řetězce:

  • L - název jazyka, země, pro kterou bude provedeno standardní formátování.
  • CC - celkový počet zobrazených desetinných míst celé a zlomkové části. Původní číslo se pak zaokrouhlí v souladu s pravidly zaokrouhlování. Pokud je tento parametr zadán, pak pro zobrazení zlomkové části čísla musí být zadán parametr NPV, jinak se zlomková část nezobrazí.
  • NDC - počet desetinných míst ve zlomkové části. Původní číslo se pak zaokrouhlí v souladu s pravidly zaokrouhlování.
  • CHS - bitový posun: kladné - dělení, záporné - násobení. Jinými slovy to znamená, že původní číslo bude vynásobeno nebo vyděleno 10*C, kde C je modulo hodnota parametru.
  • FRD - symbol-oddělovač celočíselných a zlomkových částí.
  • CHRG - znak-oddělovač skupin celočíselné části čísla. Pokud je jako oddělovač použit prázdný řetězec, bude oddělovačem nerozdělitelná mezera.
  • CHN - řetězec představující nulovou hodnotu čísla. Pokud není nastaveno, reprezentace je prázdný řetězec. Pokud je zadáno "HN=", pak ve tvaru "0". Nepoužívá se pro numerická vstupní pole.
  • FHN - zda vypisovat úvodní nuly. Hodnota tohoto parametru není nastavena, skutečná přítomnost parametru určuje výstup úvodních nul.
  • ChG - pořadí seskupování číslic čísla. Jako hodnota jsou uvedena čísla oddělená čárkami, které udávají počet seskupených číslic zprava doleva. Pouze první dvě čísla dávají smysl. První z nich označuje primární seskupení, tedy to, které bude použito pro nejméně významné číslice celé části čísla. Pokud druhé číslo není uvedeno, budou seskupeny pouze nejméně významné číslice. Pokud je jako druhé číslo zadáno 0, pak se hodnota určená pro primární seskupení použije na všechny číslice celé části čísla. Pokud je jako druhé číslo použita jiná hodnota než 0, bude tato hodnota použita pro seskupení všech číslic, kromě těch nejméně významných, které jsou již seskupeny.
  • CHO - reprezentace záporných čísel.
    • 0 (0) - řetězec jako "(1,1)";
    • 1 (1) - řetězec jako "-1,1";
    • 2 (2) - řetězec jako "- 1,1";
    • 3 (3) - řetězec jako "1,1-";
    • 4 (4) - řetězec jako "1,1 -".
  • DF - formát data.
    • d - den v měsíci (v číslicích) bez úvodní nuly;
    • dd - den v měsíci (v číslicích) s nulou na začátku;
    • ddd - krátký název dne v týdnu;
    • dddd - celý název dne v týdnu;
    • M - číslo měsíce (v číslicích) bez úvodní nuly;
    • MM - číslo měsíce (v číslicích) s nulou na začátku;
    • MMM - krátký název měsíce;
    • MMMM - celý název měsíce;
    • k - číslo čtvrtletí v roce;
    • r - číslo roku bez století a úvodní nuly;
    • yy - číslo roku bez století s úvodní nulou;
    • yyyy - číslo roku se stoletím;
    • h - hodina ve 12hodinové verzi bez úvodních nul;
    • hh - hodina ve 12hodinové verzi s úvodní nulou;
    • H - hodina ve 24hodinové verzi bez úvodních nul;
    • HH (HH) - hodina ve 24hodinové verzi s úvodní nulou;
    • m - minuta bez úvodní nuly;
    • mm - minuta s úvodní nulou;
    • s - sekunda bez úvodní nuly;
    • ss - sekunda s úvodní nulou;
    • вв - zobrazení poloviny dne AM/PM (platí pouze pro konfigurační jazyky, které podporují 12hodinové zobrazení času).
  • DLF - místní formát data. Určuje možnost zobrazení částí data.
    • D - datum (v číslech);
    • DD - dlouhé datum (měsíc slovy);
    • B - plný úvazek, datum lze kombinovat s časem;
    • DV - datum a čas.
  • DP je řetězec představující prázdné datum (například Format("00010101000000" ,"DP=""prázdné datum""") vrátí řetězec "prázdné datum").
  • BL - řetězec představující booleovskou hodnotu Lhát.
  • BI - řetězec představující booleovskou hodnotu Skutečný.