Строки таблицы значений заполняются с пробелами
Добрый день. Есть таблица значений, при заполнении в строке код в конце появляются пробелы, пробовал и СокрЛП, и СтрЗаменить, ничего не помогает, и из за этого не могу в таблице значений найти строки, так как поиск идет по значению "000051", к примеру, а в таблице это значение такое "000051 _пробелы_ " . Подскажите, пожалуйста, как это исправить.
НоваяСтрока = ТаблицаСКодамиНоменклатуры.Добавить();
НоваяСтрока.КодНоменклатуры = СокрЛП(Строка.КодНоменклатуры);
//НоваяСтрока.КодНоменклатуры = СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, "");
//НоваяСтрока.КодНоменклатуры = СтрЗаменить(Строка.КодНоменклатуры, " ", "");
//НоваяСтрока.КодНоменклатуры = СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, ""));
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5)
КвалификаторСтроки = Новый КвалификаторыСтроки(0);
МассивСтрок = Новый Массив;
МассивСтрок.Добавить(Тип("Строка"));
ОписаниеТиповСтрок = Новый ОписаниеТипов(МассивСтрок, , КвалификаторСтроки);
ТаблицаРезультатаЗапроса = Новый ТаблицаЗначений;
ТаблицаРезультатаЗапроса.Колонки.Добавить("КодНоменклатуры", ОписаниеТиповСтрок);
Пока РезультатЗапроса.Следующий() Цикл
СтрокаРезультата = ТаблицаРезультатаЗапроса.Добавить();
СтрокаРезультата.КодНоменклатуры= СокрЛП(Результат.НоменклатураКод);
КонецЦикла;
Показать
(8)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Ссылка.Номер КАК Номер,
| Товары.Количество КАК Количество,
| Товары.Номенклатура.Код КАК НоменклатураКод,
| Товары.Дата КАК Дата
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК Товары
|
|УПОРЯДОЧИТЬ ПО
| Дата";
РезультатЗапроса = Запрос.Выполнить().Выбрать();
КвалификаторСтроки = Новый КвалификаторыСтроки(0);
МассивСтрок = Новый Массив;
МассивСтрок.Добавить(Тип("Строка"));
ОписаниеТиповСтрок = Новый ОписаниеТипов(МассивСтрок, , КвалификаторСтроки);
ТаблицаРезультатаЗапроса = Новый ТаблицаЗначений;
ТаблицаРезультатаЗапроса.Колонки.Добавить("КодНоменклатуры", ОписаниеТиповСтрок);
Пока РезультатЗапроса.Следующий() Цикл
СтрокаРезультата = ТаблицаРезультатаЗапроса.Добавить();
СтрокаРезультата.КодНоменклатуры= СокрЛП(Результат.НоменклатураКод);
КонецЦикла;
Показать
(12) делал фиксированную длину у поля КодНоменклатуры в тз, и фиксированную, и переменную, и неограниченной длины, все бесполезно, результат всегда один на выходе. Причем с остальными данными из результата запроса все ок, где есть пробелы, везде они убираются простой конструкцией СокрЛП(), а с кодом ничего не работает, хотя ,если посмотреть значение СокрЛП(Строка.КодНоменклатуры); , то код нормальный, без пробелов, а когда смотрю значение СтрокаРезультата.КодНоменклатуры - тут уже пробелы, судя по всему пробелы приписывает сама таблица значений.
(14)Вообще не понимаю, что за дичь. Вот так заработало как надо . Стоит мне убрать массив кодов и вернуть как было до этого, опять пробелы в коде появляются...
МассивКодов = Новый Массив;
Для Каждого Строка Из ТаблицаРезультатаЗапроса Цикл
МассивКодов.Добавить(СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, "")));
НоваяСтрока = ТаблицаСКодамиНоменклатуры.Добавить();
НоваяСтрока.КодНоменклатуры = МассивКодов[0];
КонецЦикла
(4)Попробовал даже так, но результат идентичный первому.
НоваяСтрока.КодНоменклатуры = СтрЗаменить(СтрЗаменить(СтрЗаменить(СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, "")), " ",""), Символ(32), ""), Символ(160), "")
НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(32),"");
НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(160),"");
(20) заработало вот так только (17) когда убрал МассивКодов, то опять пробелы появились, второй раз попробовал убрать МассивКодов, вообще ошибку начало выдавать, что значение не является значением объектного типа (КодНоменклатуры).... Как это вообще работает....
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот