рядок 1с

Ми продовжуємо огляд вбудованої мови 1С розпочату з загального опису мови 1С і роботу зі значеннями в 1С.

До базових можливостей мови програмування зазвичай відносять роботу з числами і рядками. Зазвичай ці можливості захисту в код компілятора (або реалізовані «базові» класи мови програмування).

В 1С можливості роботи з рядками запрограмовані в самій платформі. Сьогодні ми розглянемо особливості роботи з рядками 1С в програмах на вбудованій мові 1С.

Значення рядка 1С

1. Почнемо з самого простого. Створення змінної і присвоювання їй строкового константного значення виглядає в 1С так:

Мінлива = "Привіт, світ!";

Якщо потрібно в константностей строковому значенні 1С вказати символ лапки, то його потрібно задвоіть «»

Мінлива = "Привіт," "світ" "!";

2. Перенесення рядка 1С можна вказати відразу двома способами. Перший - з використанням символу |

Мінлива = "Привіт,
| мир! ";

Другий - з використанням системного перерахування Символи. Воно дозволяє додати як перенесення рядка 1С, так і інші недруковані символи, наприклад TAB.

Мінлива = "Привіт" + Сімволи.ПС + "світ!";

3. Зміни в 1С можуть бути розроблені не тільки для однієї мови (російської, англійської або іншого) - але одночасно для декількох мов. У цьому випадку використовується в даний час мова вибирається в нижній частині вікна 1С.

Список мов знаходиться в вікні конфігурації в гілці Загальні / Мови. Кожна мова має короткий ідентифікатор, такий як ru або eng.

Ясна річ, що при програмуванні такої конфігурації рядка 1С теж можуть бути багатомовними. Для цього є можливість створити таку рядок 1С, вказавши через; варіанти за ідентифікатором мови:


Мінлива = "ru =" "Привіт, світ!" "; En =" "Hello, world!" "";

Якщо Ви будете використовувати сформовану так рядок 1С як зазвичай - то вона і буде тим, що в ній написано. Для того, щоб система розбивала її на два варіанти і використовувала потрібний - необхідно використовувати функцію уст ():

// правильно для двомовних конфігурацій
Повідомити (НРТР (Змінна));

Реквізит з типом рядка 1С

Реквізит - це поле довідника / документа 1С. Відрізняється від змінної в програмі на мові 1С тим, що для реквізиту точно вказується його тип (число, рядок 1С і т.п.). Якщо Вам потрібно освіжити в пам'яті що таке реквізит - подивіться урок, присвячений реквізитами 1С.

Якщо Ви вкажете тип реквізиту - рядок 1С, то додатково необхідно вказати параметри.

Рядки 1С бувають необмеженої довжини (вказується як довжина = 0) і обмеженої довжини, із зазначенням точної кількості символів. Рядки 1С необмеженої довжини зберігаються в окремій таблиці SQL, тому їх використання менш продуктивно, ніж обмеженою.

Саме тому використання рядків 1С необмеженої довжини має свої обмеження - не скрізь можливо їх використовувати. Наприклад, не можна в якості номера документа, коду довідника, вимірювання.

Робота з рядками 1С

Для роботи з рядками є кілька вбудованих функцій платформи 1С.

  • СокрЛП ( "Неймовірно, але факт!")
    Прибирає з рядка 1С зайві прогалини. Також можна використовувати для перетворення будь-яких типів до рядка 1С (наприклад, числа).
  • Мінлива = "Вася" + СокрЛП ( "плюс") + "Оля"; // буде "Вася плюс Оля"
    Приклад підсумовування декількох строкових значень 1С. В результаті вийде один рядок 1С.
  • Мінлива = Лев ( "Музика", 2); // буде "Му"
    Мінлива = Серед ( "Музика", 2, 2); // буде "зи"
    Мінлива = Прав ( "Музика", 2); // буде "ка"
    Різні варіанти отримання підрядка з рядка 1С.
  • Мінлива = Знайти ( "Музика", "зи"); // буде 3
    Пошук підрядка в рядку 1С, починаючи з символу 1.
  • Мінлива = СтрДліна ( "Музика"); // буде 6
    Повертає кількість символів в рядку 1С.
  • Повідомити ( "Привіт") // в вікні повідомлень внизу вікна 1С
    Попередження ( "Привіт") // спливаюче діалогове вікно
    Стан ( "Привіт") // в рядку відображення стану внизу зліва
    Різні варіанти повідомлення користувачу.

Приведення об'єктів до рядка 1С

Як відомо найпопулярніший формат для обміну структурованою інформацією в даний час - це XML. Навіть остання версія MS Office Word і Excel зберігають файли в цьому форматі (docx і xlsx відповідно, поміняйте розширення на zip, відкрийте в архіваторі).

