Имя: Пароль:
1C
1С v8
Как выбрать регистратор из запроса
0 lite700
 
22.07.18
10:32
Запрос имеет вид :регистр накопления

"ВЫБРАТЬ
|    УчетТабеляОбороты.Сотр КАК Сотр,
|    УчетТабеляОбороты.СуммаОборот
    |ИЗ
|РегистрНакопления.УчетТабеля.Обороты(&Дата1,&Дата2,Регистратор)
   КАК УчетТабеляОбороты
|ГДЕ
|    УчетТабеляОбороты.Сотр = &Сотр

после выполнения обращение к  Выборка.Регистратор пишет поле Регистратор не обнаружено, вопрос как получить регистратор в запросе ?
1 Dmitry1c
 
22.07.18
10:33
периодичность у регистра сделай "авто", или "Запись" или "Регистратор" в параметрах виртуальной таблицы
2 lite700
 
22.07.18
10:43
Это регистр накопления, где там переодичность .?
3 hhhh
 
22.07.18
10:52
(2) давай полностью запрос вместе с выборкой. Где-то ты врешь.
4 lite700
 
22.07.18
10:57
Процедура ПередЗаписью(Отказ,режим)
    
    Если ЭтоНовый() Тогда
        
            Запрос = Новый Запрос;
            Запрос.Текст =
                "ВЫБРАТЬ
                |    УчетТабеляОбороты.Сотр КАК Сотр,
                |    УчетТабеляОбороты.СуммаОборот
              //  |   УчетТабеляОбороты.Регистратор как Регистратор
                |ИЗ
                |    РегистрНакопления.УчетТабеля.Обороты(&Дата1,&Дата2,Регистратор) КАК УчетТабеляОбороты
                |ГДЕ
                |    УчетТабеляОбороты.Сотр = &Сотр
                |
            //    |СГРУППИРОВАТЬ ПО
            //    |    УчетТабеляОбороты.Сотр,
            //    |    УчетТабеляОбороты.Орг,
            //    |    УчетТабеляОбороты.Подразд,
            //    |    УчетТабеляОбороты.СуммаОборот
                |
                |УПОРЯДОЧИТЬ ПО
                |    Сотр";
            
            Запрос.УстановитьПараметр("Сотр", Сотр);
            Запрос.УстановитьПараметр("Дата1",НачалоДня(Дата));
            Запрос.УстановитьПараметр("Дата2", КонецДня(Дата));
            
            Рез = Запрос.Выполнить();
            Таб3=Новый ТаблицаЗначений ;
            Таб3=Рез.Выгрузить()     ;
            Таб3.ВыбратьСтроку() ;
            
            Если НЕ Рез.Пустой() Тогда
                  
                    Выб=Рез.Выбрать()   ;
                    Выб.Следующий() ;
                    Часы=(ТекущаяДата()-Выб.Регистратор.Дата)/3600   ;
                    Если Часы < 14  Тогда
                         Сообщить("Уже есть отметки СЕГОДНЯ "+сотр+ " след. ОТМЕТКА через 14 ЧАСОВ !") ;
                         Отказ=Истина ;
                    КонецЕсли ;    

            КонецЕсли ;    
            
    КонецЕсли ;
5 lite700
 
22.07.18
10:59
процедура в модуле документа регистратора находится
6 sechs
 
22.07.18
11:06
(4) Если поле не выбирать, то в выборке его не будет. Ваш капитан.
7 hhhh
 
22.07.18
11:06
(5) ну у тебя же строчка

             //  |   УчетТабеляОбороты.Регистратор как Регистратор


закомментирована. Вроде и не пятница, а ты всё шутишь.
8 lite700
 
22.07.18
11:13
А да ,ТАК ЗаработалА!!)) РАньше не шло, СПАСИБО !