Строки таблицы значений заполняются с пробелами

1. user1619761 16.12.21 11:37 Сейчас в теме
Добрый день. Есть таблица значений, при заполнении в строке код в конце появляются пробелы, пробовал и СокрЛП, и СтрЗаменить, ничего не помогает, и из за этого не могу в таблице значений найти строки, так как поиск идет по значению "000051", к примеру, а в таблице это значение такое "000051 _пробелы_ " . Подскажите, пожалуйста, как это исправить.
НоваяСтрока = ТаблицаСКодамиНоменклатуры.Добавить();
НоваяСтрока.КодНоменклатуры = СокрЛП(Строка.КодНоменклатуры);
//НоваяСтрока.КодНоменклатуры = СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, "");
//НоваяСтрока.КодНоменклатуры = СтрЗаменить(Строка.КодНоменклатуры, " ", "");
//НоваяСтрока.КодНоменклатуры = СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, ""));
По теме из базы знаний
Найденные решения
22. user1619761 16.12.21 13:11 Сейчас в теме
Решил проблему перезапуском службы апач.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 16.12.21 11:43 Сейчас в теме
(1)в свойствах колонки ТЗ установите переменную длину вместо фиксированной.
3. user1619761 16.12.21 11:45 Сейчас в теме
(2) пробовал, тоже не помогло.
5. nomad_irk 76 16.12.21 11:50 Сейчас в теме
(3)Строка.КодНоменклатуры как формируется?
7. user1619761 16.12.21 12:00 Сейчас в теме
(5)
КвалификаторСтроки = Новый КвалификаторыСтроки(0);
	МассивСтрок = Новый Массив;
	МассивСтрок.Добавить(Тип("Строка"));
	ОписаниеТиповСтрок = Новый ОписаниеТипов(МассивСтрок, , КвалификаторСтроки);
	ТаблицаРезультатаЗапроса = Новый ТаблицаЗначений;
	ТаблицаРезультатаЗапроса.Колонки.Добавить("КодНоменклатуры", ОписаниеТиповСтрок);
	
	Пока РезультатЗапроса.Следующий() Цикл
		
		СтрокаРезультата = ТаблицаРезультатаЗапроса.Добавить();
		СтрокаРезультата.КодНоменклатуры= СокрЛП(Результат.НоменклатураКод);
		
	КонецЦикла;
Показать
8. nomad_irk 76 16.12.21 12:03 Сейчас в теме
(7)Как формируется РезультатЗапроса.НоменклатураКод?
10. user1619761 16.12.21 12:10 Сейчас в теме
(8)
Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Товары.Ссылка.Номер КАК Номер,
	|	Товары.Количество КАК Количество,
	|	Товары.Номенклатура.Код КАК НоменклатураКод,
	|	Товары.Дата КАК Дата
	|ИЗ
	|	Документ.РеализацияТоваровУслуг.Товары КАК Товары 
	|
	|УПОРЯДОЧИТЬ ПО
	|	Дата";
	РезультатЗапроса = Запрос.Выполнить().Выбрать();

КвалификаторСтроки = Новый КвалификаторыСтроки(0);
    МассивСтрок = Новый Массив;
    МассивСтрок.Добавить(Тип("Строка"));
    ОписаниеТиповСтрок = Новый ОписаниеТипов(МассивСтрок, , КвалификаторСтроки);
    ТаблицаРезультатаЗапроса = Новый ТаблицаЗначений;
    ТаблицаРезультатаЗапроса.Колонки.Добавить("КодНоменклатуры", ОписаниеТиповСтрок);
    
    Пока РезультатЗапроса.Следующий() Цикл
        
        СтрокаРезультата = ТаблицаРезультатаЗапроса.Добавить();
        СтрокаРезультата.КодНоменклатуры= СокрЛП(Результат.НоменклатураКод);
        
    КонецЦикла;