Платформа 1С для обміну даними надає кілька варіантів, основний з яких - також XML.

1. Найпростіший метод - використання функції СокрЛП () або Рядок (). У тексті запиту можна використовувати функцію ПОДАННЯ (). Результат їх дії один і той же - вони генерують строкове представлення будь-якого об'єкта 1С для користувача.

3. Існує власний спосіб платформи 1С перетворити в рядок будь-який об'єкт 1С. Він мігрував з версії 1С 7.7. Цей формат не розуміють інші програми, але розуміє інша 1С, що дозволяє легко використовувати його для обміну між базами 1С.

Рядок = ЗначеніеВСтрокуВнутр (Значеніе1С); // отримуємо рядок 1С з значення 1С
ЗначеніеВФайл ( "C: \ MyFile.txt", Значеніе1С); // інший варіант, отримуємо файл зі збереженою рядком із значення 1С
Значеніе1С = ЗначеніеІзСтрокіВнутр (Рядок); // назад з рядка 1С
Значеніе1С = ЗначеніеІзФайла ( "C: \ MyFile.txt"); // назад з файлу

Редагування рядків 1С на формі

Крім роботи з рядками 1С в програмі на мові 1С звичайно хотілося б, щоб користувач міг їх редагувати. Для цього є кілька можливостей:

1. Найпростіший спосіб - запросити введення рядка 1С на вимогу. Цей спосіб використовують при навчанні програмуванню 1С, в житті він застосовується набагато рідше (але застосовувати!).

Мінлива = "";
Рядок = ВвестіЗначеніе (Змінна, "Введіть ПІБ");

рядок 1с

2. Для виведення реквізиту об'єкта 1С (довідника / документа) або реквізиту форми (див. Урок за формами) найчастіше використовують поле введення. Це найпоширеніший в 1С інструмент для роботи користувача з редагуванням полів.

рядок 1с

3. Можливості поля введення можна розширити (див. Властивості поля введення, правою кнопкою на ньому, докладніше урок про форми):

  • Галочка Багаторядковий режим редагування
  • Галочка Розширене редагування (доступна якщо встановлена ​​попередня галочка)
  • Галочка Режим пароля (див. Урок про паролі).

рядок 1с

рядок 1с

Поле текстового документа можна зв'язати безпосередньо з даними. Необхідно в обробнику події відкриття () форми (див. Урок про події) прописати функцію:

ЕлементиФорми.ІмяЕлементаПолеТекстовогоДокумента.УстановітьТекст (ЗначеніеСтрока); // тут ЗначеніеСтрока - це текст отриманий, наприклад з реквізиту

А в обробника збереження - наприклад, в кнопці Зберегти - додати збереження:

ЗначеніеСтрока = ЕлементиФорми.ІмяЕлементаПолеТекстовогоДокумента.ПолучітьТекст (); // ЗначеніеСтрока тут - це реквізит, куди ми зберігаємо значення

5. В 1С версії 8.2.11, в керованих формах, з'явилася нова можливість уявлення рядки 1С - поле Форматований документ.

  • Додайте реквізит форми (див. Урок про керовані форми 1С), вкажіть тип реквізиту - форматований документ, встановіть галочку, що зберігаються дані
рядок 1с
  • Перетягніть реквізит на форму - він відобразиться як поле для редагування тестового документа
  • Додайте новий елемент керованої форми «Група - командна панель», в його властивостях встановіть властивість Джерело команд - ім'я доданого форматированного документа.

    рядок 1с
  • Аналогічно полю текстового документа, необхідно встановлювати при відкритті і записувати при збереженні текст самостійно за допомогою програми.

    • В об'єкт 1С, форму якого ми робимо (довідник, документ, обробка і т.п.) - додайте реквізит з типом ХраніліщеЗначенія
    • У функції ПріЧтенііНаСервере () встановимо текст з реквізиту

    // тут Реквізит - це доданий реквізит об'єкта 1С
    // тут ФорматірованнийДокумент - це ім'я поля на формі для редагування
    На сервері
    Процедура ПріЧтенііНаСервере (ТекущійОб'ект)
    ФорматірованнийДокумент = ТекущійОб'ект.Реквізіт.Получіть ();
    КонецПроцедури
  • У функції ПередЗапісьюНаСервере () або по кнопці запишемо текст з поля

    На сервері
    Процедура ПріЧтенііНаСервере (ТекущійОб'ект)
    ТекущійОб'ект.Реквізіт = Новий ХраніліщеЗначенія (ФорматірованнийДокумент);
    КонецПроцедури

  • Проголосувати за цей пост:

    Схожі статті