Знайти значення у рядку 1с. Що таке швидкий пошук

01.11.2019 Програми

У цій статті я розповім вам про функцію швидкого пошуку 1С Підприємство 8. Що таке швидкий пошук? Дуже просто. Швидкий пошук – це один із способів навігації у великих списках записів 1С. Це можуть бути списки документів, довідники, регістри – все те, що представлено таблицями.

Що таке швидкий пошук?

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

Насамперед слід зазначити, що у конфігураціях 1С Підприємство 8, побудованих на керованих формах, швидкий пошук працює інакше, ніж у попередніх версіях 1С. Тому розберемо окремо використання швидкого пошуку керованих формахта у звичайних.

Швидкий пошук у 1С Бухгалтерії 8.2

У версіях 1С Бухгалтерії з 8.0 до 8.2функція призначена саме для переходудо потрібної частини списку. Наприклад подивіться вікно плану рахунків , наведене малюнку.


У вікні виділено певний рядок. Зверніть увагу малопомітний трикутник зі смужок, який вказує червона стрілка. Як і в інших програмах Windows, де є списки (наприклад, у Провіднику), положення цього маркера (трикутника) визначає сортування списку в цілому. в якій колонці встановлений маркер, по тій буде відсортовано весь список.На малюнку маркер стоїть у колонці Код, отже рахунки у плані рахунків будуть відсортовані за кодом.

Маркер можна переміщати з однієї колонки на іншу, клацаючи на потрібній колонці ( на ЗАГОЛОВЦІ колонки!) мишкою. Якщо маркер і так вже стоїть у поточній колонці, то клацання призведе до зміни напряму сортування на протилежне (тобто від більшого до меншого або навпаки). Це стандартна поведінка для будь-яких програм Windows. У чому ж особливість цього маркера у 1С Підприємстві та як це пов'язано зі швидким пошуком?

Швидкий пошук у списках 1С Підприємство 8 здійснюється по колонці, де стоїть маркер.У разі швидкий пошук у плані рахунків здійснюватиметься по колонці Код.

Тут була важлива частина статті, але без JavaScript її не видно!

Як користуватися швидким пошуком у 1С?Легко! Просто почніть друкувати те, що хочете знайти в ДАНІЙ колонці, тобто. там, де стоїть маркер. У прикладі малюнку вище слід вводити номер рахунки. Наприклад, ви хочете знайти рахунок 50 Каса . У такому разі введіть ( мишкою клацати нікуди не потрібно!) Число 50 з клавіатури і якщо в даній колонці є рахунок з таким номером (а він, звичайно, є), то список прокрутиться до цього рядка, а сам рядок виявиться виділеним. Результат показаний на скріншоті плану рахунків нижче.

сайт_

Текст, на який вказує стрілка, прати потім не потрібно- Він сам зникне.

Якщо в наведеному прикладі почати вводити слово "Каса", то текст у нижній частині вікна буде вводитись, а потім стиратися. Відбувається це тому, що як тільки початокрядка швидкого пошуку, що вводиться, перестає збігатися з початком хоча б одного рядка в даній колонці, 1С Підприємство робить висновок, що шуканий рядок не знайдена і автоматично його стирає. У зв'язку з цим слід запам'ятати два правила.

У 1С Підприємстві 8 швидкий пошук здійснюється на початку рядка, тобто. в колонці шукається збіг тексту, що вводиться, з початком одного з рядків цієї колонки.
Звідси випливає важлива рекомендація: під час введення даних у довідники іменуйте елементи те щоб їх було зручно шукати з допомогою швидкого пошуку. Наприклад, назву контрагента краще писати як "Ім'яФірми ТОВ", ніж "ТОВ Ім'яФірми". І тим більше не варто використовувати в назві лапки та інші непотрібні символи (йдеться про заповнення поля Найменування у формах).

