28.01.2021 Ольга Волкова 48709
Конкатенация в 1С

Содержание:

1.       Операция конкатенации строк

2.       Конкатенация в запросах  


1.   Операция конкатенации строк


Конкатена́ция — это операция склеивания объектов линейной структуры. В 1С конкатенации (+ или &) используется для того, чтобы присоединить одну строку к другой. В результате использования конкатенации значений длина строки получается равна сумме длин соединяемых строк. Если типы данных второго или последующих операндов со строковым типом не совпадают, их значение преобразуется к строковому типу переменных (т.е., например, число автоматически будет преобразовано к типу переменной, указанной слева от оператора +).

 

Пример:


Имя= «Остап»;

Отчество= «Ибрагимович»;

Фамилия= «Бендер»;

ФИОГР=Имя+ “ “ +Отчество+ “ “ +Фамилия + “ гр- “ + 1987;

//получим Остап Ибрагимович Бендер гр-1987

 

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


ИтогСтрока = Строка + ЭлементКоллекции;

 

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


Есть несколько вариантов получения строки из коллекции.


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


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


Пример:


СтрокаКолекц=Сред(СтрЗаменить(ЗначениеВСтрокуВнутр(Массив), """}," + Символы.ПС + "{""S"",""", ""), 53 + СтрДлина(Формат(Массив.Количество(), "ЧГ=")));

При массовых операциях конкатенации строк можно использовать методы платформы СтрРазделить и СтрСоединить.


Например:


ИзвТекст= Новый Массив;
Для НомерКолонки = 1 По Макет.ШиринаТаблицы Цикл
ИзвТекст.Добавить(ТекстОбласти);

РезультатТекст = СтрСоединить(ИзвТекст, Символы.ПС);


Еще один способ операции конкатенации строк — использование объекта ЗаписьXML. У этого объекта можно использовать метод ЗаписатьБезОбработки() для «сборки» документа в том виде, какой подается на вход, т.е. без лишних тегов. 

 

2.      Конкатенация в запросах


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

 

Конкатенация в запросах может использоваться при программной "сборке" текста запроса. Пример:

 

ТекстЗапроса =
"ВЫБРАТЬ
Номенклатура.Наименование КАК Наименование,
&ИмяПоляКод КАК КодНоменклатуры
ИЗ
Справочник.Номенклатура КАК Номенклатура ;

 

ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "&ИмяПоляКод ", "Номенклатура." + ИмяПоляКод);

 

Пример изменения имени таблицы в запросе:

 

ТекстЗапроса =

"ВЫБРАТЬ
|ТаблицаСправочника.Наименование КАК Наименование,
|ТаблицаСправочника.Код КАК КодСправочника
|ИЗ
|&ТабСправочника КАК ТаблицаСправочника";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "&ТабСправочника", "Справочник." + ИмяСправочника);


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


ВЫБРАТЬ

ВЫРАЗИТЬ(ВЫРАЗИТЬ("123" КАК Строка(3))+ВЫРАЗИТЬ("789" КАК Строка(3))

КАК Строка(6)) КАК Результат

ИЗ

Справочник.Номенклатура КАК Номенклатура

 

Специалист компании «Кодерлайн»

Ольга Волкова

Наши проекты

Внедрение системы финансового учета БИТ:Финанс
ООО «Алькор и Ко» (Л’Этуаль)

Отрасль:
Торговля

Внедренное типовое решение:
БИТ.Финанс

- Финансовый учет;
- Поддержка проекта внедрения МСФО;
- Регламентные рабо...

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

Внедренное типовое решение:
Платформа 1С:Предприятие 8

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в дан...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

АО «Аэроклуб»
АО «Аэроклуб»

Отрасль:
Услуги в области делового туризма

Внедренное типовое решение:
1С:Бухгалтерия 8 КОРП

Проведение серии интервью с руководством и ключевыми специалистами Разраб...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"
ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"

Отрасль:
Деятельность больничных организаций

Внедренное типовое решение:
БИТ:Управление медицинским центром 8

- Управление отношениями с клиентами (CRM)
- Делопроизводство
- Ведение но...

Установка программного продукта БИТ.Финанс для 1С:Бухгалтерия 8
ООО «Джи Эй Си Шиппинг энд Лоджистикс»

Отрасль:
Транспорт

Внедренное типовое решение:
БИТ.Финанс

Построение единого информационного пространства финансовой службы;
Учет ...

ООО «Мир Аксиомы»
ООО «Мир Аксиомы»

Отрасль:
Аудиторские и консалтинговые услуги

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

ЗАО «Многопрофильная формирующая авиагруппа» (ЗАО МФГ)
ЗАО «Многопрофильная формирующая авиагруппа» (ЗАО МФГ)

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

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

- Финансы, управленческий учет, мониторинг показателей
- Бухгалтерский уче...

ООО "ТК "Сытый Дом-НН"
ООО "ТК "Сытый Дом-НН"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Управление торговлей 8

Взаиморасчеты с покупателями
Оптовая торговля
Управление складскими за...

ООО "Эскорт-Центр"
ООО "Эскорт-Центр"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Сквозной учет затрат по объектам
- Бухгалтерский учет
- Расчет зарплаты...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение