Имя: Пароль:
1C
1С v8
Как выбрать определенные элементы коллекции
,
0 rosalin
 
04.04.14
16:26
есть функция
Функция СформироватьНаименование(КоллекцияЗначенийСвойств) Экспорт

    Строка = "";

    Для каждого ЭлементКоллекции Из КоллекцияЗначенийСвойств Цикл
        Если ЗначениеЗаполнено(ЭлементКоллекции.Значение) Тогда
            Строка = Строка + ЭлементКоллекции.Значение + ", ";
        КонецЕсли;
    КонецЦикла;

    Строка = Лев(Строка, СтрДлина(Строка) - 2);

    Если ПустаяСтрока(Строка) Тогда
        Строка = "<Свойства не назначены>";
    КонецЕсли;

    Возврат Строка;

КонецФункции


Наименование формируется из значений через запятую, как можно отобрать только определенные свойства , значения которых попадут в наименование
1 barrgand
 
04.04.14
16:31
(0)  Кто определяет эти свойства? По каким критериям отбирать эти свойства?
2 rosalin
 
04.04.14
16:37
перечень свойств сразу прописать в функции например свойство "1.04 Резьба:"
3 Wobland
 
04.04.14
16:47
предлагаю программировать
4 SUA
 
04.04.14
16:55
Функция СформироватьНаименование(КоллекцияЗначенийСвойств, МассивНужныхСвойств) Экспорт

    Строка = "";

    Для каждого ЭлементКоллекции Из КоллекцияЗначенийСвойств Цикл
        Если ЗначениеЗаполнено(ЭлементКоллекции.Значение) И МассивНужныхСвойств.Найти(ЭлементКоллекции.Свойство)Тогда
            Строка = Строка + ЭлементКоллекции.Значение + ", ";
        КонецЕсли;
    КонецЦикла;

    Строка = Лев(Строка, СтрДлина(Строка) - 2);

    Если ПустаяСтрока(Строка) Тогда
        Строка = "<Свойства не назначены>";
    КонецЕсли;

    Возврат Строка;

КонецФункции
5 SUA
 
04.04.14
16:55
как-то так
6 barrgand
 
04.04.14
16:59
(2) Так передавай в коллекцию "1.04 Резьба:", будет только "1.04 Резьба:"
7 rosalin
 
04.04.14
17:23
Ребята сильно не пинайте, но разъясните как я могу в функции указать МассивНужныхСвойств, можно примерно как это будет выглядеть из пару свойств
8 SUA
 
04.04.14
17:26
(7)
0. определить какие свойства нужны (фиксированный список или признак)
1. добавить их в массив (хоть вручную - поиском по наименованию если совсем лень)
9 rosalin
 
04.04.14
17:33
нужен фиксированный список, укажу вручную , просто я не понимаю как будет это в модуле
10 SUA
 
04.04.14
17:40
массив=новый массив;
массив.добавить(первоесвойство);
массив.добавить(второесвойство);
можно больше) можно вместо параметра прям в процедуре сформировать
11 rosalin
 
04.04.14
19:14
Функция СформироватьНаименование(КоллекцияЗначенийСвойств, МассивНужныхСвойств) Экспорт
МассивНужныхСвойств = Новый Массив;
МассивНужныхСвойств.добавить("1.00 вн №.:");
МассивНужныхСвойств.добавить("1.04 Резьба:");

Строка = "";


    
    Для каждого ЭлементКоллекции Из КоллекцияЗначенийСвойств Цикл
        Если ЗначениеЗаполнено(ЭлементКоллекции.Значение) И МассивНужныхСвойств.Найти(ЭлементКоллекции.Свойство) Тогда
            Строка = Строка + ЭлементКоллекции.Значение + ", ";
        КонецЕсли;
    КонецЦикла;

    Строка = Лев(Строка, СтрДлина(Строка) - 2);

    Если ПустаяСтрока(Строка) Тогда
        Строка = "<Свойства не назначены>";
    КонецЕсли;

    Возврат Строка;

КонецФункции

при создании наименование выходит ошибка ?? (((
12 Wobland
 
04.04.14
19:25
(11) наверное, да