Здравствуйте! Подскажите пожалуйста, что означает строка кода:
наим=сокрЛП(Организиции.Наименование) - отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке. т.е. на выходе получим только наименование организации, без всего лишнего. а что значит код выше? строка.Организации -в таблице значений значение в ячейке колонки Огранизации,
а Строка(строка.Организации)?
наим=сокрЛП(Строка(строка.Организации));
наим=сокрЛП(Организиции.Наименование) - отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке. т.е. на выходе получим только наименование организации, без всего лишнего. а что значит код выше? строка.Организации -в таблице значений значение в ячейке колонки Огранизации,
а Строка(строка.Организации)?
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Такой вариант может исторически сложиться. Например,
1)Сначала было "наим=строка.Организации;".
2) Потом пришло указание срочно убрать лишние символы, типа копировать неудобно, если в наименовании висит перевод строки (скопированный, в свою очередь откуда-нибудь, например, с сайта). Так появилось "наим=сокрЛП(строка.Организации);"
3) Некоторое время работало и, вдруг, стало отваливаться по ошибке , т.к. "строка.Организации" не удалось автоматически преобразовать в строку. Срочно нужно было исправить. Так появился текущий вариант:
"наим=сокрЛП(Строка(строка.Организации));"
наим=сокрЛП(Строка(строка.Организации));
Такой вариант может исторически сложиться. Например,
1)Сначала было "наим=строка.Организации;".
2) Потом пришло указание срочно убрать лишние символы, типа копировать неудобно, если в наименовании висит перевод строки (скопированный, в свою очередь откуда-нибудь, например, с сайта). Так появилось "наим=сокрЛП(строка.Организации);"
3) Некоторое время работало и, вдруг, стало отваливаться по ошибке , т.к. "строка.Организации" не удалось автоматически преобразовать в строку. Срочно нужно было исправить. Так появился текущий вариант:
"наим=сокрЛП(Строка(строка.Организации));"
Есть какая-то переменная под именем "Строка", которая содержит поле "Организация". Зачем применять и СокрЛП(), и Строка(), не очень понятно, достаточно СокрЛП(). Второпях писали, наверное.
(2)из запроса получаем тз и дальше работаем с нею.
фрагмент кода
т.е. для каждой строки из тз сравниваем одно и то же?
фрагмент кода
Для каждого строка из тз Цикл
Если аа=0 Тогда
...
ИначеЕсли сокрЛП(наим) <> сокрЛП(Строка(строка.Организации)) Тогда
...
конецесли;
наим=сокрЛП(Строка(строка.Организации));
конеццикла;
Показатьт.е. для каждой строки из тз сравниваем одно и то же?
(5)Достаточно написать сокрЛП(строка.Организации)...
Но не известно что у тебя хранится в таблице которую ты в цикле обрабатываешь.
Пройдись отладчиком...
Может быть такое что Строка.Организация у тебя не с типом "Строка"(что очень вероятно), вот потому возможно кто-то и втулил преобразование в строку.
Но не известно что у тебя хранится в таблице которую ты в цикле обрабатываешь.
Пройдись отладчиком...
Может быть такое что Строка.Организация у тебя не с типом "Строка"(что очень вероятно), вот потому возможно кто-то и втулил преобразование в строку.
(7) Все верно. Делают явное преобразование ссылочного типа к строке. При этом получается представление ссылки. Для справочников это чаще всего наименование (основное представление объекта настраивается в конфигураторе). По результату это тоже самое, что Строка.Организации.Наименование, но лучше по эффективности, т.к. получение представлений кэшируется и остальные поля объекта в память тоже не вычитываются. Но все равно плохо по эффективности, так как можно наименование сразу получить в запросе и работать с ним без обращений к БД и кэшам. Хотя, учитывая что идет сравнение наименований, тут вообще в консерватории все грустно.
ЗЫ. При ручном формировании печатных форм самая типичнейшая ошибка - выводить ссылочные данные на печать в параметрах. Все будет работать, т.к. сработает автополучение представлений, но производительность просядет.
ЗЫ. При ручном формировании печатных форм самая типичнейшая ошибка - выводить ссылочные данные на печать в параметрах. Все будет работать, т.к. сработает автополучение представлений, но производительность просядет.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот