Имя: Пароль:
1C
1С v8
СрезПоследних
,
0 Erhov_egor
 
25.04.12
11:57
Процедура ЗаполнитьТЧПоказания()
    Документ = РеквизитФормыВЗначение("Объект");
    Если Документ.ЭтоНовый() Тогда
         
         Запрос = Новый Запрос;
         Запрос.Текст =
         "ВЫБРАТЬ
         |     ПриборыУчета.Владелец.Владелец КАК Контрагент,
         |     ПриборыУчета.Владелец КАК ОбъектВодопотребления,
         |     ПриборыУчета.Ссылка КАК Водомер,
         |     ПриборыУчета.ВидРасчета КАК ВидРасчета,
         |     ЕСТЬNULL(ПоказанияПриборовУчетаСрезПоследних.Показание, 0) КАК Показание,
         |     ЕСТЬNULL(ПоказанияПриборовУчетаСрезПоследних.Потребление, 0) КАК Потребление,
         |     ПоказанияПриборовУчетаСрезПоследних.Период КАК Период
         |ИЗ
         |     Справочник.ПриборыУчета КАК ПриборыУчета
         |          ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПоказанияПриборовУчета.СрезПоследних КАК ПоказанияПриборовУчетаСрезПоследних
         |          ПО (ПоказанияПриборовУчетаСрезПоследних.ПриборУчета = ПриборыУчета.Ссылка)
         |               И ПриборыУчета.Владелец.Владелец = ПоказанияПриборовУчетаСрезПоследних.Контрагент
         |
         |УПОРЯДОЧИТЬ ПО
         |     ПриборыУчета.Владелец.Владелец.Код,
         |     ПриборыУчета.Владелец.НаселенныйПункт.Код,
         |     ПриборыУчета.Владелец.Улица.Код,
         |     ПриборыУчета.Владелец.Дом,
         |     ПриборыУчета.Владелец.Корпус,
         |     ПриборыУчета.Владелец.Квартира";
         Запрос.УстановитьПараметр("ПериодОтбора",     Документ.Дата);      //Дата
         РезультатЗапроса = Запрос.Выполнить().Выгрузить();    
         
         Для Каждого СтрокаЗапроса Из РезультатЗапроса Цикл
              ПриборыУчета = Документ.Показания.Добавить();
              ПриборыУчета.ВидРасчета = СтрокаЗапроса.ВидРасчета;
              ПриборыУчета.КодПотребителя =  СтрокаЗапроса.Контрагент.Код;
              ПриборыУчета.Контрагент = СтрокаЗапроса.Контрагент;
              ПриборыУчета.ОбъектВодопотребления = СтрокаЗапроса.ОбъектВодопотребления;
              Если Найти(СтрокаЗапроса.Водомер.Наименование, "Лимит") > 0 Тогда
                   ПриборыУчета.Потребление = СтрокаЗапроса.Потребление;
              Иначе
                   ПриборыУчета.ПоказаниеПредыдущее = СтрокаЗапроса.Показание;
              КонецЕсли;
              ПриборыУчета.ПриборУчета = СтрокаЗапроса.Водомер;
         КонецЦикла;
    Иначе
         
    КонецЕсли;    
    ЗначениеВРеквизитФормы(Документ,"Объект");
   
КонецПроцедуры
1 Ненавижу 1С
 
гуру
25.04.12
11:58
(0) хвастаешься?
2 Erhov_egor
 
25.04.12
11:58
В общем разбираюсь с запром,проблема в том что двоятся записи,причем показания разные хотя в регистрах на текущую дату только 1 запись
3 Wobland
 
25.04.12
11:59
(1) надеется, что в книгу знаний занесут
4 Erhov_egor
 
25.04.12
11:59
ага,кривым запросом только
5 Wobland
 
25.04.12
11:59
(2) а вот теперь хвастаешься ;)
6 Erhov_egor
 
25.04.12
11:59
(3)а вдруг
7 PR
 
25.04.12
12:00
(2) А почему проблема запора у тебя заключается в двойных записях? o_O
8 Erhov_egor
 
25.04.12
12:00
перепробовал вроде все,но все равно одно и тоже,или делаю потом че нибудь другое вылезит
9 GenV
 
25.04.12
12:00
(0) Владелец приборов учета кто, договоры?
10 Wobland
 
25.04.12
12:00
без структуры регистра плохо думается. что-то где-то какое-то измерение недоучёл
11 Erhov_egor
 
25.04.12
12:01
(7)загружается в док там две записи одинаковые все измерения совпадают
12 Erhov_egor
 
25.04.12
12:01
3 измерения
13 Ненавижу 1С
 
гуру
25.04.12
12:02
(12) вот из-за третьего и не взлетает, есть две записи по 3-му измерению
14 Erhov_egor
 
25.04.12
12:03
Контрагент, ПриборУчета, ВидРасчета
15 Ненавижу 1С
 
гуру
25.04.12
12:04
(14) есть разные срезы на разные виды расчета
16 Erhov_egor
 
25.04.12
12:05
(15)но все измерения то совпадают
17 Wobland
 
25.04.12
12:06
(16) неа
18 Ненавижу 1С
 
гуру
25.04.12
12:06
(16) прочти (15) внимательно
19 Erhov_egor
 
25.04.12
12:15
(18)все равно не врубился нифига,
я так понял в запросе надо убрать  ЕСТЬNULL(ПоказанияПриборовУчетаСрезПоследних.Потребление, 0) КАК Потребление?
20 Ненавижу 1С
 
гуру
25.04.12
12:19
(19) неа
у тебя две строки в срезе, ибо ты учитываешь разницу по третьему измерению
21 Ненавижу 1С
 
гуру
25.04.12
12:19
выведи поле ПоказанияПриборовУчетаСрезПоследних.ВидРасчета
22 Erhov_egor
 
25.04.12
13:18
ага спасибо все врубился
23 Jofa
 
25.04.12
13:31
Ну что взлетело??
24 Jofa
 
25.04.12
13:33
(0)Сурово . .
25 Erhov_egor
 
25.04.12
13:36
взлетело
26 Jofa
 
25.04.12
13:53
(0)У куда ты в Запросе Параметр такой устанавливаешь?
Запрос.УстановитьПараметр("ПериодОтбора",     Документ.Дата);