Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Регистры накопления остатки: проставить дату на конец дня
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
Constantus
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Использую:

РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&Дата, ) КАК Взаиморасчеты


Как я выяснил параметр &Дата ставит дату на начало дня, а хотелось бы на конец

Перепробовал несколько способов, найденных в интернете, но что-то никак не могу выйти на конец дня в данном случае.

Подскажите что и где прописать, чтобы отчет на конец дня выводил?
sava1
запрос.УстановитьПараметр("Дата", КонецДня(ДатаОст));

Constantus
sava1 @ Сегодня, 16:20 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(sava1 @ 04.06.18, 16:20) необходимо зарегистрироваться для просмотра ссылки
запрос.УстановитьПараметр("Дата", КонецДня(ДатаОст));



У меня отчет СКД, а не отчет на базе классического запроса... Или при формировании СКД где-то можно прописать подобную конструкцию?
Gazulo
Constantus @ Сегодня, 14:24 необходимо зарегистрироваться для просмотра ссылки
А каким образом устанавливается параметр &Дата?
Constantus
Gazulo @ Сегодня, 17:16 необходимо зарегистрироваться для просмотра ссылки ,


В виртуальной таблице

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента,
    *****
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&Дата,) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки

sava1
Цитата(Constantus @ 04.06.18, 15:19) необходимо зарегистрироваться для просмотра ссылки
РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки({&Дата},) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки



вооще-то в скд такая хрень не применяется - там есть параметры
Constantus
Цитата(sava1 @ 04.06.18, 18:02) необходимо зарегистрироваться для просмотра ссылки
вооще-то в скд такая хрень не применяется - там есть параметры



Понял, переделаю, просто где-то когда-читал, что при параметрах в виртуальных таблицах отчет быстрее создается...
Bernet
Constantus @ Сегодня, 13:06 необходимо зарегистрироваться для просмотра ссылки ,
Если у вас отчет на СКД и есть параметр &Дата, вы можете его установить в модуле объекта, событие "при компоновке результата". Пример:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    ПараметрПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата");
    Если ПараметрПериод <> Неопределено Тогда
        ПараметрПериод .Значение = КонецДня(ТекущаяДата());
                ПараметрПериод .Использование = Истина;
    КонецЕсли;    
    
КонецПроцедуры
Batchir
Constantus @ Сегодня, 14:24 необходимо зарегистрироваться для просмотра ссылки ,

КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)

Но преобразование параметра не желательно, могут возникнуть проблемы с быстродействием.
Если есть возможность, то в запросы лучше передавать уже готовые параметры
Constantus
Вот я тогда совсем ничего не понимаю...

У меня есть другой отчет:

ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            &Дата,
            &Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
                ИЛИ Склад = &Склад) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
                &Дата,
                (&Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
                    ИЛИ Склад = &Склад)
                    И НЕ ТИПЗНАЧЕНИЯ(ДокументРезерва) = ТИП(Документ.ЗаказПокупателя)) КАК ТоварыВРезервеНаСкладахОстатки


Как видите, и мой первый пример и вот этот оба РН, оба по Остаткам, оба имеют параметр "Дата". Но первый пример при выборе даты дает начало дня, второй пример выводит четко на конец выбранного дня... Как такое может быть? Что я мог сотворить со вторым отчетом и недоделал с первым? icon_cuss.gif

При открытии второго отчета:
    УчетВремени = Ложь;    
    
    Если УчетВремени Тогда
        Дата = ТекущаяДата();
    Иначе
        Дата = КонецДня(ТекущаяДата());
    КонецЕсли;    
    
    ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата");
    ПараметрСКД.Значение = Дата;//КонецДня(ТекущаяДата());
    ПараметрСКД.Использование = Истина;



Вот при открытии первого (тема топика), который на экран выводит конец дня, но считает на начало...

    Дата = КонецДня(ТекущаяДата());
    ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Дата");
    ПараметрСКД.Значение = Дата;//КонецДня(ТекущаяДата());
    ПараметрСКД.Использование = Истина;

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.