Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
09 окт 2024, 03:11

Дублируются записи при нажатии на кнопку "подобрать"

Автор ekaterinasslv, 13 ноя 2018, 14:46

0 Пользователей и 1 гость просматривают эту тему.

ekaterinasslv

Добрый день, уважаемые знатоки, помогите разобраться. имеется обработка, которая выводит показания по двухтарифным счетчикам. при нажатии на кнопку подобрать дублируются показания, то есть для одного адреса выводятся две записи. если не выводить дату то записи выводятся нормально. для каждого адреса одна запись. Как решить эту задачку?

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

   ТабличноеПолеДомов.Свернуть("Дом, КодПУвГИСЖКХ, ДатаСнятия, Показание, ПоказаниеТ2, Адрес");
   ТабличноеПолеДомов.Колонки.Добавить("НомерСтроки");
   //ТабличноеПолеДомов.Колонки.Добавить("ДатаСнятия");

   АвтонумерацияСтрок(ТабличноеПолеДомов);
   
КонецПроцедуры

oleg-x

Теги наше все, заключай код в теги, что бы удобно было читать, примерно так
Сообщить("Здесь был я");
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

AIFrame

По ссылке не свернул.
А вообще, запрос явно некорректно построен. Вангую, что и работать будет медленно на больших таблицах. Особенно, когда по документам, а не движениям.
И еще, рекомендую пользоваться построителем запросов, а не писать вручную. Читабельней вид.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск