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

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

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

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

nenoob

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

Что писать после если чтобы получить Дом=Строка.НаселенныйПункт;?

nenoob

Уважаемые!  Снова формирую список НасПунктов, но мне нужны только 2, как их из результата отобрать по наименованию?

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

ТабНасПункты=Запрос.Выполнить().Выгрузить();

nenoob

И еще такой вопрос.

Вот часть кода
| И УслугиПоЛицевымСчетам.Владелец.ПометкаУдаления = ЛОЖЬ
| И УслугиПоЛицевымСчетам.Владелец.ДействующийЛицевойСчет = ИСТИНА
| И УслугиПоЛицевымСчетам.ПометкаУдаления = ЛОЖЬ
|
| СГРУППИРОВАТЬ ПО
| УслугиПоЛицевымСчетам.Владелец,
| УслугиПоЛицевымСчетам.Владелец.Владелец) КАК Норма
|ГДЕ
| (НЕ Норма.ЛицевойСчет В (&ЛицевыеСчетчиков))
|
|СГРУППИРОВАТЬ ПО
| Норма.ОбъектУчета.Владелец.Родитель";
ЗапросНорма.УстановитьПараметр("Дом",Дом);
ЗапросНорма.УстановитьПараметр("МесяцОтчета",Период);
ЗапросНорма.УстановитьПараметр("ЛицевыеСчетчиков",ЛицевыеСчетчиков);


//ЗапросНорма.УстановитьПараметр("БезСч",БезСч);

ТаблНорма=ЗапросНорма.Выполнить().Выгрузить();
Для Каждого Строка Из ТаблНорма Цикл
СтрокаВывода=ТаблВывода.Добавить();
СтрокаВывода.Улица=Строка.Улица;
СтрокаВывода.Плита=Строка.Плита;
СтрокаВывода.Колонка=Строка.Колонка;
СтрокаВывода.Отопление=Строка.Отопление;
СтрокаВывода.Баня=Строка.Баня;
СтрокаВывода.Гараж=Строка.Гараж;
СтрокаВывода.Теплица=Строка.Теплица;
СтрокаВывода.ЛицевойСчет=Строка.ЛицевойСчет;
КонецЦикла;
ТаблВывода.Свернуть("Улица","Счетчик,Плита,Колонка,Отопление,Баня,Гараж,Теплица,ЛицевойСчет");
КонецЕсли;


ТаблВывода.Свернуть уже формирует окончательную таблицу с нужными данными а мне нужно добавить еще 1 колонку, но чтобы она считала разницу между "ЛицевойСчет" и "Счетчик", Какое и куда установить условие чтобы это работало?

cska-fanat-kz

Вместо последнего цикла "Для каждого..." можно просто сделать

ТаблВывода.Загрузить(ТаблицаНорма);

а колонка добавляется просто:
ТаблВывода.Колонки.Добавить("Разница");

А потом уже цикл "Для каждого..."

ЗЫ Если конечно это нельзя посчитать изначально в запросе...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

nenoob

Все равно не пойму куда вставить, если можно посмотрите внешний отчет, я так понимаю что после формирования нужных данных к выводу, мне нужно с ними проделать еще одну математическую операцию и вывести ее результат в отдельную строку.

Или ткните пальцем что нужно почитать т.к. я только стою на пути изучения 1с. :xfbnsdfb:

cska-fanat-kz

Посмотрел...
Мдааа...

1. Метод Показать() показывает сформированный табличный документ в отдельном окне - оно вас надо если у вас ТабДок на форме лежит?
2. Напишите постановку задачи - терзают смутные сомнения что учет построен изначально не на тех объектах...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

nenoob

Обработка изначально не моя, старый программист я так понял был не очень силен в оптимизации запросов и делал так... чтобы работало.

Задача такая:
Имеем базу абонентов по разным населенным пунктам, продаем им газ природный, для статистики нужно знать  какое общее количество абонентов, т.е. со счетчиками и без них, так же разделяются нормативы на жилые, не жилые помещения, к нежилым относятся бани гаражи и т.п., (вид отчета прикрепляю ниже), так периодически возникают различные вопросы, типа сколько абонентов на такой то улице или нас.пункте без счетчиков.
По-этому поставлена цель создать универсальную обработку чтобы можно было быстро получать нужные данные.
Т.к. с элементами  формами пока проблема, но в идеале хочу вывести на форму кнопки и выбирать нужные параметры по мере необходимости, пытаюсь добиться вывода всех данных в одну таблицу, создать оптимизированный запрос.


cska-fanat-kz

1. в адресации вы насколько глубоко заходите, что у вас есть: номер дома, улица, город, ...?
2. думается должны быть следующие объекты:
а) справочник Абоненты
б) регистр сведений СостояниеАбонентов: измерение - Абонент, ресурс - Состояние (активен\не активен) и Счетчик (истина\ложь)
в) справочник Помещения с реквизитом Жилое (истина\ложь)
г) регистр сведений ПомещенияАбонента: измерения - Абонент и Помещение
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

nenoob

1. В адресации есть номер дома, улица, населенный пункт.

2. Справочника Абоненты как такого нет, они отслеживаются по действующему Лицевому Счету, в Справочнике ЛицевыеСчета, по признаку ДействующийЛицевойСчет.

3. Счетчики отслеживаются по справочнику Счетчики, по Наименование (Не Пустое) и не помечен на удаление.

4. Помещения отслеживаются по типам Баня, Теплица, Гараж и т.д. в справочнике Номенклатура (там же отдельно есть жилые не жилые, не по признаку булево).

cska-fanat-kz

п.3 справочник нужен только в том случае если вам нужно запоминать например номер счетчика, дату установки и т.п. И добавить регистр сведений СчетчикиАбонентов...

п.4 тип помещения сделайте перечислением: опираться на наименование - плохо...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

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

Поиск