Якщо ви почали вводити текст, а він стирається - те, що ви шукаєте, відсутнє в цій колонці!У цьому випадку перевірте мову введення, а також колонку, в якій проводиться швидкий пошук. Типова помилка- Вибрана не та колонка. Наприклад, маркер встановлений у колонці Код, а пошук здійснюється за назвою рахунку.

Швидкий пошук у 1С Бухгалтерії 8.3

Тепер подивимося, чим відрізняється швидкий пошук у версії 1С Підприємство 8.3. Використання багато в чому схоже на версію 8.2, однак є одна істотна відмінність, яку слід запам'ятати.

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

Як цим користуватись, ми з вами зараз з'ясуємо. Для початку подивіться на скріншот вікна плану рахунків 1С Бухгалтерії 8.3, наведеного нижче.

сайт_

Як бачите, той самий маркер в одній з колонок. Пошук так само провадиться по колонці, в якій встановлений маркер. Це все залишилося без змін. Однак, якщо почати вводити текст (у прикладі номер рахунку), то відбудеться наступне.

сайт_

Як бачите, просто автоматично відкрилося вікно пошуку. Таке саме вікно відкриється, якщо натиснути на кнопку пошуку на панелі інструментів вікна (на малюнку підкреслена). В результаті при натисканні у вікні пошуку кнопки Знайти (на картинці прихована за меню, що випадає) або просто Enter, то вийти наступний результат.

сайт_

Звідси видно, що Швидкий пошук у 1С Бухгалтерії 8.3 просто залишає видимою частину списку, що відповідає умовам пошуку.При цьому кнопка Знайти пропадає, а замість неї з'являється лінза з хрестиком (на рис. підкреслена), при натисканні на яку список повертається в вихідний стан(при цьому залишається виділений рядок, знайдений у результаті швидкого пошуку).

Ще одна важлива особливість швидкого пошуку у 1С Бухгалтерії 8.3— збіг шукається не на початку рядка, як у версії 8.2, а здійснюється пошук на збіг з будь-якою частиною рядків у колонці. Таким чином, якщо контрагента назвати ТОВ Ім'яФірми, а при пошуку почати вводити Ім'яФірми ТОВ, то рядок все одно знайдеться!

Робимо висновки

Таким чином, швидкий пошук в 1С Бухгалтерії 8.2 і раніше версіях призначається для прокрутки списку до потрібного рядка, а в 1С Бухгалтерії 8.3 швидкий пошук працює як звичайний фільтр, приховуючи непотрібну вам частину списку.

Рядки в 1С 8.3 у вбудованій мові 1с є значенням примітивного типу Рядок. Значення даного типумістять рядок у форматі Unicode довільної довжини. Змінні рядкового типу є набором символів ув'язнених у лапки.

Приклад 1. Створимо рядкову змінну тексту.

Рядкова Змінна = "Привіт світ!";

Функції роботи з рядками 1с 8.3

У даному розділібудуть наведені основні функції, що дозволяють змінювати рядки в 1с, або аналізувати інформацію, що міститься в них.

СтрДліна

СтрДліна(<Строка>) . Повертає кількість символів, що містяться в рядку, переданому у параметрі.

Приклад 2. Порахуємо кількість символів у рядку "Привіт мир!".

Рядок = "Привіт світ!"; КількістьСимволів = СтрДліна(Рядок); Повідомити (Кількість Символів);

Результатом виконання цього коду буде виведення на екран кількості символів рядка: 11.

СокрЛ

СокрЛ(<Строка>) . Відсікає незначні символи, що стоять ліворуч від першого символу в рядку.
Незначні символи:

  • пробіл;
  • нерозривна прогалина;
  • табуляція;
  • повернення каретки;
  • переклад рядка;
  • переклад форми (сторінки).

Приклад 3. Прибрати усі прогалини з лівого боку рядка світ! та приєднати до неї рядок "Привіт".

Рядок = СокрЛ ("світ!"); Рядок = "Привіт" + Рядок; Повідомити(Рядок);

