как перейти на строку в коде 1с
Как перейти на строку в коде 1с
Подсветка текущего идентификатора
Позволяет подсвечивать текущий идентификатор выбранным цветом.
Выделяются все идентикаторы у которых такое же имя.
Очень удобно для поиска идентификатора по тексту кода.
Отладка под определенным пользователем
Позволяет запускать отладку под определенным пользователем.
Незаменимо когда ошибка появляетося только у определенного пользователя или когда пользователю не хватает прав, но неизвестно каких.
Работа с открытыми окнами в конфигураторе
Позволяет расположить окна в удобном виде.
Выделить их все и закрыть.
Форматирование текста кода
Выделить нужный фрагмент кода и нажать Alt+Shift+F
Предположим, вы дорабатываете незнакомую конфигурацию и в каком-то модуле вам попался неотформатированный текст. Вам трудно в нем разобраться и вы хотите улучшить его читаемость, да и вообще сделать более «приличным».
В этом случае вам не нужно вручную двигать строки текста с помощью клавиши Tab, так как это гораздо удобнее и быстрее сделать с помощью форматирования блока текста.
Для этого выделите этот фрагмент текста (или сразу весь модуль – Ctrl + A) и нажмите кнопку Форматировать (Alt + Shift + F) в командной панели Текст.
Вывод списка всех процедур модуля + заготовки предопределенных процедур
Вернуться в исходное место после команды «Перейти к определению».
Во время анализа кода мы хотим посмотреть что за процедура или функция вызывается. Жмем ПКМ и выбираем перейти к определению и переходим к нужной процедуре/функции.
Но после просмотра функции мы хотим вернуться обратно. Для этого жмем «CTRL» + «-«:
Посмотреть где используется выделенная процедура/функция
Откуда была вызвана процедура/функция? Стек вызовов.
Допустим что в этой процедуре у нас ошибка мы ставим точку останова, но видим что в процедуру уже поступают неверные параметры.
Нужно узнать откуда была вызвана данная процедура. Вызываем стек вызовов:
Видим все процедуры из которорых мы перешли к текущей:
Вырезать часть кода в отдельную процедуру/функцию
Мы хотим часть кода вывести в отдельную процедуру чтобы использовать ее в других процедурах.
Для этого выделим нужную часть, вызовем контекстное меню и сделаем так:
Закладки и перейти к строке.
Бывает что код достаточно большой и нужно «прыгать» от одного места к другому.
Искать место глазами совсем неудобно.
Лучше воспользоваться следующими инструментами.
1 Переход к строке.
Запоминаем номер строки, он написан в правой нижней части экрана
Жмем в любом месте этого модуля кнопку или сочетание клавиш
В нужной строке жмем Alt+F2 либо через меню
Переход по закладкам горячие клавиши:
Остановить отладчик до наступления ошибки.
Отладчик будет остановлен на строке на которой будет ошибка.
Проверим что скажет отладчик.
и остановит процедуру на нужной строке
Вычислять выражение не меняя код.
В контекстном меню при остановке отладчика есть команда «Вычислить выражение». Shift+F9
В поле «Выражение» мы можем написать любой код и тут же получить ответ. Например:
Контекстная подсказка по параметрам
Принудительно вызвать обычную контекстную подсказку: CTRL+Пробел
При изменении объекта метаданных отключить автоматический поиск ссылок на него.
Инструмент безусловно полезный, но нужен он не всегда.
Отключается в Сервис-Параметры. Убрать галочки в группе «Рефакторинг при изменениях в метаданных и формах»:
Как перейти на строку в коде 1с
Описание:
Значения данного типа содержат строку в формате Unicode произвольной длины.
Литералы:
Литералы строкового типа представляют собой набор символов заключенных в кавычки. Для задания в строке символа » (кавычка) необходимо записать две кавычки подряд. Кроме того, допускаются «многострочные» строковые константы. В исходном тексте многострочные константы могут задаваться двумя способами:
Строки в языке 1С 8.3, 8.2 (в примерах)
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). |
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Программирование в 1С для всех
В этой статье изучим один из примитивных типов платформы 1С 8.3 – тип Строка. Научимся выводить строки, соединять, переносить, объединять с другими примитивными типами, а также узнаем, как работают строки в серверном и клиентском контексте, и научимся работать со строками на управляемой форме и в реквизитах объектов.
Строка в 1С
Строка это примитивный тип. Создать переменную типа строка достаточно просто. Нужно переменной присвоить какое-то значение в кавычках.
Метод Сообщить в 1С
Самый простой вариант вывести какую-то строку, это использование процедуры Сообщить. Это процедура глобального контекста, которая выводит сообщение пользователю внизу формы.
В параметре этой процедуры указывается переменная с типом строка (или сама строка), которая будет выведена пользователю на форме.
Если мы код выше применим на какой-нибудь управляемой форме, то получим такое сообщение.
Как объединить строки в 1С
В платформе 1С 8.3 имеется возможность объединять строки. Эта операция называется конкатенация, и выполняется при помощи оператора +.
Можно объединить строки, просто сложив две строки в кавычках. Вот так
Также, можно сложить две переменных с типом строка.
Объединять можно и несколько строк.
Перенос строки в 1С
Все строки, которые мы делали ранее, представляли собой одну длинную строку, что, согласитесь, бывает иногда не совсем удобно. Чтобы не испытывать неудобства, в платформе 1С можно переносить строки, тем самым получая многострочные строки. Для этих целей имеется символ переноса строки – «|» (вертикальная черта).
Наша строка с переносом должна иметь следующий вид.
В случае переноса, после окончания ряда строки не должно быть ни каких символов, а каждая новая строка должна начинаться с символа переноса строки «|».
Если мы выведем эту строку с помощью уже знакомого нам метода Сообщить, то будет такой результат.
Причём, обращу ваше внимание, что не достаточно просто написать символ «|» в строке, нужно этот символ, именно, перенести на новую строку в коде. Поэтому при написании такой строки:
Будет выводиться неверный результат:
Кавычки в строке в 1С
Иногда необходимо внутри строки отобразить кавычку как символ, как это сделать, если у нас кавычка открывает или закрывает строку. Для того, чтобы в строке вывелась кавычка необходимо в строке написать две кавычки подряд.
Будет выдавать следующий результат:
Пустая строка в 1С
А если нам нужно задать пустую строку? В этом случае достаточно просто написать две кавычки рядом, но так, чтобы между ними не было пробела.
Также, в платформе 1С 8.3. имеется возможность проверить, является строка пустой или нет. Для этого необходимо воспользоваться функцией ПустаяСтрока, где в качестве параметра нужно указать проверяемую строку, а возвращает она Истину, или Ложь, в зависимости от того, пустая строка или нет.
Также, эта функция вернет Истина, если в строке одни пробелы.
В этом примере я воспользовался отладкой в коде.
Перевод примитивных типов в строку
Часто возникает задачи, когда нужно примитивный тип перевести в строку, это можно сделать, используя метод Формат, или просто применить метод глобального контекста Строка, где в качестве параметра указать значение примитивного типа. При помощи этого метода можно перевести число в строку, дату в строку и тип булево в строку.
В коде ниже, преобразуются число, булево значение Истина и дата (текущая дата) в строку, а потом все это выводится в сообщении.
У этого кода будет следующий результат:
Причем, в методе Сообщить мы можем в некоторых случаях указать и переменную не строкового типа.
Также можно операцией конкатенацией соединять переменную типа строка с примитивной переменной не строкового типа.
В обоих случаях код нормально отработается.
Конкатенацией мы можем соединить строку с другим примитивным типом, но не можем, к примеру, соединить дату и булево.
Рекомендую вам не злоупотреблять конкатенацией с другими типами, иногда это может приводить к критическим ошибкам.
Строка 1С в клиентском и серверном контексте
Переменную примитивного типа строка можно создать, как в серверном, так и в клиентском контексте. Такой код будет вполне рабочий.
И также, для строк имеется возможность сериализации: т.е. можно перенести переменную с типом строка с клиента на сервер и наоборот:
Поэтому, и такой код будет вполне рабочим:
И наоборот, код также будет работать:
Таким образом, переменную с примитивным типом строка мы можем передать как с клиента на сервер, так и наоборот – с сервера на клиент.
Использование типа Строка в реквизитах объектов
Для того, чтобы реквизит какого-нибудь объекта имел тип Строка, достаточно просто указать этот тип в свойстве Тип нужного реквизита объекта.
У реквизита со свойством строка мы можем указать максимальную длину строки, а также будет длина строки фиксированная или переменная. Максимальная длина – это максимальное количество символов, которое можно вписать в строку.
Если мы укажем, что длина строки фиксированная, то длина строки реквизита объекта всегда будет приводиться к максимальной (заполняться пробелами).
Например, у реквизита ПолноеНаименование справочника Товары, я указал длину строки 10, и также отметил, что это фиксированная длина.
Если я запишу какое-то значение в поле формы, от оно автоматически заполнится пробелами до конца строки, и точно также с пробелами запишется в базу данных.
А если бы мы указали, что допустимая длинна – переменная.
То в этом случае, к строке не добавляются пробелы, и в базу записывается только то, что мы написали.
Также у строки можно указать, что она имеет неограниченную длину
В этом случае в строку можно вписать любое количество символов. Рекомендуется крайне редко использовать свойство Неограниченная длина, поскольку это свойство не совсем положительно сказывается на производительности.
Использование типа строка на управляемой форме
Реквизит управляемой формы 1С также может иметь тип Строка. Достаточно это указать в свойстве Тип реквизита.
Причем нам нужно нажать на кнопку «…» свойства, чтобы получить доступ к дополнительным свойствам строки.
В открывшемся окне мы можем указать длину строки, и установить (или снять) признак неограниченной длинны строки.
Если мы снимем признак неограниченности длинны строки, то сможем указать, какая будет строка – фиксированная или переменна.
Если мы перетащим реквизит в элементы формы, то будет создано поле ввода, в которое пользователь может вводить любую строковую информацию.
У нас имеется возможность сделать многострочный режим ввода, если у элемента поле ввода установим в свойство Многострочный режим значение Да.
Другие статьи о примитивных типах:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Оператор безусловного перехода (goto) 1С
Оператор безусловного перехода — конструкция, которая позволяет перейти к произвольной точке кода в функции или процедуре. Опытные программисты не рекомендуют использовать данный способ, потому как он серьезно затрудняет чтение и понимание программного кода.
Во всех языках программирования этот оператор выглядит как «go to» или «goto». В 1С тоже можно использовать данных оператор. Однако, для программистов 1С более привычен русскоязычный синтаксис. В 1С оператору «goto» соответствует «Перейти».
Использование безусловного перехода в 1С
В 1С его можно использовать в разных случаях: отключать какие либо проверки в коде, выходить из больших циклов и так далее. Использовать этот оператор очень просто.
Для примера я создам обработку, выведу на неё одну кнопку в которой наглядно продемонстрирую работу команды. В обработчике укажем следующий код:
КудаПерейти;
Сообщить(«Это сообщение не появится :(«);
КудаПерейти:
Сообщить(«А вот это появится :)»);
В данном случае система проигнорирует выполнение 2 строчки кода и перейдет сразу к следующей. Если мы выполним команду мы увидим это:
Мы рассмотрели на простом примере что такое операторы безусловного перехода в 1С и как их использовать.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Строки в 1С 8.3 — строковые функции
Строки в 1С 8.3 во встроенном языке 1с представляют собой значения примитивного типа Строка. Значения данного типа содержат строку в формате Unicode произвольной длины. Переменные строкового типа являются набором символов заключенных в кавычки.
Пример 1. Создадим строковую переменную с текстом.
Функции работы со строками в 1с 8.3
В данном разделе будут приведены основные функции, позволяющие изменять строки в 1с, либо анализировать информацию содержащуюся в них.
СтрДлина
СтрДлина( ). Возвращает количество символов содержащихся в строке, переданной в параметре.
Пример 2. Посчитаем количество символов в строке «Привет мир!».
Итогом выполнения данного кода будет вывод на экран количества символов строки: 11.
СокрЛ
СокрЛ( ). Отсекает незначащие символы, стоящие слева от первого значащего символа в строке.
Незначащие символы:
Пример 3. Убрать все пробелы с левой стороны строки » мир!» и присоединить к ней строку «Привет «.
Итогом выполнения данного кода будет вывод на экран строки «Привет мир!».
СокрП
СокрП( ). Отсекает незначащие символы, стоящие справа от первого значащего символа в строке.
Пример 4. Сформировать из строк «Привет » и » мир!» фразу «Привет мир!»
СокрЛП
СокрЛП( ). Отсекает незначащие символы, стоящие справа от первого значащего символа в строке, также отсекает незначащие символы, стоящие слева от первого значащего символа в строке. Данная функция используется чаще предыдущих двух, так как она более универсальна.
Пример 5. Убрать незначащие символы стоящие слева и справа в наименовании контрагента.
Пример 6. Пусть в структуре Сотрудник содержаться имя, фамилия и отчество сотрудника. Получить строку с фамилией и инициалами.
Пример 7. Пусть в конце строковой переменной записана дата в формате «ггггммдд», получить строку с датой и преобразовать ее к типу Дата.
Пример 8. Пусть в строковой переменной начиная с девятой позиции содержится код региона, следует получить его и записать в отдельную строку.
СтрНайти
Пример 9. В строке «Привет мир!» определить позицию последнего вхождения символа «и».
Итогом выполнения данного кода будет вывод на экран номера последнего вхождения символа «и»: 9.
ВРег( ). Преобразует все символы указанной строки в 1с 8 к верхнему регистру.
Пример 10. Преобразовать строку «привет мир!» к верхнему регистру.
Итогом выполнения данного кода будет вывод на экран строки «ПРИВЕТ МИР!»
НРег( ). Преобразует все символы указанной строки в 1с 8 к нижнему регистру.
Пример 11. Преобразовать строку «ПРИВЕТ МИР!» к нижнему регистру.
Итогом выполнения данного кода будет вывод на экран строки «привет мир!»
ТРег( ). Преобразует строку следующим образом: первый символ каждого слова переводится в верхний регистр, остальные символы слова переводятся в нижний регистр.
Пример 12. Сделать заглавными первые буквы слов в строке «привет мир!».
Итогом выполнения данного кода будет вывод на экран строки «Привет Мир!»
Символ
Символ( ). Получает символ по его коду в кодировке Unicod.
Пример 13. Добавим слева и справа в строку «Привет Мир!» символ ★
Итогом выполнения данного кода будет вывод на экран строки «★Привет Мир!★»
КодСимвола
Пример 14. Узнать код последнего символа в строке «Привет Мир!».
Итогом выполнения данного кода будет вывод на экран кода символа «!» — 33.
ПустаяСтрока
ПустаяСтрока( ). Проверяет состоит ли строка только из незначащих символов, то есть является ли она пустой.
Пример 15. Проверить является ли пустой строка состоящая из трех пробелов.
Итогом выполнения данного кода будет вывод на экран слова «Да» (строковое выражение логического значения Истина).
СтрЗаменить
Пример 16. В строке «Привет Мир!» заменить слово «Мир» на слово «Друзья».
Итогом выполнения данного кода будет вывод на экран строки «Привет Друзья!»
СтрЧислоСтрок
СтрЧислоСтрок( ). Позволяет посчитать количество строк в многострочной строке. Для перехода на новую строку в 1с 8 используется символ ПС (символ перевода строки).
Пример 17. Определить число строк в тексте:
«Первая строка
Вторая строка
Третья строка»
Итогом выполнения данного кода будет вывод на экран количества строк в тексте: 3
СтрПолучитьСтроку
Пример 18. Получить последнюю строку в тексте:
«Первая строка
Вторая строка
Третья строка»
Итогом выполнения данного кода будет вывод на экран строки «Третья строка».
СтрЧислоВхождений
Пример 19. Определить сколько раз входит в строку «Строки в 1с 8.3 и 8.2» буква «с», вне зависимости от ее регистра.
Итогом выполнения данного кода будет вывод на экран числа вхождений: 2.
СтрНачинаетсяС
Пример 20. Определить начинается ли ИНН выбранного контрагента с цифры 1. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты.
СтрЗаканчиваетсяНа
Пример 21. Определить заканчивается ли ИНН выбранного контрагента на цифру 2. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты.
СтрРазделить
Пример 22. Пусть у нас есть строка содержащая числа разделенные символом «;», получить из строки массив чисел.
В результате выполнения будет получен массив с числами от 1 до 3-х.
СтрСоединить
Пример 23. Используя массив чисел из предыдущего примера, получить исходную строку.
Также прочитать про строковые функции появившиеся в 8.3 можно на официальном сайте 1С: v8.1c.ru
Прочитайте статью про работу с числами: Число в 1С 8.3 — функции работы с числами