Функція знайти останнє входження до 1с бухгалтерії. Функції перетворення регістру тексту

Рядки в 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 Цикл Масив [Сч] = Рядок (Масив [Сч]); КінецьЦикл; Рядок = СтрЗ'єднати(Масив, "; ");

У цій статті я розповім вам про функцію швидкого пошуку 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 швидкий пошук працює як звичайний фільтр, приховуючи непотрібну вам частину списку.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Механізмів для роботи з рядками у запитах 1С мало. По-перше, рядки можна складати. По-друге, від рядка можна взяти підрядок. По-третє, рядки можна порівнювати, зокрема за шаблоном. Ось мабуть і все, що можна робити з рядками.

Складання рядків

Для додавання рядків у запиті використовується операція «+». Складати можна лише рядки обмеженої довжини.

ВИБРАТИ "Найменування: " + Контрагенти.Найменування ЯК Колонка1 З Довідник.Контрагенти ЯК Контрагенти ДЕ Контрагенти.Посилання = &Посилання

Функція Підстроювання

ПІДСТРОКУ(<Строка>, <НачальнаяПозиция>, <Длина>)

Аналог функції Серед () з об'єктної моделі. Функція Підстрока() може застосовуватися до даних рядкового типу та дозволяє виділити фрагмент <Строки> , що починається з номер символ <НачальнаяПозиция> (символи в рядку нумеруються з 1) та довжиною <Длина> символів. Результат обчислення функції має рядковий тип змінної довжини, причому довжина вважатиметься необмеженою, якщо <Строка> має необмежену довжину та параметр <Длина> не є константою чи перевищує 1024.

Якщо довжина рядка менша, ніж зазначено у другому параметрі, то функція поверне порожній рядок.

Увага!Використання функції ПІДСТРОКУ() з метою приведення рядків необмеженої довжини до рядків обмеженої довжини не рекомендується. Замість неї краще використовувати операцію наведення типу ВИРАЗИТИ().

Функція Подібно

Якщо потрібно переконатися, що рядковий реквізит відповідає певним критеріям, ми його порівнюємо:

ВИБРАТИ Контрагенти.Найменування ЯК Колонка1 З Довідник.Контрагенти ЯК Контрагенти ДЕ Контрагенти.Найменування = "Газпром"

А що, якщо потрібно хитріше порівняння? Не просто на рівність чи нерівність, а на подібність до певного шаблону? Ось саме для цього і створена функція подібно.

ПОДІБНО — Оператор перевірки рядка на зразок шаблону. Аналог LIKE у SQL.

Оператор подібно дозволяє порівняти значення виразу, вказаного зліва від нього, з рядком шаблону, вказаним праворуч. Значення виразу має мати рядок. Якщо значення виразу задовольняє шаблон - результатом оператора буде ІСТИНА, інакше - БРЕХНЯ.

Наступні символи у рядку шаблону є службовими і мають сенс, відмінний від символу рядка:

  • % (відсоток): послідовність, що містить будь-яку кількість довільних символів;
  • _ (підкреслення): один довільний символ;
  • […] (у квадратних дужках один або кілька символів): будь-який одиночний символ із перелічених усередині квадратних дужок. У перерахуванні можуть зустрічатися діапазони, наприклад, a-z, що означають довільний символ, що входить в діапазон, включаючи кінці діапазону;
  • [^…] (у квадратних дужках значок заперечення, за яким слідує один або кілька символів): будь-який одиночний символ, крім тих, які перелічені слідом за значком заперечення.

Будь-який інший символ означає сам себе і не несе жодного додаткового навантаження. Якщо як самого себе необхідно записати один із перелічених символів, то йому має передувати<Спецсимвол>. Сам<Спецсимвол>(будь-який відповідний символ) визначається в цьому ж операторі після ключового слова СПЕЦСИМВОЛ.