Підсумком виконання цього коду буде виведення на екран рядка "Привіт мир!".

СокрП

СокрП(<Строка>) . Відсікає незначні символи, що стоять праворуч від першого символу в рядку.

Приклад 4. Сформувати з рядків "Привіт" та "світ!" фразу «Привіт світ!»

Рядок = СокрП("Привіт")+"+СокрЛ("світ!"); Повідомити(Рядок);

СокрЛП

СокрЛП(<Строка>) . Відсікає незначні символи, що стоять праворуч від першого символу в рядку, також відсікає незначні символи, що стоять ліворуч від першого символу в рядку. Ця функціявикористовується частіше за попередні два, тому що вона більш універсальна.

Приклад 5. Прибрати незначні символи ліворуч і праворуч у найменуванні контрагента.

Контрагент = Довідники.Контрагенти.ЗнайтиПоРеквізиту("ІПН", "0777121211"); КонтрагентОб'єкт = Контрагент.Отримати Об'єкт (); Контрагент Об'єкт. Найменування = СокрЛП (Контрагент Об'єкт. Найменування); КонтрагентОб'єкт. Записати ();

Лев

Лев(<Строка>, <ЧислоСимволов>) . Отримує перші символи рядка, кількість символів вказується у параметрі Число символів.

Приклад 6. Нехай у структурі Співробітникутримуватися ім'я, прізвище та по батькові співробітника. Отримати рядок із прізвищем та ініціалами.

