Версия для печати темы (https://pro1c.org.ua/index.php?s=7b4422e1d038b9e516db4457348008f3&showtopic=17677)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Вывод остатка по регистру бухгалтерии

Автор: alexkhua 24.04.14, 21:02

Странная вещь. В результат выводится остаток по значениям только в те периоды(дни) когда было движение или на дату конца месяца в котором было движение по регистру. Что это значит?

Процедура ЗаполнитьДЗНажатие(Элемент)
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйОстатки.Организация КАК Организация,
        |    ХозрасчетныйОстатки.Счет КАК Счет,
        |    ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
        |    ХозрасчетныйОстатки.Субконто2,
        |    ХозрасчетныйОстатки.Субконто3,
        |    ХозрасчетныйОстатки.Валюта.Представление КАК Валюта,
        |    ХозрасчетныйОстатки.ВалютнаяСуммаОстаток КАК СуммаВВалютеКонечныйОстаток,
        |    ХозрасчетныйОстатки.СуммаОстаток КАК СуммаБалансаКонечныйОстаток,
        |    КурсыВалют.Курс КАК КурсНаДатуДокумента,
        |    КурсыВалют.Кратность КАК КратностьНаДатуДокумента,
        |    ХозрасчетныйОстатки.ВалютнаяСуммаОстаток * КурсыВалют.Курс * КурсыВалют.Кратность КАК СуммаБалансаКонечныйОстатокВПересчетеПоКурсу,
        |    ХозрасчетныйОстатки.СуммаОстаток - ХозрасчетныйОстатки.ВалютнаяСуммаОстаток * КурсыВалют.Курс * КурсыВалют.Кратность КАК КурсоваяРазница
        |ИЗ
        |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , , ) КАК ХозрасчетныйОстатки
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        |        ПО (КурсыВалют.Валюта = ХозрасчетныйОстатки.Валюта)
        |ГДЕ
        |    ХозрасчетныйОстатки.Счет.Валютный = &Валютный
        |    И КурсыВалют.Период = &КурсНаДату
        |ИТОГИ ПО
        |    ОБЩИЕ,
        |    Организация ИЕРАРХИЯ";
        
        
        
        
        
        
    Запрос.УстановитьПараметр("Дата",КонецДня(Дата));
    Запрос.УстановитьПараметр("КурсНаДату",НачалоДня(Дата));
    

    
    Запрос.УстановитьПараметр("Валютный",Истина);
    ЭлементыФормы.ДереВалютныхСчетов.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ЭлементыФормы.ДереВалютныхСчетов.СоздатьКолонки();


Вроде решил так. Может удалить тему?
Процедура ЗаполнитьДЗНажатие(Элемент)
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ХозрасчетныйОстатки.Организация КАК Организация,
        |    ХозрасчетныйОстатки.Счет КАК Счет,
        |    ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
        |    ХозрасчетныйОстатки.Субконто2,
        |    ХозрасчетныйОстатки.Субконто3,
        |    ХозрасчетныйОстатки.Валюта.Представление КАК Валюта,
        |    ХозрасчетныйОстатки.ВалютнаяСуммаОстаток КАК СуммаВВалютеКонечныйОстаток,
        |    ХозрасчетныйОстатки.СуммаОстаток КАК СуммаБалансаКонечныйОстаток,
        |    КурсыВалютСрезПоследних.Курс КАК КурсНаДатуДокумента,
        |    КурсыВалютСрезПоследних.Кратность КАК КратностьНаДатуДокумента,
        |    ХозрасчетныйОстатки.ВалютнаяСуммаОстаток * КурсыВалютСрезПоследних.Курс * КурсыВалютСрезПоследних.Кратность КАК СуммаБалансаКонечныйОстатокВПересчетеПоКурсу,
        |    ХозрасчетныйОстатки.СуммаОстаток - ХозрасчетныйОстатки.ВалютнаяСуммаОстаток * КурсыВалютСрезПоследних.Курс * КурсыВалютСрезПоследних.Кратность КАК КурсоваяРазница
        |ИЗ
        |    РегистрСведений.КурсыВалют.СрезПоследних(&Дата, ) КАК КурсыВалютСрезПоследних
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , , ) КАК ХозрасчетныйОстатки
        |        ПО КурсыВалютСрезПоследних.Валюта = ХозрасчетныйОстатки.Валюта
        |ГДЕ
        |    ХозрасчетныйОстатки.Счет.Валютный = &Валютный
        |ИТОГИ ПО
        |    ОБЩИЕ,
        |    Организация ИЕРАРХИЯ";
        
        
        
        
        
        
    Запрос.УстановитьПараметр("Дата",Дата);
    //Запрос.УстановитьПараметр("КурсНаДату",НачалоДня(Дата));
    

    
    Запрос.УстановитьПараметр("Валютный",Истина);
    ЭлементыФормы.ДереВалютныхСчетов.Значение = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ЭлементыФормы.ДереВалютныхСчетов.СоздатьКолонки();
    
    
КонецПроцедуры

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua