[РЕШЕНО] В выборку не попадают данные за текущий день

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем JediAlex, 23 мар 2015.

  1. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Делаю конфигурацию в 1с 8.3. Есть созданный документ "ОценочнаяВедомость" с реквизитом "ИтговыйПоказательЭффективности". Системный реквизит документа "Дата" заполняется платформой,пользователь его не редактирует. Появилась задача создать документ, в ТЧ которого выгружаются ИтоговыеПоказателиЭффективности из всех оценочных ведомостей за заданный период. Для решения этой задачи я сделал такой код:
    Код:
    &НаСервере
    Процедура ЗаполнитьВедомость()
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    ОценочнаяВедомость.Сотрудник.Код КАК ТабельныйНомер,
                 |    ОценочнаяВедомость.Сотрудник.Подразделение КАК Подразделение,
                 |    ОценочнаяВедомость.Сотрудник.Должность КАК Должность,
                 |    ОценочнаяВедомость.ИтоговыйПоказательЭффективности КАК ПоказательЭффективности,
                 |    ОценочнаяВедомость.Сотрудник
                 |ИЗ
                 |    Документ.ОценочнаяВедомость КАК ОценочнаяВедомость
                 |ГДЕ
                 |    ОценочнаяВедомость.Дата >= &НачалоПериода
                 |    И ОценочнаяВедомость.Дата <= &КонецПериода";
                 Запрос.УстановитьПараметр("НачалоПериода",Объект.НачалоПериода);
                 Запрос.УстановитьПараметр("КонецПериода",Объект.КонецПериода);
                 Выборка=Запрос.Выполнить().Выбрать();
                 Если Объект.Оценки.Количество()>0 Тогда
                      Объект.Оценки.Очистить();
                КонецЕсли;    
                 Пока Выборка.Следующий() Цикл
                ТекСтрока=Объект.Оценки.Добавить();
                ТекСтрока.ТабельныйНомер=Выборка.ТабельныйНомер;
                ТекСтрока.ФИОРаботника=Выборка.Сотрудник;
                ТекСтрока.Подразделение=Выборка.Подразделение;
                ТекСтрока.Должность=Выборка.Должность;
                ТекСтрока.ПоказательЭффективности=Выборка.ПоказательЭффективности;
                КонецЦикла;    
                
            КонецПроцедуры
    Появилась проблема: если я сегодня ввел оценочную ведомость и пытаюсь высети её в выборке, от она в выборку не попадает....В случае отчета для дат,чтобтекущий день попадал в выборку, я пользовался функцией КонецПериода с периодом "День" и все работает, а тут попытался задать в условии запроса:
    Код:
    ...И ОценочнаяВедомость.Дата <= КонецПериода(&КонецПериода, "День")";
    и получил сообщение об ошибке... как сделать так, чтоб данные текущего дня попадали в выборку?
  2. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Код:
    Запрос.УстановитьПараметр("КонецПериода", КонецДня(Объект.КонецПериода));
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а если попробовать
    Код:
    Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(Объект.НачалоПериода));
                 Запрос.УстановитьПараметр("КонецПериода",КонецДня(Объект.КонецПериода));
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    В запросе кавычки не нужны
    КонецПериода(&КонецПериода, ДЕНЬ);
  5. TopicStarter Overlay
    JediAlex
    Offline

    JediAlex Опытный в 1С

    Регистрация:
    27 авг 2011
    Сообщения:
    140
    Симпатии:
    0
    Баллы:
    26
    спасибо,все работает)) забыл про функции НачалоДня и КонецДня...
  6. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    :) точнее про время в дате, по дефолту время стоит 0:00:00, потому день и не попадает

Поделиться этой страницей