ІніціалІмені = Лев(Співробітник.Ім'я, 1); Ініціал Батьківщини = Лев (Співробітник. По-батькові, 1); Повне Ім'я = Співробітник. Прізвище + " " + Ініціал Імені + "." + Ініціатив Батьківщини + ".";

Має рацію

Прав(<Строка>, <ЧислоСимволов>) . Отримує останні символи рядка, кількість символів вказується у параметрі Число символів.Якщо вказана кількість символів перевищує довжину рядка, то повертається весь рядок.

Приклад 7. Нехай наприкінці рядкової змінної записано дату у форматі «ггггммдд», отримати рядок з датою та перетворити її на тип Дата.

Рядок = " Поточна дата: 20170910"; РядокДата = Прав(Рядок, 8); Дата = Дата(РядокДата);

Середовище

Середовище<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Отримує підрядок із рядка переданого у параметрі Рядок, починаючи з символу, номер якого вказаний у параметрі ПочатковийНомерта довжиною переданої у параметр Число символів.Нумерація символів у рядку починається з 1. Якщо у параметрі ПочатковийНомервказано значення, менше або дорівнює нулю, параметр приймає значення 1. Якщо параметр Число символівне вказано, вибираються символи до кінця рядка.

Приклад 8. Нехай у рядковій змінній, починаючи з дев'ятої позиції, міститься код регіону, слід отримати його та записати в окремий рядок.

Рядок = "Регіон: 99 р. Москва"; Регіон = Середовище (Рядок, 9, 2);

СтрНайти

СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Здійснює пошук зазначеного підрядка у рядку, повертає номер позиції першого символу знайденого підрядка. Розглянемо параметри цієї функції:

  • Рядок. Вихідний рядок;
  • ПідрядкаПошук. Шуканий підряд;
  • Напрям Пошуку. Вказує напрямок пошуку підрядка у рядку. Може приймати значення:
    • НапрямокПошуку.Спочатку;
    • Напрямок Пошуку.;
  • ПочатковаПозиція. Вказує позицію у рядку, з якого починається пошук;
  • НомерВходження. Вказує номер входження шуканого підрядка у вихідному рядку.

Приклад 9. У рядку "Привіт мир!" визначити позицію останнього входження символу "і".

НомерПозиції = СтрНайти("Привіт світ!", "і", НапрямПошуку.Сконця); Повідомити(НомерПозиції);

Підсумком виконання цього коду буде виведення на екран номера останнього входження символу "і": 9.

ВРег

ВРег(<Строка>) . Перетворює всі символи вказаного рядка в 1з8 до верхнього регістру.

Приклад 10. Перетворити рядок "Привіт світ!" до верхнього регістру.

РядокВрег = ВРег("привіт світ!"); Повідомити (Рядок);

Підсумком виконання цього коду буде виведення на екран рядка «ПРИВІТ СВІТ!»

НРег

НРег(<Строка>) . Перетворює всі символи вказаного рядка в 1с 8 до нижнього регістру.

Приклад 11. Перетворити рядок «ПРИВІТ СВІТ!» до нижнього регістру.

РядокНрег = НРег("ПРИВІТ СВІТ!"); Повідомити (Рядок);

Підсумком виконання цього коду буде виведення на екран рядка «Привіт світ!»

трег

трег(<Строка>) . Перетворює рядок наступним чином: перший символ кожного слова перекладається верхній регістр, інші символи слова перетворюються на нижній регістр.

Приклад 12. Зробити заголовними першілітери слів у рядку «Привіт мир!».

РядокТрег = ТРег("привіт світ!"); Повідомити(РядокТрег);

Підсумком виконання цього коду буде виведення на екран рядка "Привіт Світ!"

Символ

Символ(<КодСимвола>) . Отримує символ за кодом кодування Unicod.

Приклад 13. Додамо ліворуч та праворуч у рядок «Привіт Мир!» символ ★

РядокЗі зірками = Символ("9733")+"Привіт Світ!"+Символ("9733"); Повідомити (Рядок зі Зірками);

Підсумком виконання цього коду буде виведення на екран рядка «Привіт Мир!★»

КодСимволу

КодСимволу(<Строка>, <НомерСимвола>) . Отримує код символу в кодуванні Unicode з рядка, зазначеного в першому параметрі, розташованого в позиції, зазначеній у другому параметрі.

Приклад 14. Дізнатись код останнього символу в рядку «Привіт Світ!».

Рядок = "Привіт Світ!"; КодСимволу = КодСимволу(Рядок, СтрДліна(Рядок)); Повідомити(КодСимволу);

Підсумком виконання цього коду буде виведення на екран коду символу "!" - 33.

Порожня стрічка

Порожня стрічка(<Строка>) . Перевіряє, чи складається рядок тільки з незначних символів, тобто чи є він порожнім.

Приклад 15. Перевірити чи порожній рядок складається з трьох пробілів.

Порожня = ПорожняРядок(" "); Повідомити(Порожня);

Результатом виконання цього коду буде виведення на екран слова «Так» (рядковий вираз логічного значення Істина).

СтрЗамінити

Стр Замінити (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Знаходить у вихідному рядку всі входження підрядка пошуку та замінює її на підрядок заміни.

Приклад 16. У рядку "Привіт Мир!" замінити слово "Світ" на слово "Друзі".

Рядок = СтрЗаменить("Привіт Світ!", "Світ", "Друзі"); Повідомити(Рядок);

Підсумком виконання цього коду буде виведення на екран рядка "Привіт Друзі!"

СтрЧислоРядок

СтрЧислоРядок(<Строка>) . Дозволяє порахувати кількість рядків у рядковому рядку. Для переходу на новий рядокв 1с 8 використовується символ ПС(Символ перекладу рядка).

Приклад 17. Визначити кількість рядків у тексті:
«Перший рядок
Другий рядок
Третій рядок»

Число = СтрЧіслоРядок("Перший рядок"+Символи.ПС +"Другий рядок"+Символи.ПС +"Третій рядок"); Повідомити (Число);

Результатом виконання цього коду буде виведення на екран кількості рядків у тексті: 3

СтрОтриматиРядок

СтрОтриматиРоку(<Строка>, <НомерСтроки>) . Отримує рядок у рядковому рядку за його номером. Нумерація рядків починається з першого.

Приклад 18. Отримати останній рядок у тексті:
«Перший рядок
Другий рядок
Третій рядок»

Текст = "Перший рядок" + Символи. ПС + "Другий рядок" + Символи. ПС + "Третій рядок"; ОстанняРядок = СтрОтриматиРоку(Текст, СтрЧислоРядок(Текст)); Повідомити(ОстанняРядок);

Підсумком виконання цього коду буде виведення на екран рядка "Третій рядок".

СтрЧислоВходжень

СтрЧИСЛОВХОДЖЕНЬ(<Строка>, <ПодстрокаПоиска>) . Повертає кількість входжень зазначеного підрядка в рядок. Функція чутлива до регістру.

Приклад 19. Визначити скільки разів входить до рядка «Рядки в 1с 8.3 і 8.2» буква «с», незалежно від її регістру.

Рядок = "Рядки в 1с 8.3 і 8.2"; ЧислоВходжень = СтрЧіслоВходінь(Врег(Рядок), "С"); Повідомити(ЧислоВходжений);

Результатом виконання цього коду буде виведення на екран числа входжень: 2.

ПочинаєтьсяС

ПочинаєтьсяС(<Строка>, <СтрокаПоиска>) . Перевіряє чи починається рядок переданий у першому параметрі, з рядка у другому параметрі.

Приклад 20. Визначити чи починається ІПН обраного контрагента з цифри 1. Нехай у змінній Контрагент Контрагенти.

ІПН = Контрагент.ІПН; ПочинаєтьсяСединиці = СтрНачинаетсяС(ІПН, "1"); Якщо починаєтьсяСединиці Тоді //Ваш код КінецьЯкщо;

СтрЗакінчуєтьсяНа

СтрЗаканчиваетсяНа(<Строка>, <СтрокаПоиска>) . Перевіряє чи закінчується рядок переданий у першому параметрі, на рядок у другому параметрі.

Приклад 21. Визначити чи закінчується ІПН обраного контрагента на цифру 2. Нехай у змінній Контрагентзберігається посилання на елемент довідника Контрагенти.

ІПН = Контрагент.ІПН; Закінчується На Двійку = Стр Закінчується На (ІПН, "2"); Якщо закінчується на двійку тоді // Ваш код Кінець Якщо;

Поділити

Розділити(<Строка>, <Разделитель>, <ВключатьПустые>) . Розділяє рядок на частини за вказаними символами-розділювачами та записує отримані рядки у масив. У першому параметрі зберігається вихідний рядок, у другому рядок містить роздільник, у третьому вказується, чи потрібно записувати в масив порожні рядки (за замовчуванням Істина).

Приклад 22. Нехай у нас є рядок, який містить числа розділені символом «;», отримати з рядка масив чисел.

Рядок = "1; 2; 3"; Масив = РОЗДІЛИТИ(Рядок, ";"); Для Сч = 0 По Масив. Кількість () - 1 Цикл Спроба Масив [Сч] = Число (СокрЛП (Масив [Сч])); Виняток Масив [Сч] = 0; КінецьСпроби КінецьЦикл;

В результаті виконання буде отримано масив із числами від 1 до 3-х.

СтрЗ'єднати

СтрЗ'єднати(<Строки>, <Разделитель>) . Перетворює масив рядків з першого параметра на рядок, що містить всі елементи масиву через роздільник, зазначений у другому параметрі.

Приклад 23. Використовуючи масив чисел із попереднього прикладу, одержати вихідний рядок.

Для Сч = 0 По Масив. Кількість () - 1 Цикл Масив [Сч] = Рядок (Масив [Сч]); КінецьЦикл; Рядок = СтрЗ'єднати(Масив, "; ");

Головна Нотатки із Задзеркалля

07.02.2013 Пошук по рядку

Реалізовано у версії 8.3.3.641.

Ми серйозно покращили введення рядка. Для цього нам довелося реалізувати новий потужний механізм пошуку у полі введення. Тепер він може швидко працювати за мільйонами записів, що містяться в базі даних.

Ми проаналізували завдання пошуку, які виникають у користувачів. Провели "ревізію" наявних у платформі механізмів, які використовують різні алгоритми пошуку. В результаті введення по рядку набуло якісно нових можливостей.

Тепер користувачі можуть шукати в будь-якому місці назви, а не лише на початку рядка. Вони можуть використовувати при цьому повнотекстовий пошук та навіть виконувати пошук за допомогою фонового завдання. Для того, щоб повнотекстовий пошук ефективно працював при введенні по рядку, ми додатково оптимізували цей механізм пошуку та підвищили його продуктивність.

Усі нові властивості, що дозволяють налаштовувати введення рядком, ми зібрали на окремій закладці вікна редагування об'єкта конфігурації:

Наприклад, ви можете вказати, що пошук буде виконуватися в будь-якому місці рядка, а не тільки на початку:

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

Використання повнотекстового пошуку при введенні рядка включається окремою властивістю:

За допомогою повнотекстового пошуку користувачі можуть серед великих обсягів даних швидко знаходити відповідні дані за будь-яким із слів, що містяться, наприклад, у найменуванні:

Також вони можуть шукати і за кількома відомими словами. Незакінчені слова автоматично доповнюються можливими поєднаннями:

Якщо обсяг даних великий, то в обох випадках можна вказати, що пошук повинен виконуватися за допомогою фонового завдання:

Тоді поряд з полем введення для користувачів відображатиметься анімована картинка, схожа на картинку, яка відображається при фоновому виконанні звіту:

  • якщо в об'єкті, який використовується в полі введення, не очікується великої кількості даних, ми радимо включити пошук рядка в будь-якому місці;
  • якщо в об'єкті планується велика кількість даних, то:
    • ми радимо включити повнотекстовий та фоновий пошук;
    • при цьому ви також можете використовувати пошук рядка в будь-якому місці, але спільно з пошуком фону і бажано з повнотекстовим пошуком; щоб більшість пошуків виконувалася через повнотекстовий пошук.

Всі ці властивості ви можете, при необхідності, перевизначити в процесі виконання прикладного рішення.

На клієнті – у клієнтських обробниках подій поля введення АвтоПідбір і Закінчення Введення Тексту :

На сервері - у модулі менеджера того об'єкта, даних якого виконується пошук. В обробнику події ОбробкаОтриманняДанихВибору :

Звичайно, тут, на сервері, не можна перевизначити метод виконання пошуку "Безпосередньо" або "Фоновим завданням" . Тому що виконання коду вже передано на сервер.

Всім привіт
Сьогодні попросили мене під час друку документа реалізації не виводити префікс документа, завдання вирішив так.

СтрЗаменить(Номер, Лев (Номер, 3), "");

Коли заглянув у синтакс-помічник, то мені це сподобалося, що захотілося написати про роботі з рядками у «1С:Підприємство».

Рядок у 1С відноситься до примітивного типу даних.

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

Завдання рядка
Звернення = "Привіт пасажир";

Багаторядкові рядки у типових конфігураціях найчастіше створюються за допомогою вертикального роздільника «|»:
Рядок = «Многорядкова
|рядок
|пиши
|текст»;

Лапка всередині рядка задаються подвійними лапками.
Рядок = «Текст у лапках»;

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

Функцій по роботі з рядками

Тут у короткій формі наведу функцій роботи з рядками:

ВРег(<Строка>) — Усі символи рядка функція перетворює на верхній регістр.

КодСимволу(<Строка>, <НомерСимвола>) – Функція отримує код символу, розташованого у переданому рядку у позиції із зазначеним номером.

Лев(<Строка>, <ЧислоСимволов>) – Функція вибирає перші ліворуч символи рядка.

Знайти (<Строка>, <ПодстрокаПоиска>) — Функція знаходить входження шуканого рядка як підрядки у вихідному рядку.

НРег(<Строка>) — Функція перетворює всі символи рядка на нижній регістр.

Прав(<Строка>, <ЧислоСимволов>) – Ця функція відрізняється від функцій Лев (Left) тим, що вибирає останні праворуч символи рядка.

Порожня стрічка(<Строка>) — Функція перевіряє рядок на наявність символів.

Символ(<КодСимвола>) — Функція перетворює код символу на рядок, який містить символ.

СокрЛ(<Строка>) — Функція відсікає незначні символи, що стоять ліворуч від першого символу в рядку.

СокрЛП(<Строка>) — Функція відсікає незначні символи, що стоять ліворуч від першого символу в рядку, і пробіли, що стоять праворуч від останнього символу в рядку.

СокрП(<Строка>) — Функція відсікає незначні символи, що стоять праворуч від останнього символу в рядку.

Середовище<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Функція вибирає рядок символів, починаючи із символу<НачальныйНомер>, загальною кількістю<ЧислоСимволов>.

СтрДліна(<Строка>) — Функція отримує кількість символів у рядку.

Стр Замінити (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — Функція знаходить у вихідному рядку всі входження підрядка пошуку та замінює її на підрядок заміни.

СтрОтриматиРоку(<Строка>, <НомерСтроки>) — Функція отримує рядок рядкового рядка за номером.

СтрЧИСЛОВХОДЖЕНЬ(<Строка>, <ПодстрокаПоиска>) — Функція обчислює кількість входжень підрядка пошуку у вихідному рядку.

СтрЧислоРядок(<Строка>) — Функція вважає число рядків у рядковому рядку. У рядковому рядку рядки розділені символами перекладу рядків.

трег(<Строка>) — Функція перетворює рядок до титульного регістру. Це означає, що у кожного слова перший символ перетворюється на титульний регістр або верхній регістр, якщо титульний регістр для символу не визначено. Інші символи перетворюються на нижній регістр.

Перетворення типів
Для явного перетворення типів даних є функції однойменні з типом даних, якого відбувається перетворення: Рядок(<Значение>)

РядокІзЧисел = Рядок(Число);

Всі ці функції докладно описані в Синтакс-помічник, як програміст-початківець може допомогти Синтакс-помічник, я описав у статті .

Приклади роботи з рядками

Перетворення числа на рядок і назад.

Для отримання строкового подання року слід використовувати опцію Формат.

Рік = Формат(ПоточнаДата(), "ДФ=yyyy") // Рік = "2012"

Щоб перетворити число до рядка без вставки символу-розділювача груп ( нерозривної прогалини), необхідно застосувати функцію Формат із параметром ЧГ=0:

Число = 2012 Рядок = Формат (Число, "ЧГ = 0"); //Рядок = "2012"

Рядок Без пробілів.

Рядок — один із примітивних типів даних у системах 1С:Підприємство 8. Змінні з типом рядокмістять текст.

Значення змінних типу рядокполягають у подвійні лапки. Декілька змінних даного типу можна складати.

Пер1 = "Слово 1";
Пер2 = "Слово 2";
Пер3 = Пер1 + "" + Пер2;

В підсумку Пер3матиме значення « Слово 1 Слово 2”.

Крім того, в системах 1С:Підприємство 8 передбачені функції для роботи з рядками. Розглянемо основні:

ВвестиРядок(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — функція призначена для виведення діалогового вікна, в якому користувач може вказати значення змінної типу Рядок. Параметр <Строка> є обов'язковим і містить ім'я змінної, в яку буде записано введений рядок. Параметр <Подсказка> необов'язковий це заголовок діалогового вікна. Параметр <Длина> необов'язковий, показує максимальну довжинурядка, що вводиться. За замовчуванням дорівнює нулю, що означає необмежену довжину. Параметр <Многострочность> необов'язковий. Визначає режим введення багаторядкового тексту: Істина – введення багаторядкового тексту з роздільниками рядків; Брехня - введення простого рядка.

Рядок можна ввести і, знаючи код символу в кодуванні Unicode:

Символ(<КодСимвола>) — код вводиться як числа.

Літера = Символ (1103); // Я

Існує і зворотна функція, що дозволяє дізнатися код символу.

КодСимволу(<Строка>, <НомерСимвола>) — повертає номер вказаного символу у кодуванні Unicode у вигляді числа.

Функції перетворення регістру тексту:

ВРег(<Строка>) - Перетворює всі символи рядка у верхній регістр.

НРег(<Строка>) - Перетворює всі символи рядка в нижній регістр.

трег(<Строка>) - Перетворює всі символи рядка в титульний регістр. Тобто перші літери у всіх словах перетворюється на верхній регістр, інші літери — в нижній.

Функції пошуку та заміни символів у рядку:

Знайти (<Строка>, <ПодстрокаПоиска>) - знаходить номер символу входження підрядка пошуку. Наприклад:

Знайти ("Рядок", "ока"); // 4

СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - знаходить номер символу входження підрядка пошуку, номер входження вказується у відповідному параметрі. При цьому пошук починається із символу, номер якого вказано у параметрі Початкова позиція.Пошук можливий з початку або кінця рядка. Наприклад:

Номер4 Входження = СтрНайти ( "Обороноздатність", "О" , Напрям Пошуку. Спочатку, 1, 4); // 7

Стр Замінити (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – знаходить у вихідному рядку всі входження підрядка пошуку та замінює її на підрядок заміни.

СтрЗамінити ("Рядок", "ока", ""); // Стор

Порожня стрічка(<Строка>) – перевіряє рядок на наявність символів. Якщо значних символів немає, або взагалі ніяких символів немає, то значення повертається Істина. В іншому випадку - Брехня.

СтрЧИСЛОВХОДЖЕНЬ(<Строка>, <ПодстрокаПоиска>) – обчислює кількість входжень підрядка пошуку у вихідному рядку.

СтрЧИСЛОВХОДЖЕНЬ ( "вчитися, вчитися та ще раз вчитися", "вчитися", ""); // 3

СтрШаблон(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — підставляє параметри у рядок за номером. Рядок повинен містити маркери підстановки виду: %1..%N. Нумерація маркерів починається з 1. Якщо значення параметра Не визначене, підставляється порожній рядок.

СтрШаблон ( "Параметр 1 = %1, Параметр 2 = %2", "1" , "2" ) ; // Параметр 1 = 1, Параметр 2 = 2

Функції перетворення рядків:

Лев(<Строка>, <ЧислоСимволов>) - Повертає перші спочатку символи рядка.

Прав(<Строка>, <ЧислоСимволов>) - Повертає останні символи рядка.

Середовище<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - Повертає рядок довжиною в<ЧислоСимволов>починаючи з символу<НачальныйНомер>.

СокрЛ(<Строка>) відсікає незначні символи, що стоять ліворуч від першого символу в рядку.

СокрП(<Строка>) — відсікає незначні символи, що стоять праворуч від останнього символу в рядку.

СокрЛП(<Строка>) – відсікає незначні символи, що стоять ліворуч від першого символу в рядку і праворуч від останнього символу в рядку.

СтрОтриматиРоку(<Строка>, <НомерСтроки>) – отримує рядок рядкового рядка за номером.

Інші функції:

СтрДліна(<Строка>) – повертає кількість символів у рядку.

СтрЧислоРядок(<Строка>) – повертає число рядків у рядковому рядку. Рядок вважається новим, якщо він відокремлений від попереднього символу перекладу рядка.

Стр Порівняти(<Строка1>, <Строка2> ) – порівнює два рядки без урахування регістру. Функція працює аналогічно об'єкту ПорівнянняЗначень. Повертає:

  • 1 — якщо перший рядок більший за другий
  • -1 — якщо другий рядок більший за перший
  • 0 - якщо рядки рівні

СтрПорівняти("Перший рядок", "Другий рядок"); // 1