|
Получить синоним перечисления по частичному совпадению |
☑ |
0
Andy Jr
29.11.16
✎
11:19
|
Дано: Есть документ, в нем список складов в сокращенном виде, типа "Опт" и "Розн", нужно в новый созданный документ подставить синоним из перечислений по совпадению, например LIKE('%Опт%'). Не знаю как это сделать в функции. В данном коде сравнивает имя перечисления "Оптовый склад" = "Опт", не прокатывает. Чем заменить "="
<code>
&НаКлиенте
Процедура ПоказатьРезультат(Команда)
пСинонимПеречисления = "Опт";
РП = ИмяПеречисленияПоСинониму(пСинонимПеречисления);
Сообщить(РП);
КонецПроцедуры
&НаСервере
Функция ИмяПеречисленияПоСинониму(пСинонимПеречисления) Экспорт
КолекцияЗначенийПеречисления = Метаданные.Перечисления.ТипыСкладов.ЗначенияПеречисления;
Для каждого пНайденноеЗначение из КолекцияЗначенийПеречисления Цикл
Если пНайденноеЗначение.Имя = пСинонимПеречисления Тогда
Возврат пНайденноеЗначение.Синоним;
КонецЕсли;
КонецЦикла;
КонецФункции
</code>
|
|
1
Lexey_
29.11.16
✎
11:25
|
(0) Найти(), СтрНайти()
|
|
2
Andy Jr
29.11.16
✎
11:29
|
(1) Lexey_, огромнейшее спасибо тебе, добрый специалист!
|
|
3
Живой Ископаемый
29.11.16
✎
11:30
|
м... Вообще-то Найти и СтрНайти будет работать на равенство только, поправьте если я ошибаюсь.
Но зато можно тз скормить построителю запросов.
|
|
4
Andy Jr
29.11.16
✎
11:31
|
Функция ИмяПеречисленияПоСинониму(пСинонимПеречисления) Экспорт
КолекцияЗначенийПеречисления = Метаданные.Перечисления.ТипыСкладов.ЗначенияПеречисления;
Для каждого пНайденноеЗначение из КолекцияЗначенийПеречисления Цикл
Если СтрНайти(пНайденноеЗначение.Имя, пСинонимПеречисления) > 0 Тогда
Возврат пНайденноеЗначение.Синоним;
КонецЕсли;
КонецЦикла;
КонецФункции
|
|
5
Живой Ископаемый
29.11.16
✎
11:32
|
а.в таком смысле, ну да
|
|