1с удалить формат строк

Обновлено: 07.07.2024

В интерфейсе поля формы, или редактора Табличного документ в контекстном меню есть пункт "удалить формат строк". Действия этой кнопки можно повторить программно?

Бывает что на выходе получаем табличный документ, в котором содержаться области, со своими форматами строк. Иногда у пользоватлей при редактировании такого табличного документ возникают нюансы..

В довесок еще вопрос. Как можно определить группы областей со своим собственным форматом строк программно? ведь такие области могут находится не сплошняком а с разрывом.

Итак , результат изысканий:
На программном уровне функции , такие как "Удалить формат строк" и расчет автоширины колонок, не реализованы.
Но найдено два способа обходных путей.
1. сериализация , изменение сериализованного объекта , и обратная десериализация
Пример:

Данный метод хорош тем, что полностью может отработать НаКлиенте . Но при больших размерах данных в табличном документе время выполнения будет задерживаться в сериализации и десериализации. Так же данный способ позволяет ответить на мой второй вопрос : Найти строки с одинаковым форматом строк. Строки у которых будет одинаковый формат будут ссылаться на один и тот же ID колонок. Пример приводить не буду, пока сильной необходимости нету. А так же метод пока не отлажен, и кто его знает какие есть подводные камни.
Спасибо за идею из (9) и (14) . В (14) считаю излишне перегонять это в xml или json. И тем более перебирать строки. Лучше наверное работать в "объектной" модели.

2. Копирование области в пустую часть, и удаление области с собственным форматом
Пример:

Минус данного метода, что он выполняется только на НаСервере . На больших данных наблюдается задержка как раз при вызове сервера, а так же при удалении области. Так же минусом будет то, что "полетят" высоты строк
Еще "фишка" данного способа, все "невидимые" строки отобразятся. Иногда это полезно

PS
Можете спросить а для чего это вообще может понадобиться.
1. Когда предоставляешь пользователю редактировать документ, а он при этом сформирован внешними функциями или отчетом, то иногда пользователь может недоумевать, почему "плывут колонки", или почему я не могу вставить нормально строки.
2. При чтении в табличный документ например из эксель, листы эксель читаются именованными областями, каждая из которых имеет собственный формат строк. А для корректного, последующего чтения данных из табличного документа нужно как раз что бы все было видно достаточно прозрачно.
3. При сохранении табличного документа в эксель, что бы не добавлялись лишние колонки в самом эксель.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Формат

Описание:

Формирует удобное для чтения представление значений. Полезно использование в отчетах и при прочем визуальном отображении значений.

Синтаксис:

Параметры:

Форматная строка представляет собой строковое значение, включающее параметры форматирования.

Параметры форматирования перечисляются через символ ";". Наличие параметра означает отличие форматирования от стандартного.

Если параметр не задан, то применяется стандартное форматирование, которое в основном соответствует преобразованию значения к строке. Однако для значений типа Число и Дата по умолчанию (0 и 01.01.0001 00:00:00 соответственно) будет выдаваться пустая строка.

  • 0 (0) - строка вида "(1,1)";
  • 1 (1) - строка вида "-1,1";
  • 2 (2) - строка вида "- 1,1";
  • 3 (3) - строка вида "1,1-";
  • 4 (4) - строка вида "1,1 -".
  • д - день месяца (цифрами) без лидирующего нуля;
  • дд - день месяца (цифрами) с лидирующим нулем;
  • ддд - краткое название дня недели;
  • дддд- полное название дня недели ;
  • М - номер месяца (цифрами) без лидирующего нуля;
  • ММ - номер месяца (цифрами) с лидирующим нулем;
  • МММ - краткое название месяца;
  • ММММ - полное название месяца;
  • к - номер квартала в году;
  • г - номер года без века и лидирующего нуля;
  • гг - номер года без века с лидирующим нулем;
  • гггг - номер года с веком;
  • ч - час в 12 часовом варианте без лидирующих нулей;
  • чч - час в 12 часовом варианте с лидирующим нулем;
  • Ч - час в 24 часовом варианте без лидирующих нулей;
  • ЧЧ (HH) - час в 24 часовом варианте с лидирующим нулем;
  • м - минута без лидирующего нуля;
  • мм - минута с лидирующим нулем;
  • с - секунда без лидирующего нуля;
  • сс - секунда с лидирующим нулем;
  • вв - отображение половины дня AM/PM (действительно только для языков конфигурирования, поддерживающих 12 часовой вариант представления времени).
  • Д - дата (цифрами);
  • ДД - длинная дата (месяц прописью);
  • В - полное время, дата может объединяться со временем;
  • ДВ - дата время.

Функция Формат в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

работа со строками в 1С

Функции работы со строками в 1С

Рассмотрим основные функции встроенного языка программирования 1С.

Строка

Функция Строка() позволяет получить текстовое представление переменных других типов.

СтрДлина

Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.

СокрЛП, СокрЛ, СокрП

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.

Лев, Прав, Сред

С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).

Найти

ВРег, НРег, ТРег

ПустаяСтрока

Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.

Аналогично можно проверить строку на пустое значение следующим образом:

СтрЗаменить

Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:

