1С 8.3 Заполнить таблицу значений на основе строки
Данные > Примеры кода 1С > 1С 8.3 Таблица значений
Перейти в раздел примеры кода 1С 8.3:

Позволяет в коде не используя макеты заполнить ТЗ на основе текстовой таблицы с отступами в 1С 8.3:
// Заполнить таблицу значений на основе текста
// Источник: https://t.me/JuniorOneS
//
// Параметры:
// Таблица - ТаблицаЗначений
// Текст - Строка
Процедура ЗаполнитьТаблицуЗначенийНаОсновеТекста(Таблица, Текст)
ЧислоСтрок = СтрЧислоСтрок(Текст);
ИменаКолонок = Новый Массив;
Разделитель = "|";
Для НомерСтроки = 1 По ЧислоСтрок Цикл
СтрокаТекста = СтрПолучитьСтроку(Текст, НомерСтроки);
Если ПустаяСтрока(СтрокаТекста) Тогда
Продолжить;
КонецЕсли;
ЧастьСтроки = СтрРазделить(СтрокаТекста, Разделитель, Истина);
Если ЗначениеЗаполнено(ИменаКолонок) Тогда
СтрокаТаблицы = Таблица.Добавить();
Для ИндексЧасти = 0 По ЧастьСтроки.Количество()-1 Цикл
СтрокаТаблицы[СокрЛП(ИменаКолонок[ИндексЧасти])] = СокрЛП(ЧастьСтроки[ИндексЧасти]);
КонецЦикла;
Иначе
ИменаКолонок = ЧастьСтроки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
// Источник: https://t.me/JuniorOneS
//
// Параметры:
// Таблица - ТаблицаЗначений
// Текст - Строка
Процедура ЗаполнитьТаблицуЗначенийНаОсновеТекста(Таблица, Текст)
ЧислоСтрок = СтрЧислоСтрок(Текст);
ИменаКолонок = Новый Массив;
Разделитель = "|";
Для НомерСтроки = 1 По ЧислоСтрок Цикл
СтрокаТекста = СтрПолучитьСтроку(Текст, НомерСтроки);
Если ПустаяСтрока(СтрокаТекста) Тогда
Продолжить;
КонецЕсли;
ЧастьСтроки = СтрРазделить(СтрокаТекста, Разделитель, Истина);
Если ЗначениеЗаполнено(ИменаКолонок) Тогда
СтрокаТаблицы = Таблица.Добавить();
Для ИндексЧасти = 0 По ЧастьСтроки.Количество()-1 Цикл
СтрокаТаблицы[СокрЛП(ИменаКолонок[ИндексЧасти])] = СокрЛП(ЧастьСтроки[ИндексЧасти]);
КонецЦикла;
Иначе
ИменаКолонок = ЧастьСтроки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Результат:

0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник