8.х Получение значений на дату

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

  1. TopicStarter Overlay
    ZEMA
    Offline

    ZEMA Опытный в 1С

    Регистрация:
    5 окт 2007
    Сообщения:
    231
    Симпатии:
    0
    Баллы:
    26
    Всем еще раз привет. Вот столкнулся с такой проблеммой. Например
    с 01.04 по 05.04 планово установлено дневная ставка 1000, ночная 100
    с 03.04 по 05.04 -планово установлено дневная ставка не меняется, ночная 111
    в итоге на дату 04.04 пулучить должет дневная ставка 1000 ночная 111
    Данные берутся из регистра сведений. может кто даст пример как это сделать?
    конфигурация самописная.
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    Выбрать <ДневнаяСтавка>,<НочнаяСтавка>
    ИЗ РегистрСведений.<РегистрСведений>СрезПоследних(&ДатаСреза,)
  3. TopicStarter Overlay
    ZEMA
    Offline

    ZEMA Опытный в 1С

    Регистрация:
    5 окт 2007
    Сообщения:
    231
    Симпатии:
    0
    Баллы:
    26
    ну тогда он вставляет всю строчку с 03.04 по 05.04 -планово установлено дневная ставка не меняется, ночная 111 а мне нужно чтобы он подставил предыдущие данные где только -
  4. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Тогда еще нужно делать отбор и по ставке.
  5. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    Код:
    Выбрать <ДневнаяСтавка>,<НочнаяСтавка>
    ИЗ РегистрСведений.<РегистрСведений>СрезПоследних(&ДатаСреза,ДневнаяСтавка = &ДневнаяСтавка)
    
    
    если ДневнаяСтавка это измерение. и вообще не плохо было структуру регистра спросить перед советом :)
  6. TopicStarter Overlay
    ZEMA
    Offline

    ZEMA Опытный в 1С

    Регистрация:
    5 окт 2007
    Сообщения:
    231
    Симпатии:
    0
    Баллы:
    26
    Измерения
    ФизЛицо
    Должность
    ВидРасчета

    А ресурс это
    результат и ставки
  7. TopicStarter Overlay
    ZEMA
    Offline

    ZEMA Опытный в 1С

    Регистрация:
    5 окт 2007
    Сообщения:
    231
    Симпатии:
    0
    Баллы:
    26
    Вот код запроса в Документе"Табель"
    Код:
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    |	ВложенныйЗапрос.ФизЛицо,
    |	ВложенныйЗапрос.Подразделение,
    |	ВложенныйЗапрос.Должность,
    |	ВложенныйЗапрос.ДатаН,
    |	ВложенныйЗапрос.ДатаК,
    |	ВложенныйЗапрос.Размер,
    |	ВложенныйЗапрос.ВидРасчета,
    |	ВложенныйЗапрос.СтавкаНочь Как СтавкаНочь, 
    |	ВложенныйЗапрос.СтавкаДень Как СтавкаДень ,
    |	ВложенныйЗапрос.СтавкаВечер Как СтавкаВечер
    |ИЗ
    |	(ВЫБРАТЬ
    |		ПлановыеДополнительныеНачисления.ФизЛицо КАК ФизЛицо,
    |		ПлановыеДополнительныеНачисления.Подразделение КАК Подразделение,
    |		ПлановыеДополнительныеНачисления.Должность КАК Должность,
    |		ПлановыеДополнительныеНачисления.ДатаН КАК ДатаН,
    |		ПлановыеДополнительныеНачисления.ДатаК КАК ДатаК,
    |		ПлановыеДополнительныеНачисления.Размер КАК Размер,
    |		ПлановыеДополнительныеНачисления.ВидРасчета КАК ВидРасчета,
    |		ПлановыеДополнительныеНачисления.СтавкаНочь КАК СтавкаНочь,
    |		ПлановыеДополнительныеНачисления.СтавкаДень КАК СтавкаДень,
    |		ПлановыеДополнительныеНачисления.СтавкаВечер КАК СтавкаВечер
    |	ИЗ
    |		Документ.ТабельНовый КАК ТабельНовый
    |	ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеДополнительныеНачисления КАК ПлановыеДополнительныеНачисления
    |	ПО ТабельНовый.ДополнительныеНачисления.ФизЛицо = ПлановыеДополнительныеНачисления.ФизЛицо
    |	ГДЕ
    |		ПлановыеДополнительныеНачисления.ФизЛицо = &ФизЛицо
    |	
    |	СГРУППИРОВАТЬ ПО
    |		ПлановыеДополнительныеНачисления.ФизЛицо,
    |		ПлановыеДополнительныеНачисления.Подразделение,
    |		ПлановыеДополнительныеНачисления.Должность,
    |		ПлановыеДополнительныеНачисления.ДатаН,
    |		ПлановыеДополнительныеНачисления.ДатаК,
    |		ПлановыеДополнительныеНачисления.Размер,
    |		ПлановыеДополнительныеНачисления.ВидРасчета,
    |		ПлановыеДополнительныеНачисления.СтавкаНочь,
    |		ПлановыеДополнительныеНачисления.СтавкаДень,
    |		ПлановыеДополнительныеНачисления.СтавкаВечер) КАК ВложенныйЗапрос
    |ГДЕ
    |	ВложенныйЗапрос.ДатаН <= &периодрегистрации1
    |	И ВложенныйЗапрос.ДатаК >= &периодрегистрации1
    |
    |СГРУППИРОВАТЬ ПО
    |	ВложенныйЗапрос.ФизЛицо,
    |	ВложенныйЗапрос.Подразделение,
    |	ВложенныйЗапрос.Должность,
    |	ВложенныйЗапрос.ДатаН,
    |	ВложенныйЗапрос.ДатаК,
    |	ВложенныйЗапрос.Размер,
    |	ВложенныйЗапрос.ВидРасчета,
    |	ВложенныйЗапрос.СтавкаНочь,
    |	ВложенныйЗапрос.СтавкаДень,
    |	ВложенныйЗапрос.СтавкаВечер";
    
    
    Запрос.УстановитьПараметр("ПериодРегистрации1",ЭтотОбъект.ПериодРегистрации+1);	
    Запрос.УстановитьПараметр("ФизЛицо",Результат1.Сотр);	
    
    
    Выборка=Запрос.Выполнить();
    
    Если Выборка.Пустой() Тогда
    
    Запрос.Текст="ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ФизЛицо,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.Подразделение,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.Должность,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.СтавкаДень,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.СтавкаНочь,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.СтавкаВечер,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ДатаН,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ВидРасчета,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ДатаК КАК ДатаК
    |ИЗ
    |	РегистрСведений.ПлановыеДополнительныеНачисления.СрезПоследних(
    |		&дАТАК,
    |		ФизЛицо = &ФизЛицо) КАК ПлановыеДополнительныеНачисленияСрезПоследних
    |ГДЕ
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ДатаН <= &дАТАК
    |
    |СГРУППИРОВАТЬ ПО
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ФизЛицо,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ВидРасчета,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.Подразделение,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.Должность,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.СтавкаДень,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.СтавкаНочь,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.СтавкаВечер,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ДатаН,
    |	ПлановыеДополнительныеНачисленияСрезПоследних.ДатаК
    |
    |УПОРЯДОЧИТЬ ПО
    |	ДатаК УБЫВ";
    
    Запрос.УстановитьПараметр("ДатаК",ЭтотОбъект.ПериодРегистрации);	
    Запрос.УстановитьПараметр("ФизЛицо",Результат1.Сотр);
    
    Результат=Запрос.Выполнить();
    
    Выборка1= Результат.Выбрать();     //Выгрузить()
    
    Иначе
    Выборка1 = Выборка.Выбрать(); 
    КонецЕсли;
    
    

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