1С-ки плз помогите не профи

  • Автор теми Автор теми gls
  • Дата створення Дата створення

gls

Статус: Офлайн
Реєстрація: 04.04.2007
Повідом.: 214
1С-ки плз помогите не профи

Есть простенький отчет по взаиморасчетам с контрагентами. Справочник контрагентов был одноуровневый, сейчас понадобилось сделать 2-уровневым. Что дописать в текст Модуля, чтобы отчет при выборе папки выбирал котрагентов только из нее?
В диалоге КАгент - Справочник.Контрагенты
Процедура Взаиморасчеты()
Перем Запрос, ТекстЗапроса, Таб,Опл;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Взаиморасчеты)
|Период с ВыбНачПериода по ВыбКонПериода;
|
|Контрагент = Регистр.Взаиморасчеты.Контрагент;
|Сумма = Регистр.Взаиморасчеты.Сумма;

|Функция СуммаНачОст = НачОст(Сумма);
|Функция СуммаПриход = Приход(Сумма);
|Функция СуммаРасход = Расход(Сумма);
|Функция СуммаКонОст = КонОст(Сумма);
|Группировка Контрагент без групп;
|"//}}ЗАПРОС
;

Если Дет=0 Тогда
ТекстЗапроса=ТекстЗапроса+"Группировка Документ;";
КонецЕсли;
Если КАгент.Выбран()=1 Тогда
ТекстЗапроса=ТекстЗапроса+"Условие (Контрагент=КАгент);";
КонецЕсли;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Взаиморасчеты");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Пока Запрос.Группировка("Контрагент") = 1 Цикл
Таб.ВывестиСекцию("Контрагент");
Если Дет=0 Тогда
Пока Запрос.Группировка("Документ") = 1 Цикл
Таб.ВывестиСекцию("Документ");
КонецЦикла;
КонецЕсли;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Взаиморасчеты","");
КонецПроцедуры


ВыбНачПериода=ТекущаяДата();
ВыбКонПериода=ТекущаяДата();
 
Если КАгент.Выбран()=1 Тогда
СпособСравнения = " = ";
Если КАгент.ЭтоГруппа() Тогда
СпособСравнения = " В ИЕРАРХИИ ";
КонецЕсли;
ТекстЗапроса=ТекстЗапроса+"Условие (Контрагент"+СпособСравнения+"(КАгент));";
КонецЕсли;
 
"//{{ЗАПРОС(Взаиморасчеты)
|Период с ВыбНачПериода по ВыбКонПериода;
|
|Контрагент = Регистр.Взаиморасчеты.Контрагент;
|Сумма = Регистр.Взаиморасчеты.Сумма;

|Функция СуммаНачОст = НачОст(Сумма);
|Функция СуммаПриход = Приход(Сумма);
|Функция СуммаРасход = Расход(Сумма);
|Функция СуммаКонОст = КонОст(Сумма);
|Группировка Контрагент без групп; // Здесь убрать "без групп" - если хочется видеть с группами
|Условие (Контрагент в ВыбКонтрагенты) // эту строчку добавляем, выбконтрагенты - поле ввода на форме
|"//}}ЗАПРОС
 
Назад
Зверху Знизу