Показать
12. nomad_irk 76 16.12.21 12:16 Сейчас в теме
(10)Так у вас у справочника "номенклатура" код имеет фиксированную длину. Сделайте переменную, либо в ТЗ сделайте фиксированную длину для поля КодНоменклатуры, такую же как у поля "код" справочника "номенклатуры"
13. user1619761 16.12.21 12:22 Сейчас в теме
(12) делал фиксированную длину у поля КодНоменклатуры в тз, и фиксированную, и переменную, и неограниченной длины, все бесполезно, результат всегда один на выходе. Причем с остальными данными из результата запроса все ок, где есть пробелы, везде они убираются простой конструкцией СокрЛП(), а с кодом ничего не работает, хотя ,если посмотреть значение СокрЛП(Строка.КодНоменклатуры); , то код нормальный, без пробелов, а когда смотрю значение СтрокаРезультата.КодНоменклатуры - тут уже пробелы, судя по всему пробелы приписывает сама таблица значений.
14. nomad_irk 76 16.12.21 12:26 Сейчас в теме
(13)СтрокаРезультата.КодНоменклатуры - это значение из БД
Строка.КодНоменклатуры - это данные ТЗ, сформированные по данные СтрокаРезультата.
Логично, что СокрЛП(Строка.КодНоменклатуры) будет без пробелов в случае переменной длины.
15. user1619761 16.12.21 12:30 Сейчас в теме
(14) это для нас логично, а для тз совсем иначе все, пробелы и с фиксированной длиной ,и с переменной, вообще никакой разницы. Я уже даже колонку из таблицы значений сносил, создавал по новой, надеялся что поможет, но увы.
16. nomad_irk 76 16.12.21 12:38 Сейчас в теме
(15)оно и в ТЗ работать должно с переменной длиной.
Строка.КодНоменклатуры = СокрЛП(Строка.КодНоменклатуры)
17. user1619761 16.12.21 12:42 Сейчас в теме
(14)Вообще не понимаю, что за дичь. Вот так заработало как надо . Стоит мне убрать массив кодов и вернуть как было до этого, опять пробелы в коде появляются...
МассивКодов = Новый Массив;
Для Каждого Строка Из ТаблицаРезультатаЗапроса Цикл

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

КонецЦикла 
18. nomad_irk 76 16.12.21 12:43 Сейчас в теме
(17)Сделайте просто:

НоваяСтрока = ТаблицаСКодамиНоменклатуры.Добавить();
НоваяСтрока.КодНоменклатуры = СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, "");
19. user1619761 16.12.21 12:46 Сейчас в теме
(18) Делал, в (1) закомментированы варианты, которые я пробовал делать, прежде чем создавать тему на форуме, ни один не работал.
20. nomad_irk 76 16.12.21 12:48 Сейчас в теме
(19)ну хорошо:

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


так работает?
4. nike-arz 16.12.21 11:48 Сейчас в теме
(1) НоваяСтрока.КодНоменклатуры = СокрЛП(Строка.КодНоменклатуры);
НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(32),"");
НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(160),"");
6. user1619761 16.12.21 11:55 Сейчас в теме
(4)Попробовал даже так, но результат идентичный первому.
НоваяСтрока.КодНоменклатуры = СтрЗаменить(СтрЗаменить(СтрЗаменить(СокрЛП(СтрЗаменить(Строка.КодНоменклатуры, Символы.НПП, "")), " ",""), Символ(32), ""), Символ(160), "")
НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(32),"");
НоваяСтрока.КодНоменклатуры = СтрЗаменить(НоваяСтрока.КодНоменклатуры,Символ(160),"");
9. evgaid 145 16.12.21 12:08 Сейчас в теме
А количество пробелов всегда одинаковое или равно пустому заполнению кода?
11. user1619761 16.12.21 12:14 Сейчас в теме
(9) создал номенклатуру с количеством символов в коде больше чем у остальных, и, судя по всему, количество пробелов равно пустому заполнению кода.
21. user1619761 16.12.21 12:53 Сейчас в теме
(20) заработало вот так только (17) когда убрал МассивКодов, то опять пробелы появились, второй раз попробовал убрать МассивКодов, вообще ошибку начало выдавать, что значение не является значением объектного типа (КодНоменклатуры).... Как это вообще работает....
22. user1619761 16.12.21 13:11 Сейчас в теме
Решил проблему перезапуском службы апач.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот