Имя: Пароль:
1C
1С v8
Объединение СКД с ТЗ
,
0 Vasauki
 
16.06.12
14:34
Есть отчет СКД типа Запрос. В нем запрашиваются определенные документы. Есть ТЗ с некоторыми из этих документов. Как мне сделать объединение СКД с ТЗ?
1 Мимохожий Однако
 
16.06.12
15:12
Добавь в запрос условие по списку документов из ТЗ.
2 Vasauki
 
16.06.12
15:30
А если в ТЗ есть еще одна колонка? Ее можно добавить в запрос?
3 Новенький_2009
 
16.06.12
15:52
запрос покажи из схемы компоновки (для начала)
4 Ranger_83
 
16.06.12
15:53
в СКД можно добавить источник типа Объект.В него можно пихать ТЗ
5 badboychik
 
16.06.12
19:24
вот ведь люди... берутся за СКД и даже курсы бесплатные не удосуживаются посмотреть
6 SoulPower
 
16.06.12
20:19
(5) Может он не в курсе об этих курсах.
7 Vasauki
 
16.06.12
21:12
(5) Об курсах не слышал, скажите пожалуйста, где можно почитать.
(4) Как можно запихать ТЗ в Объект?

(1) Вот запрос
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ТорговыйПредставитель,
   ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.СуммаВзаиморасчетовОстаток,
   КонтрагентыКонтрольКредитаКоманд.СрокОплаты,
   РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, КонтрагентыКонтрольКредитаКоманд.СрокОплаты), &Период, ДЕНЬ) КАК ДнейПросрочено
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&Период, ) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтрагентыКонтрольКредитаКоманд КАК КонтрагентыКонтрольКредитаКоманд
       ПО ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.Контрагент = КонтрагентыКонтрольКредитаКоманд.Контрагент
           И (ВЫБОР
               КОГДА КонтрагентыКонтрольКредитаКоманд.КомандаТП.ЭтоГруппа
                   ТОГДА ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ТорговыйПредставитель.Родитель = КонтрагентыКонтрольКредитаКоманд.КомандаТП
               ИНАЧЕ ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ТорговыйПредставитель = КонтрагентыКонтрольКредитаКоманд.КомандаТП
           КОНЕЦ)
ГДЕ
   ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстатки.ДокументРасчетовСКонтрагентом.Дата, ДЕНЬ, ЕСТЬNULL(КонтрагентыКонтрольКредитаКоманд.СрокОплаты, 0) + &ДопОтсрочка) < &Период
8 Vasauki
 
16.06.12
21:17
Читал книгу Хрусталевой, там описан запихивания ТЗ в Объект способом через кнопку. Но после этого выходит отчет без настроек, а они очень нужны.
9 Vasauki
 
16.06.12
21:19
Да и должен быть способ, который позволит написать ТЗ в СКД и объединить ее с запросом прямо в самом СКД. Наверное должен быть...
10 dnab
 
16.06.12
22:06
добавь в СКД набор данных типа Объект, потом

ВнешниеНаборыДанных = Новый Структура;
   ВнешниеНаборыДанных.Вставить("ТвойНаборТипаОбъект", ТЗ);
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);

Разве не у Хрусталевой это было описано?
11 Vasauki
 
16.06.12
23:36
ВнешниеНаборыДанных = Новый Структура;
   ВнешниеНаборыДанных.Вставить("Документы",СписокДокументов);
   
   СхемаКомпоновкиДанных = ПолучитьМакет("НаборДанныхОбъект");
   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

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



Куда вот это вписывать?
12 Vasauki
 
16.06.12
23:37
Там нет настроек...
13 aspirator23
 
17.06.12
16:18
(10) Про истину забыл. Без нее никак.
14 dnab
 
17.06.12
17:46
(11) в модуль отчета конечно
(12) где там?
(13) что-то не так?
15 Vasauki
 
18.06.12
20:26
(14) А в какую процедуру вписывать? На курсах описывают к версии 8.2, а у меня 8.1. И там нет процедуры ПриКомпоновкеРезультата().
16 Мимохожий Однако
 
18.06.12
21:46
(15)На 8.2 переходить религия не позволяет?
17 dnab
 
18.06.12
22:00
(15) почему бы не вызывать при нажатии на кнопку?
18 Vasauki
 
18.06.12
22:34
(17)Все сделал, спасибо большое!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс