Здравствуйте! Подскажите пожалуйста, что означает строка кода:

```1c
    наим=сокрЛП(Строка(строка.Организации));
```

наим=сокрЛП(Организиции.Наименование) - отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке. т.е. на выходе получим только наименование организации, без всего лишнего. а что значит код выше? строка.Организации -в таблице значений значение в ячейке колонки Огранизации,
а Строка(строка.Организации)?
---
на крайний случай просто что бы не преобразовывать в строку, можно бы было просто написать сокрЛП(строка.Организации.НаименованиеПолное), как вариант
---
наим=сокрЛП(Строка(строка.Организации));
Такой вариант может исторически сложиться. Например,
1)Сначала было "наим=строка.Организации;".
2) Потом пришло указание срочно убрать лишние символы, типа копировать неудобно, если в наименовании висит перевод строки (скопированный, в свою очередь откуда-нибудь, например, с сайта). Так появилось "наим=сокрЛП(строка.Организации);"
3) Некоторое время работало и, вдруг, стало отваливаться по ошибке , т.к. "строка.Организации" не удалось автоматически преобразовать в строку. Срочно нужно было исправить. Так появился текущий вариант:
"наим=сокрЛП(Строка(строка.Организации));"
---
Есть какая-то переменная под именем "Строка", которая содержит поле "Организация". Зачем применять и СокрЛП(), и Строка(), не очень понятно, достаточно СокрЛП(). Второпях писали, наверное.
---
из запроса получаем тз и дальше работаем с нею.
фрагмент кода

```1c
    Для каждого строка из тз Цикл
    Если аа=0 Тогда
    ...
    ИначеЕсли сокрЛП(наим) <> сокрЛП(Строка(строка.Организации)) Тогда
    ...

    конецесли;
    наим=сокрЛП(Строка(строка.Организации));
    конеццикла;
```

т.е. для каждой строки из тз сравниваем одно и то же?
---
Вот сначала пишут что-то типа "Строка(строка.Организации)" в цикле, а потом жалуются, что 1С медленно работает.
---
это не я писала. это отчет коллеги. а мне надо разобраться в их отчете и доработать мелочи.
пысы: я только учусь. и очень прошу совета
---
Достаточно написать сокрЛП(строка.Организации)...
Но не известно что у тебя хранится в таблице которую ты в цикле обрабатываешь.
Пройдись отладчиком...
Может быть такое что Строка.Организация у тебя не с типом "Строка"(что очень вероятно), вот потому возможно кто-то и втулил преобразование в строку.
---
Спасибо! В запросе у Организации ссылочный тип стоит (СправочникСсылка..) на реквизите Организация.
поэтому наверное преобразуют в строковый
---
на крайний случай просто что бы не преобразовывать в строку, можно бы было просто написать сокрЛП(строка.Организации.НаименованиеПолное), как вариант
---
Спасибо большое! Мне сейчас каждое слово и совет важны!
---
Пожалуйста
---
...можно бы было просто написать сокрЛП(строка.Организации.НаименованиеПолное)...
Ага, и отвалиться по ошибке, если ссылка на организацию есть NULL.
---
ну и проверку на заполнения пихнуть
---
Все верно. Делают явное преобразование ссылочного типа к строке. При этом получается представление ссылки. Для справочников это чаще всего наименование (основное представление объекта настраивается в конфигураторе). По результату это тоже самое, что Строка.Организации.Наименование, но лучше по эффективности, т.к. получение представлений кэшируется и остальные поля объекта в память тоже не вычитываются. Но все равно плохо по эффективности, так как можно наименование сразу получить в запросе и работать с ним без обращений к БД и кэшам. Хотя, учитывая что идет сравнение наименований, тут вообще в консерватории все грустно.
ЗЫ. При ручном формировании печатных форм самая типичнейшая ошибка - выводить ссылочные данные на печать в параметрах. Все будет работать, т.к. сработает автополучение представлений, но производительность просядет.