| 
    
            
         
         | 
    
    
  | 
v7: Периодические реквизиты | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Amig0_0    
     09.04.13 
            ✎
    11:02 
 | 
         
        Доброе утро!
  
        Не подскажите в чем может быть ошибка? Суть проста. Если элементов в справочнике нет, тогда создать новый. Если есть, то найти нужный по "ПоискМойРеквизит" и добавить в его периодические реквизиты нужные данные. Новый создается без проблем. Так же без проблем в отладчике программа проходит цикл по добавлению данных в периодические реквизиты, но в итоге они не добавляются... Заранее спасибо! Если СпрСессии.ВыбратьЭлементы() = 0 Тогда СпрСессии.Новый(); *** СпрСессии.МойРеквизит = Строка(Строка(СпрСессии.ДатаС) + "-" + Строка(СпрСессии.ДатаС) ); СпрСессии.Записать(); СпрСессии.Оценка.Установить(ДатаДок,Оценка); СпрСессии.Дисциплина.Установить(ДатаДок,Дисциплина); СпрСессии.Преподователь.Установить(ДатаДок,Преподаватель); Иначе ПоискМойРеквизит = Строка(Строка(ТекЭлем.УчГруппа.СессияС) + "-" + Строка(ТекЭлем.УчГруппа.СессияПО) ); Если СпрСессии.НайтиПоРеквизиту("МойРеквизит",ПоискМойРеквизит,1) = 1 Тогда ДопПеремДляЦикла = 0; СтатусВозврата(0); Прервать; Иначе СпрСессии.Оценка.Установить(ДатаДок,Оценка); СпрСессии.Дисциплина.Установить(ДатаДок,Дисциплина); СпрСессии.Преподователь.Установить(ДатаДок,Преподаватель); СпрСессии.Записать(); КонецЕсли; КонецЕсли;  | 
|||
| 
    1
    
        Amig0_0    
     09.04.13 
            ✎
    11:03 
 | 
         
        блин только этого у меня нет) это я для отладки добавлял...
  
        Если СпрСессии.НайтиПоРеквизиту("МойРеквизит",ПоискМойРеквизит,1) = 1 Тогда ДопПеремДляЦикла = 0; СтатусВозврата(0); Прервать; Иначе  | 
|||
| 
    2
    
        vladko    
     09.04.13 
            ✎
    11:05 
 | 
         
        в верхнем условии не хватает после установки периодических
  
        СпрСессии.Записать()  | 
|||
| 
    3
    
        Ёпрст    
     гуру 
    09.04.13 
            ✎
    11:13 
 | 
         
        (0) выкини установить и делай 
  
        СпрСессии.ИспользоватьДату(ДатаДок)  | 
|||
| 
    4
    
        Amig0_0    
     09.04.13 
            ✎
    11:20 
 | 
         
        (2) не помогло(( 
  
        (3) как с помощью "ИспользоватьДату" мне занести новые значения ?  | 
|||
| 
    5
    
        пипец    
     09.04.13 
            ✎
    11:28 
 | 
         
        СпрСессии.ИспользоватьДату
  
        СпрСессии.Преподователь=Преподаватель; СпрСессии.Записать();  | 
|||
| 
    6
    
        palpetrovich    
     09.04.13 
            ✎
    11:32 
 | 
         
        а что, если создать элемент справочника с таким ключем:
  
        СпрСессии.МойРеквизит = Строка(Строка(СпрСессии.ДатаС) + "-" + Строка(СпрСессии.ДатаС) ); то потом по такому ключу: ПоискМойРеквизит = Строка(Строка(ТекЭлем.УчГруппа.СессияС) + "-" + Строка(ТекЭлем.УчГруппа.СессияПО)); находит? ... ДатаС == СессияС == СессияПО ?  | 
|||
| 
    7
    
        floody    
     09.04.13 
            ✎
    11:33 
 | 
         
        ПрепоВдУватель     
         | 
|||
| 
    8
    
        Amig0_0    
     09.04.13 
            ✎
    11:44 
 | 
         
        (6) это моя невнимательность. спасибо . когда долго сижу над одним, попросту не замечаю помарок от которых может ничего не работать. 
  
        решение проблемы: 1) сроки С и по С !! 2) СпрСессии.НайтиПоРеквизиту("МойРеквизит",ПоискМойРеквизит, 0 а не 1)  | 
|||
| 
    9
    
        Cthulhu    
     09.04.13 
            ✎
    11:49 
 | 
         
        перечитать синтаксис метода "Установить" срочно и внимательно.     
         | 
|||
| 
    10
    
        Amig0_0    
     09.04.13 
            ✎
    11:54 
 | 
         
        (9) Установить(<Дата>,<Значение>)
  
        вроде бы ничего сверхъестественного...  | 
|||
| 
    11
    
        Amig0_0    
     09.04.13 
            ✎
    12:34 
 | 
         
        Все таки работает она не до конца правильно( Перед тем как добавить новые данные к периодическим реквизитам нужна проверка. Не было ли ранее данных на такую дату... 
  
        Пробовал так: СпрСессии.ИспользоватьДату СпрСессии.Преподователь=Преподаватель; СпрСессии.Записать();... В таком случае нельзя использовать метод Получить, который мне нужен для проверки  | 
|||
| 
    12
    
        antoneus    
     09.04.13 
            ✎
    13:11 
 | 
         
        (11) Открой для себя объект "Периодический".     
         | 
|||
| 
    13
    
        пипец    
     09.04.13 
            ✎
    13:33 
 | 
         
        ПерВал = СоздатьОбъект("Периодический");
  
        ПерВал.ИспользоватьОбъект("мойреквизит",Контр); ПерВал.ОбратныйПорядок(1); ПерВал.ВыбратьЗначения(); Пока ПерВал.ПолучитьЗначение() = 1 Цикл Запр = ПерВал.Значение; ДатаЗапр = ПерВал.ДатаЗнач; КонецЦикла;  | 
|||
| 
    14
    
        пипец    
     09.04.13 
            ✎
    13:35 
 | 
         
        хмм к слову а чо при ипользовать дату  без получить не канает ?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |