Имя: Пароль:
1C
1С v8
СКД
🠗 (Волшебник 06.06.2013 23:44)
0 Woiager1984
 
06.06.13
23:36
Подскажите можно ли как-то результат выполнения СКД,дальше обработать программно?
1 zladenuw
 
06.06.13
23:37
типа поместить во внешний источник для другого скд ? или для чего ?
2 Гобсек
 
06.06.13
23:38
Иногда табличный документ обрабатывают программно перед выводом.
3 Woiager1984
 
06.06.13
23:40
Допустим в СКД получаю:
Сотрудник       Оклад
Ианов И И       3000

Обрабатываю программно оклад *2 получаю

Сотрудник       Оклад
Ианов И И       6000

Типа того!
4 zladenuw
 
06.06.13
23:41
(3) а в скд сделать
5 Woiager1984
 
06.06.13
23:42
ну там немного другое нужно сделать,привел простой пример,просто с скд некогда разбираться!)))
6 Woiager1984
 
06.06.13
23:43
Ну вообще скд использовал лишь для того чтобы в отчете можно было сделать отбор по сотрудникам.
7 Woiager1984
 
06.06.13
23:44
Просто есть отчет написан не на СКД,но в нем нет отбора по сотрудникам и что -то в 8.2 я никак не пойму как этот отбор сделать без СКД!))
8 zladenuw
 
06.06.13
23:46
читай тут
http://1cskd.ru/
9 Очкарик
 
07.06.13
00:33
В модуле отчета обрабатывай по самое не хочу

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

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

   //Создадим и инициализируем процессор компоновки, предварительно проверим параметры
   Если НЕ МакетКомпоновки.ЗначенияПараметров.Найти("НачалоПериода") = Неопределено
       И НЕ МакетКомпоновки.ЗначенияПараметров.Найти("КонецПериода") = Неопределено
       И НЕ МакетКомпоновки.ЗначенияПараметров["НачалоПериода"].Значение = Дата(1,1,1)
       И НЕ МакетКомпоновки.ЗначенияПараметров["КонецПериода"].Значение = Дата(1,1,1)
       И МакетКомпоновки.ЗначенияПараметров["НачалоПериода"].Значение > МакетКомпоновки.ЗначенияПараметров["КонецПериода"].Значение Тогда
       
       Сообщение            = Новый СообщениеПользователю;
       Сообщение.Текст        = "Дата начала периода не должна превышать дату окончания";
       Сообщение.Сообщить();
       
       Возврат;
       
   КонецЕсли;
   
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);

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

   //Обозначим начало вывода
   ПроцессорВывода.НачатьВывод();
   ТаблицаЗафиксирована = Ложь;

   ДокументРезультат.ФиксацияСверху = 0;
   //Основной цикл вывода отчета
   Пока Истина Цикл
       //Получим следующий элемент результата компоновки
       ЭлементРезультата = ПроцессорКомпоновки.Следующий();

       Если ЭлементРезультата = Неопределено Тогда
           //Следующий элемент не получен - заканчиваем цикл вывода
           Прервать;
       Иначе
           // Зафиксируем шапку
           Если  Не ТаблицаЗафиксирована
                 И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
                 И ТипЗнч(КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда

               ТаблицаЗафиксирована = Истина;
               ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;

           КонецЕсли;
           //Элемент получен - выведем его при помощи процессора вывода
           ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
       КонецЕсли;
   КонецЦикла;

   ПроцессорВывода.ЗакончитьВывод();

КонецПроцедуры
10 Очкарик
 
07.06.13
00:35
(8) > читай тут http://1cskd.ru/

А миста тогда для чего?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс