Добрый день. Есть таблица значений, при заполнении в строке код в конце появляются пробелы, пробовал и СокрЛП, и СтрЗаменить, ничего не помогает, и из за этого не могу в таблице значений найти строки, так как поиск идет по значению "000051", к примеру, а в таблице это значение такое "000051 _пробелы_ " . Подскажите, пожалуйста, как это исправить.

```1c
    НоваяСтрока = ТаблицаСКодамиНоменклатуры.Добавить();
    НоваяСтрока.КодНоменклатуры = СокрЛП(Строка.КодНоменклатуры);
    //НоваяСтрока.КодНоменклатуры = СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, ");
    //НоваяСтрока.КодНоменклатуры = СтрЗаменить(Строка.КодНоменклатуры, " ", ");
    //НоваяСтрока.КодНоменклатуры = СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, "));
```
---
Решил проблему перезапуском службы апач.
---
в свойствах колонки ТЗ установите переменную длину вместо фиксированной.
---
пробовал, тоже не помогло.
---
Строка.КодНоменклатуры как формируется?
---
```1c
    КвалификаторСтроки = Новый КвалификаторыСтроки(0);
    МассивСтрок = Новый Массив;
    МассивСтрок.Добавить(Тип("Строка"));
    ОписаниеТиповСтрок = Новый ОписаниеТипов(МассивСтрок, , КвалификаторСтроки);
    ТаблицаРезультатаЗапроса = Новый ТаблицаЗначений;
    ТаблицаРезультатаЗапроса.Колонки.Добавить("КодНоменклатуры", ОписаниеТиповСтрок);

    Пока РезультатЗапроса.Следующий() Цикл

    СтрокаРезультата = ТаблицаРезультатаЗапроса.Добавить();
    СтрокаРезультата.КодНоменклатуры= СокрЛП(Результат.НоменклатураКод);

    КонецЦикла;
```
---
Как формируется РезультатЗапроса.НоменклатураКод?
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Товары.Ссылка.Номер КАК Номер,
    | Товары.Количество КАК Количество,
    | Товары.Номенклатура.Код КАК НоменклатураКод,
    | Товары.Дата КАК Дата
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Товары КАК Товары
    |
    |УПОРЯДОЧИТЬ ПО
    | Дата";
    РезультатЗапроса = Запрос.Выполнить().Выбрать();

    КвалификаторСтроки = Новый КвалификаторыСтроки(0);
    МассивСтрок = Новый Массив;
    МассивСтрок.Добавить(Тип("Строка"));
    ОписаниеТиповСтрок = Новый ОписаниеТипов(МассивСтрок, , КвалификаторСтроки);
    ТаблицаРезультатаЗапроса = Новый ТаблицаЗначений;
    ТаблицаРезультатаЗапроса.Колонки.Добавить("КодНоменклатуры", ОписаниеТиповСтрок);

    Пока РезультатЗапроса.Следующий() Цикл

    СтрокаРезультата = ТаблицаРезультатаЗапроса.Добавить();
    СтрокаРезультата.КодНоменклатуры= СокрЛП(Результат.НоменклатураКод);

    КонецЦикла;
```
---
Так у вас у справочника "номенклатура" код имеет фиксированную длину. Сделайте переменную, либо в ТЗ сделайте фиксированную длину для поля КодНоменклатуры, такую же как у поля "код" справочника "номенклатуры"
---
делал фиксированную длину у поля КодНоменклатуры в тз, и фиксированную, и переменную, и неограниченной длины, все бесполезно, результат всегда один на выходе. Причем с остальными данными из результата запроса все ок, где есть пробелы, везде они убираются простой конструкцией СокрЛП(), а с кодом ничего не работает, хотя ,если посмотреть значение СокрЛП(Строка.КодНоменклатуры); , то код нормальный, без пробелов, а когда смотрю значение СтрокаРезультата.КодНоменклатуры - тут уже пробелы, судя по всему пробелы приписывает сама таблица значений.
---
СтрокаРезультата.КодНоменклатуры - это значение из БД
Строка.КодНоменклатуры - это данные ТЗ, сформированные по данные СтрокаРезультата.
Логично, что СокрЛП(Строка.КодНоменклатуры) будет без пробелов в случае переменной длины.
---
это для нас логично, а для тз совсем иначе все, пробелы и с фиксированной длиной ,и с переменной, вообще никакой разницы. Я уже даже колонку из таблицы значений сносил, создавал по новой, надеялся что поможет, но увы.
---
оно и в ТЗ работать должно с переменной длиной.
Строка.КодНоменклатуры = СокрЛП(Строка.КодНоменклатуры)
---
Вообще не понимаю, что за дичь. Вот так заработало как надо . Стоит мне убрать массив кодов и вернуть как было до этого, опять пробелы в коде появляются...
```1c
    МассивКодов = Новый Массив;
    Для Каждого Строка Из ТаблицаРезультатаЗапроса Цикл

    МассивКодов.Добавить(СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, ")));
    НоваяСтрока = ТаблицаСКодамиНоменклатуры.Добавить();
    НоваяСтрока.КодНоменклатуры = МассивКодов[0];

    КонецЦикла
```
---
Сделайте просто:

```1c
    НоваяСтрока = ТаблицаСКодамиНоменклатуры.Добавить();
    НоваяСтрока.КодНоменклатуры = СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, ");
```
---
Делал, в (1) закомментированы варианты, которые я пробовал делать, прежде чем создавать тему на форуме, ни один не работал.
---
ну хорошо:

```1c
    НоваяСтрока = ТаблицаСКодамиНоменклатуры.Добавить();
    НоваяСтрока.КодНоменклатуры = СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, "));
```

так работает?
---
НоваяСтрока.КодНоменклатуры = СокрЛП(Строка.КодНоменклатуры);
НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(32),"");
НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(160),"");
---
Попробовал даже так, но результат идентичный первому.
```1c
    НоваяСтрока.КодНоменклатуры = СтрЗаменить(СтрЗаменить(СтрЗаменить(СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, ")), " ","), Символ(32), "), Символ(160), ")
    НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(32),");
    НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(160),");
```
---
А количество пробелов всегда одинаковое или равно пустому заполнению кода?
---
создал номенклатуру с количеством символов в коде больше чем у остальных, и, судя по всему, количество пробелов равно пустому заполнению кода.
---
заработало вот так только (17) когда убрал МассивКодов, то опять пробелы появились, второй раз попробовал убрать МассивКодов, вообще ошибку начало выдавать, что значение не является значением объектного типа (КодНоменклатуры).... Как это вообще работает....
---
Решил проблему перезапуском службы апач.