Имя: Пароль:
1C
1C 7.7
v7: Изменить реквизит справочника
0 Soul771
 
16.06.14
17:05
Добрый день.
Прошу помощи,ну никак не найду, что нужно прописать......
Задача банальна до безобразия: из обработки открывается форма списка справочника, из нее выбирается элемент, наименование которого надо поменять и перезаписать. Вот кусочек кода:


ФайлСравнения = СоздатьОбъект("XBase");
ФайлСравнения.ОткрытьФайл(Путь);

КолСтрок = Число(ФайлСравнения.КоличествоЗаписей());
СпрКонтр = СоздатьОбъект("Справочник.Контрагенты");

Сч=0;
для стр=1 по КолСтрок цикл
    Если СпрКонтр.НайтиПоНаименованию(СокрЛП(ФайлСравнения.Name),0,1)= 0 тогда  
        
        Сообщить("Контрагент не найден  "+ ФайлСравнения.Name +"  "+ стр);  
        Если СпрКонтр.Выбрать("Выберете вручную","Справочник.Контрагенты.ФормаСпискаДляВыбора") = 1 Тогда
            Эл = СпрКонтр.ТекущийЭлемент();     
            
        
            Если  Эл.Наименование <> "Новый" Тогда
                Сообщить("Выбран элемент " +Эл.Наименование+ "  будет заменен на  "+ СокрЛП(ФайлСравнения.Name) );  
                Эл.наименование = СокрЛП(ФайлСравнения.Name);
                Эл.Записать();
            иначе
                
                Сообщить("Элемента нигде нет " + СокрЛП(ФайлСравнения.Name) );
                Сч = Сч+1;
            КонецЕсли;                
        КонецЕсли;
        
        
        
        
    КонецЕсли;
    
    ФайлСравнения.Перейти(стр);  
КонецЦикла;



Не могу записать элемент, пишет, что элемент не выбран.... В 8-ке бы написала ПолучитьОбъект(); а тут хоть убей не пойму, какой метод использовать после ТекущийЭлемент() .......
1 Soul771
 
16.06.14
17:07
Прошу прощения за много буковок кода..... хотела уже отредактировать, не знаю как..
2 mikecool
 
16.06.14
17:07
1) создать объект тип справочник
2) объект.найтиэлемент(такой то)
3) объект.Наименование =
4) объект.записать()
3 mikecool
 
16.06.14
17:08
(1) давай фотку
4 Soul771
 
16.06.14
17:15
(2) - можно пример какой-нидь для метода НайтиЭлемент()? пжлста.. Читаю в синтаксисе <Элемент> - выражение со значением элемента справочника, не въезжаю.....(((
(3) - не надо, мне ж стыдно итак)))
5 Ёпрст
 
16.06.14
17:17
Добрый день.
Прошу помощи,ну никак не найду, что нужно прописать......
Задача банальна до безобразия: из обработки открывается форма списка справочника, из нее выбирается элемент, наименование которого надо поменять и перезаписать. Вот кусочек кода:


ФайлСравнения = СоздатьОбъект("XBase");
ФайлСравнения.ОткрытьФайл(Путь);

КолСтрок = Число(ФайлСравнения.КоличествоЗаписей());
СпрКонтр = СоздатьОбъект("Справочник.Контрагенты");

Сч=0;
для стр=1 по КолСтрок цикл
    Если СпрКонтр.НайтиПоНаименованию(СокрЛП(ФайлСравнения.Name),0,1)= 0 тогда  

        
        Сообщить("Контрагент не найден  "+ ФайлСравнения.Name +"  "+ стр);  
+ Code

        Если СпрКонтр.Выбрать("Выберете вручную","Справочник.Контрагенты.ФормаСпискаДляВыбора") = 1 Тогда
            //Эл = СпрКонтр.ТекущийЭлемент();    
            
        
            Если  СпрКонтр.Наименование <> "Новый" Тогда
                Сообщить("Выбран элемент " +СпрКонтр.Наименование+ "  будет заменен на  "+ СокрЛП(ФайлСравнения.Name) );  
                СпрКонтр.наименование = СокрЛП(ФайлСравнения.Name);
                СпрКонтр.Записать();
            иначе
                
                Сообщить("Элемента нигде нет " + СокрЛП(ФайлСравнения.Name) );
                Сч = Сч+1;
            КонецЕсли;                
        КонецЕсли;
6 Ёпрст
 
16.06.14
17:18
странный копипасте, ну да ладно..

(0) исправь, как в (5) и наслаждайся
7 Soul771
 
16.06.14
17:25
(5) Благодарю тебя, о добрый человек!!!
8 mikecool
 
16.06.14
17:45
(7) вот теперь давай фотку )
9 Злопчинский
 
16.06.14
18:59
(6) ага, я аж застремался...
Независимо от того, куда вы едете — это в гору и против ветра!