Имя: Пароль:
1C
1С v8
Работа со строками
,
0 Explorer1c
 
23.01.15
16:38
Всем привет

При создании отчета возникла необходимость получать из одной строки несколько

т.е в ячейке макета написать "ооо1?0002" , где ооо1 и ооо2 - коды элементов справочника, а ? - знак перевода строки (тоже не знаю какой установить)

И потом циклом прочитать и получить ссылку на эти элементы
Как это сделать подскажите плиз
1 ДенисЧ
 
23.01.15
16:39
Клиент прёт....


Продам СП!!!! Дорого!!!!!!
2 Explorer1c
 
23.01.15
16:41
(1) Да я там нашел символ переноса "|" но чето не работает
3 palpetrovich
 
23.01.15
16:42
(0) по-ходу у Explorer1c -а  ник украли :)
4 ДенисЧ
 
23.01.15
16:42
(2) Так.... Ты цену-то не набивай, тебе же хуже будет....
5 Explorer1c
 
23.01.15
16:43
(3) чего это)
6 Garykom
 
гуру
23.01.15
16:43
(3) не это у них подряд там видать...))
7 palpetrovich
 
23.01.15
16:44
(5) вопрос не соответсвует репутации :)
8 Explorer1c
 
23.01.15
16:48
Символы.ПС также не канают тк в шаблоне я только строку могу указать
9 palpetrovich
 
23.01.15
16:48
лан:
    стр = "Иванов;Петров;Сидоров";
    стр = СтрЗаменить(стр,";",Символы.ПС);
    Для ч = 1 По СтрЧислоСтрок(стр) Цикл
        Ф = СтрПолучитьСтроку(стр,ч);    
        сообщить(ф);
    КонецЦикла;    
зы: есичё - на автроство не претендую :)
10 Explorer1c
 
23.01.15
16:48
Т.е мне надо "Строка" =  "0001?0002"
11 Explorer1c
 
23.01.15
16:49
(9) гениально!
12 palpetrovich
 
23.01.15
16:51
(11) бугага
13 Explorer1c
 
23.01.15
17:03
(12) еще одну вещь подскажи плиз. Например в Строке у меня "номенклатура", а как получить объект метаданных?

Т.е типа Метаданные.справочники
14 IШаман
 
23.01.15
17:04
Спровочники["номенклатура"]
Вот что значит долго не работать.
15 ДенисЧ
 
23.01.15
17:06
(14) Работать? Это ты про эксплорера? Так ты ему льстишь....
16 Explorer1c
 
23.01.15
17:07
(14) о спасибо!
17 palpetrovich
 
23.01.15
17:11
(13) мдя, по-ходу я автора с кем-то спутал и (1) таки прав, срочно нужен СП :)

СпрНоменклатура = Справочники.Номенклатура;
стр = "ооо1?0002";
стр = СтрЗаменить(стр,"?",Символы.ПС);
Для ч = 1 По СтрЧислоСтрок(стр) Цикл
    СтрокаКода = СтрПолучитьСтроку(стр,ч);    
    НайденнаяСсылка = СпрНоменклатура.НайтиПоКоду(СтрокаКода);
    Если НЕ НайденнаяСсылка = СпрНоменклатура.ПустаяСсылка() Тогда
        СпрОбъект = НайденнаяСсылка.ПолучитьОбъект();
        // че-то тут с ним делаем
    КонецЕсли;     
КонецЦикла;
18 Explorer1c
 
23.01.15
17:15
(17) СПС!

вот такой код получился, все супер

СписокКодовЭлементов = Новый СписокЗначений;
    
    ИсходныйТекст = СокрЛП(ТекстКодыЭлементов);
    ТекстКодыЭлементов = СтрЗаменить(ТекстКодыЭлементов,";",Символы.ПС);
    Для Сч = 1 По СтрЧислоСтрок(ТекстКодыЭлементов) Цикл
         КодЭлемента= СтрПолучитьСтроку(ТекстКодыЭлементов,Сч);
         СписокКодовЭлементов.Добавить(Справочники[ОбъектМетаданных].НайтиПоКоду(КодЭлемента));
    КонецЦикла;    

    Возврат СписокКодовЭлементов;
19 Explorer1c
 
23.01.15
17:18
+ надо проверку на пустое значение добавить )
20 Explorer1c
 
23.01.15
17:19
но это завтра, на сегодня план сделан
21 palpetrovich
 
23.01.15
17:24
(20) забудешь до завтра :)
22 Explorer1c
 
23.01.15
17:25
Но чтобы не терзаться на выходных и освободить сремя решил сделать сейчас

полный коды выглядит так

Функция ПолучитьСписокКодов(ТекстКодыЭлементов, ОбъектМетаданных)
    
    СписокКодовЭлементов = Новый СписокЗначений;
    
    ИсходныйТекст = СокрЛП(ТекстКодыЭлементов);
    ТекстКодыЭлементов = СтрЗаменить(ТекстКодыЭлементов,";",Символы.ПС);
    Для Сч = 1 По СтрЧислоСтрок(ТекстКодыЭлементов) Цикл
        КодЭлемента= СтрПолучитьСтроку(ТекстКодыЭлементов,Сч);
        ЭлементСправочника = Справочники[ОбъектМетаданных].НайтиПоКоду(КодЭлемента);
        Если Не ЭлементСправочника.Пустая() Тогда
            СписокКодовЭлементов.Добавить(ЭлементСправочника);
        иначе
            Сообщить("Не найден элемент справочника "+ОбъектМетаданных+" с кодом "+КодЭлемента);
        КонецЕсли;
    КонецЦикла;    
    
    Возврат СписокКодовЭлементов;
    
КонецФункции // ПолучитьСписокКодов()
23 palpetrovich
 
23.01.15
17:26
(22) и это, СписокКодовЭлементов - это у тебя совсем не СписокКодовЭлементов, а СписокСсылокНаЭлементыСправочника :)
24 IШаман
 
23.01.15
17:38
(20) Ну да объем работ у тебя колоссальный, не мудрено что и по выходным приходиться вкалывать.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.