СтрЧислоСтрок

Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).

Например, построчная обработка текстового фрагмента:

СтрПолучитьСтроку

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

Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.

Символ и КодСимвола

Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.

Часто встречающиеся задачи по работе со строками в 1С

Рассмотрим классические примеры решения задач в работе с текстовыми переменными.

Конкатенация строк в 1С

Преобразовать число в строку

Однако может смущать наличие неразрывного пробела.

Его можно убрать с помощью замены неразрывного пробела на пустую строку:

или с помощью метода Формат:

Кавычки в строке 1С

Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.

Символ переноса строки

Сравнение строк в 1С

Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:

Таким образом, мы получим более точное сравнение двух строк.

Убрать пробелы в строке 1С

Достаточно часто нужно убрать пробелы в строке 1С.

Если требуется убрать пробелы справа и слева:

Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:

Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:

Другие статьи по 1С:

Тип «Строка» встречается во всех языках программирования. Он является примитивным, и в 1С существует много функций для работы с ним. В данной статье мы подробно рассмотрим различные способы работы со строковыми типами в 1С 8.3 и 8.2 на примерах.

регистр строки

Строковые функции в 1С

Строка

Преобразовывать к строке возможно не только примитивные типы, но и остальные, например элементы справочников, документов.

СокрЛП, СокрЛ, СокрП

В качестве входных параметров данных функций выступает переменная строкового типа. Функции удаляют незначащие символы (пробелы, переносы каретки и прочие): с левой и правой стороны, только с левой стороны, и только с правой соответственно.

Лев, Прав, Сред

Данные функции позволяют обрезать часть строки. Функция «Лев()» вернет часть строки с ее левой стороны указанной длины. Функция «Прав()» аналогично, но обрезка производится справа. Функция «Сред()» позволяет указать номер символа, с которого будет выделена строка и ее длину.

СтрДлина

Функция определяет количество символов, которые содержатся в строковой переменной.

Найти

Функция дает возможность искать в какой-либо строковой переменной часть строки. В качестве возвращаемого значения будет выступать число, которое показывает позицию начала найденной строки. Если совпадений не обнаружено, возвращается ноль.

Обратите внимание, что поиск производится с учетом регистра. Если в изначальной строке будет больше одного вхождения подстроки поиска, функция вернет начало первого вхождения.

ПустаяСтрока

Использование данной функции позволяет определить, является ли строка пустой. Незначимые символы, например, пробел, перенос каретки и другие не учитываются.

ВРег, НРег, ТРег

Получите понятные самоучители по 1С бесплатно:

Данные функции очень полезны при сравнении и преобразовании строковых переменных. «Врег()» вернет исходную строку в верхнем регистре, «НРег()» в нижнем, а «ТРег()» отформатирует ее так, что первый символ каждого отдельного слова будет с большой буквы, а все последующие с маленькой.

СтрЗаменить

Данная функция является аналогом замены в текстовых редакторах. Она позволяет подменять один символ или набор символов другим в строковых переменных.

СтрЧислоСтрок

Функция позволяет определить количество строк, разделенных переносом каретке в текстовой переменной.

Цикл, в приведенном ниже примере, пройдет три круга, так как функция СтрЧислоСтрок вернет значение 3:

СтрПолучитьСтроку

Данная функция работает с многострочным текстом так же, как и предыдущая. Она позволяет получить определенную строку из текстовой переменной.

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

Функция подсчитывает количество вхождений символа или подстроки в искомой строке.

Символ и КодСимвола

Эти функции позволяют получать символ по его коду в кодировке Unicode, а так же определять этот код по самому символу.

Частые задачи при работе со строками

Объединение строк

Чтобы объединить несколько строк (произвести конкатенацию) достаточно использовать оператор сложения.

Преобразование типов

Для того, чтобы преобразовать тип в строку, например, ссылку на элемент справочника, число и прочее, достаточно использовать функцию «Строка()». Функции, подобные «СокрЛП()» так же будут преобразовывать переменные в строку, но уже сразу с отсечением незначащих символов.

Обратите внимание, что при преобразовании числа в строку, программа автоматически добавила пробел, отделяющий тысячу. Для того чтобы этого избежать можно воспользоваться следующими конструкциями:

Кавычки в строке

Довольно часто вам придется сталкиваться с необходимостью указать в строковой переменной кавычки. Это может быть как текст запроса, написанный в конфигураторе, так и просто переменная. Для решения данной задачи вам достаточно установить два символа кавычек.

Многострочность, перенос строки

Для того, чтобы создать многострочный текст достаточно добавить в него символы переноса строки (Символы.ПС).

Как убрать пробелы

Для того, чтобы убрать пробелы справа или слева можно воспользоваться функцией «СокрЛП()» (а так же «СокрЛ()» и «СокрП()»):

Если после преобразования числа в строку вам потребовалось убрать неразрывные пробелы, воспользуйтесь следующей конструкцией:

Так же программисты часто пользуются ниже приведенной конструкцией, которая позволяет удалить, либо заменить на другой символ все пробелы текстовой переменной:

Сравнение строк между собой

Сравнить сроки можно обычным знаком равенства. При сравнении учитывается регистр.

Читайте также: