сокрЛП(Строка(строка.Организации))

1. user712426 18.04.17 08:32 Сейчас в теме
Здравствуйте! Подскажите пожалуйста, что означает строка кода:

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


наим=сокрЛП(Организиции.Наименование) - отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке. т.е. на выходе получим только наименование организации, без всего лишнего. а что значит код выше? строка.Организации -в таблице значений значение в ячейке колонки Огранизации,
а Строка(строка.Организации)?
+
По теме из базы знаний
Найденные решения
8. artik1994 18.04.17 09:09 Сейчас в теме
(7)на крайний случай просто что бы не преобразовывать в строку, можно бы было просто написать сокрЛП(строка.Организации.НаименованиеПолное), как вариант
user712426; +1 1
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. Onwardv 64 18.04.17 11:38 Сейчас в теме
(1)
наим=сокрЛП(Строка(строка.Организации));

Такой вариант может исторически сложиться. Например,
1)Сначала было "наим=строка.Организации;".
2) Потом пришло указание срочно убрать лишние символы, типа копировать неудобно, если в наименовании висит перевод строки (скопированный, в свою очередь откуда-нибудь, например, с сайта). Так появилось "наим=сокрЛП(строка.Организации);"
3) Некоторое время работало и, вдруг, стало отваливаться по ошибке , т.к. "строка.Организации" не удалось автоматически преобразовать в строку. Срочно нужно было исправить. Так появился текущий вариант:
"наим=сокрЛП(Строка(строка.Организации));"
+
2. Octopus 337 18.04.17 08:35 Сейчас в теме
Есть какая-то переменная под именем "Строка", которая содержит поле "Организация". Зачем применять и СокрЛП(), и Строка(), не очень понятно, достаточно СокрЛП(). Второпях писали, наверное.
+
3. user712426 18.04.17 08:43 Сейчас в теме
(2)из запроса получаем тз и дальше работаем с нею.
фрагмент кода
Для каждого строка из тз Цикл
			Если аа=0 Тогда
				...
			ИначеЕсли сокрЛП(наим) <> сокрЛП(Строка(строка.Организации)) Тогда
...

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


т.е. для каждой строки из тз сравниваем одно и то же?
+
4. vcv 89 18.04.17 08:47 Сейчас в теме
(3) Вот сначала пишут что-то типа "Строка(строка.Организации)" в цикле, а потом жалуются, что 1С медленно работает.
корум; +1
5. user712426 18.04.17 08:51 Сейчас в теме
(4)это не я писала. это отчет коллеги. а мне надо разобраться в их отчете и доработать мелочи.
пысы: я только учусь. и очень прошу совета
+
6. artik1994 18.04.17 08:58 Сейчас в теме
(5)Достаточно написать сокрЛП(строка.Организации)...
Но не известно что у тебя хранится в таблице которую ты в цикле обрабатываешь.
Пройдись отладчиком...
Может быть такое что Строка.Организация у тебя не с типом "Строка"(что очень вероятно), вот потому возможно кто-то и втулил преобразование в строку.
user712426; +1
7. user712426 18.04.17 09:03 Сейчас в теме
(6)Спасибо! В запросе у Организации ссылочный тип стоит (СправочникСсылка..) на реквизите Организация.
поэтому наверное преобразуют в строковый
+
8. artik1994 18.04.17 09:09 Сейчас в теме
(7)на крайний случай просто что бы не преобразовывать в строку, можно бы было просто написать сокрЛП(строка.Организации.НаименованиеПолное), как вариант
user712426; +1 1
9. user712426 18.04.17 09:11 Сейчас в теме
(8)Спасибо большое! Мне сейчас каждое слово и совет важны!
+
10. artik1994 18.04.17 09:13 Сейчас в теме
12. Onwardv 64 18.04.17 11:36 Сейчас в теме
(8) ...можно бы было просто написать сокрЛП(строка.Организации.НаименованиеПолное)...
Ага, и отвалиться по ошибке, если ссылка на организацию есть NULL.
+
14. artik1994 18.04.17 11:52 Сейчас в теме
(12) ну и проверку на заполнения пихнуть
+
11. herfis 498 18.04.17 09:15 Сейчас в теме
(7) Все верно. Делают явное преобразование ссылочного типа к строке. При этом получается представление ссылки. Для справочников это чаще всего наименование (основное представление объекта настраивается в конфигураторе). По результату это тоже самое, что Строка.Организации.Наименование, но лучше по эффективности, т.к. получение представлений кэшируется и остальные поля объекта в память тоже не вычитываются. Но все равно плохо по эффективности, так как можно наименование сразу получить в запросе и работать с ним без обращений к БД и кэшам. Хотя, учитывая что идет сравнение наименований, тут вообще в консерватории все грустно.
ЗЫ. При ручном формировании печатных форм самая типичнейшая ошибка - выводить ссылочные данные на печать в параметрах. Все будет работать, т.к. сработает автополучение представлений, но производительность просядет.
Ганс; ImHunter; user712426; +3
Внимание! Тема сдана в архив

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