Имя: Пароль:
1C
1С v8
Передать границу периода в СКД
0 Alex_MA
 
09.02.12
11:01
Всем доброго дня!

СКД использует один запрос
1 Alex_MA
 
09.02.12
11:03
(0)нечаянно жамкнул кнопку.

ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.vscКлассификаторДоговораПоРасчетам КАК КлассификаторДоговораПоРасчетам,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.vscБюджет КАК Бюджет,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента.vscОтрасль КАК Отрасль,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Организация КАК Организация,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДоговорКонтрагента КАК ДоговорКонтрагента,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент КАК Контрагент,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
   0 КАК СуммаВзаиморасчетовПриход,
   0 КАК СуммаВзаиморасчетовРасход,
   0 КАК СуммаВзаиморасчетовНачальныйОстаток

ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки({&ОстатокКонец}, ) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки

Как программно установить границу в СКД.
Через общий модуль и использование ф-ии в выражении знаю что можно.

Функция СоздатьГраницуПоДате(Дата) Экспорт
  Возврат Новый Граница(Дата, ВидГраницы.Включая);
КонецФункции
2 pessok
 
09.02.12
11:05
Параметры.Найти("Период").ДатаОкончания не катит?
3 pessok
 
09.02.12
11:06
в твоем случае
Параметры.Найти("ДатаОкончания").ДатаОкончания не катит?
вот только зачем новый параметр вводить?
4 pessok
 
09.02.12
11:07
мля...
Параметры.Найти("ДатаОкончания") если тип Дата, и
Параметры.Найти("ДатаОкончания").ДатаОкончания - если Период
5 Alex_MA
 
09.02.12
11:10
в своей форме:

СКД = Отчет.ПолучитьМакет("СКД");
СКД.Параметры - эти ?
6 Alex_MA
 
09.02.12
11:25
необходимо установить параметры СКД через пользовательские настройки ?

http://gyazo.com/e181838eb38f978ea0fd3baba7ff201e
http://gyazo.com/f5391c26a7912ca6406347bdc79613af      - пустые параметры СКД
7 pessok
 
09.02.12
11:26
Нет. параметры компоновщика. Или тебе надо в самой скд, без изменения модуля?
8 Alex_MA
 
09.02.12
11:29
(7)у меня в параметрах компоновщика, в пользовательских настройках все установлено
http://gyazo.com/05f6d0cb6df1a1fabd39a72a1c70d979
9 Alex_MA
 
09.02.12
11:30
давай тогда чуть позже, у меня подключилась
10 Alex_MA
 
09.02.12
11:31
(7)т.е.
РеквизитФормыВЗначение("Отчет").КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0] = Новый Граница(КонецДня(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение), ВидГраницы.Включая) ???
11 Alex_MA
 
09.02.12
11:48
Для Каждого Элемент Из Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
   
   Если Строка(Элемент.Параметр) = "ОстатокКонец" Тогда
       Элемент.Значение = Новый Граница(КонецДня(Элемент.Значение), ВидГраницы.Включая);
   ИначеЕсли Строка(Элемент.Параметр) = "ОстатокНачало" Тогда
       Элемент.Значение = Новый Граница(НачалоДня(Элемент.Значение), ВидГраницы.Включая);    
   КонецЕсли;    
   
КонецЦикла;

Вот так ?
12 Alex_MA
 
09.02.12
12:02
Короче пишу:

&НаКлиенте
Процедура ВыполнитьОтчет(Команда)
   
   СформироватьСервер();
   
   
КонецПроцедуры

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

СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

Настройки = Отчет.КомпоновщикНастроек.Настройки;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки   = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
КонецПроцедуры


отчет формируется в таком виде:
http://gyazo.com/83e075ac3b56b174e2048130d392f939
13 IronDemon
 
09.02.12
12:12
14 Alex_MA
 
09.02.12
12:15
(13)меня интересует как через код, а конкретно
http://s49.radikal.ru/i124/1005/30/35dd297a57d6.jpg
15 Alex_MA
 
09.02.12
12:20
а в моем случае через параметр как делается (без добавить 1с.) ?
и еще вопрос, КомпоновщикНастроек при нажатии на типовую кнопку сформировать отчет что делает ? При создании своей кнопки нужно ручками прописывать Отчет.КомпоновщикНастроек.ПользовательскиеНастройки в СхемаКомпоновкиДанных.Параметры и в Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных ???