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

ЭлементыФормы.ПолеТабличногоДокумента

Автор nenoob, 20 фев 2012, 09:55

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

nenoob

Вот другой вариант, но с этим же макетом, собственно тут все работает, но выдается списокдлинной больше 16000 счетов а не итоговое количество счетов, а в предыдущем примере пустая таблица, с этим же макетом.

  ТабДок = Новый ТабличныйДокумент;
     
  Запрос = Новый Запрос;
  Запрос.Текст =
  "ВЫБРАТЬ
  |   ЛицевыеСчета.Владелец.ОсновнойЛицевойСчет КАК Абонент
  |ИЗ
  |   Справочник.ЛицевыеСчета КАК ЛицевыеСчета
  |АВТОУПОРЯДОЧИВАНИЕ";
 
  Результат = Запрос.Выполнить().Выгрузить();
 
  ТабДок = Новый ТабличныйДокумент;

  Макет = ПолучитьМакет("Макет");
  Для каждого ЛицевыеСчета Из Результат Цикл
  ОбластьЛицевыеСчета = Макет.ПолучитьОбласть("Строка");
         ОбластьЛицевыеСчета.Параметры.Абонент=ЛицевыеСчета.Абонент;
     
        ТабДок.Вывести(ОбластьЛицевыеСчета);
  КонецЦикла;
  ТабДок.Показать();

nenoob

Получить мне надо всего лишь общее количество счетов, и вывести в таблицу значение.

sergejK74

ТабДок.Вывести(ОбластьЛицевыеСчета);

Работающий вариант прицепил

Кнопочка Спасибо - слева!

nenoob


nenoob

Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
|    КОЛИЧЕСТВО(ЛицевыеСчета.Ссылка) КАК КоличествоЛицевыхСчетов
|ИЗ
|    Справочник.ЛицевыеСчета КАК ЛицевыеСчета";
Вдруг найдется еще такой как, надо было сделать так:
 
Результат = Запрос.Выполнить().Выгрузить();
   КоличествоАбонентов = Результат.Количество();
   //Результат = Запрос.Выполнить();
   ТабДок = Новый ТабличныйДокумент;
   Макет = ПолучитьМакет("Макет");
   
   Для Каждого Строка Из Результат Цикл
ОбластьЛицевыеСчета = Макет.ПолучитьОбласть("Строка");    
    ОбластьЛицевыеСчета.Параметры.Квартиросъемщик = Строка.КоличествоЛицевыхСчетов;
ТабДок.Вывести(ОбластьЛицевыеСчета);
КонецЦикла;
//Если Не Результат.Пустой() Тогда
// Выборка = Результат.Выбрать();
// Выборка.Следующий();
// ОбластьЛицевыеСчета = Макет.ПолучитьОбласть("Строка");
// ОбластьЛицевыеСчета.Параметры.Квартиросъемщик = Выборка.КоличествоЛицевыхСчетов;
// ТабДок.Вывести(ОбластьЛицевыеСчета);
//КонецЕсли;
ТабДок.Показать();


Пока вопросов нет,Всем спасибо за помощь :)

nenoob

сори, накосячил в предыдущем посте (Удалите), кнопки править не нашел.

Сделать надо было так:

  Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
|    КОЛИЧЕСТВО(ЛицевыеСчета.Ссылка) КАК КоличествоЛицевыхСчетов
|ИЗ
|    Справочник.ЛицевыеСчета КАК ЛицевыеСчета";

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


Всем спасибо за помощь! :)

nenoob

Снова за помощью :)

Есть такой запрос

ЗапросНасПункты=Новый Запрос;
ЗапросНасПункты.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
                      | Дома.Родитель.Родитель.Ссылка КАК НаселенныйПункт
                      |ИЗ
                      | Справочник.Дома КАК Дома
                      |ГДЕ
                      | Дома.ПометкаУдаления = ЛОЖЬ
                      |
                      |СГРУППИРОВАТЬ ПО
                      | Дома.Родитель.Родитель.Ссылка
                      |
                      |УПОРЯДОЧИТЬ ПО
                      | НаселенныйПункт
                      |АВТОУПОРЯДОЧИВАНИЕ";
ТабНасПункты=ЗапросНасПункты.Выполнить().Выгрузить();

ТабДокПечать = ЭлементыФормы.ПолеТабличногоДокумента;
ТабДокПечать.Очистить();

Для Каждого Строка Из ТабНасПункты Цикл
Если ТабНасПункты.Индекс(Строка)<>0 Тогда
Дом=Строка.НаселенныйПункт;
КонецЕсли;


Результат запроса выводит но  в результате вместо 14 населенных пунктов присутствует еще пустая строка с индексом 0, как от нее избавиться?

cska-fanat-kz

А если еще условие добавить на ЭтоГруппа = ЛОЖЬ?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

Ну в раздел ГДЕ засунуть условие на пустое поле :)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

nenoob

И точно ведь, снова спасибо  :zebzdr:


Состояние("Обрабатывается запрос...");

ЗапросНасПункты=Новый Запрос;
ЗапросНасПункты.Текст="ВЫБРАТЬ
                      | Дома.Родитель.Родитель.Ссылка КАК НаселенныйПункт
                      |ИЗ
                      | Справочник.Дома КАК Дома
                      |ГДЕ
                      | Дома.ПометкаУдаления = ЛОЖЬ
                      | И (НЕ Дома.Родитель.Родитель.Ссылка = Неопределено)
                      |
                      |СГРУППИРОВАТЬ ПО
                      | Дома.Родитель.Родитель.Ссылка
                      |
                      |УПОРЯДОЧИТЬ ПО
                      | НаселенныйПункт
                      |АВТОУПОРЯДОЧИВАНИЕ";
ТабНасПункты=ЗапросНасПункты.Выполнить().Выгрузить();


Сделал вот так ...
Но мне все таки не понятно от куда там брался 0 индекс с пустым значение, ведь его фактически нет. Интересна логика системы.
Может есть какое то объяснение сия явления?

Теги:
Рейтинг@Mail.ru

Поиск