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

Передача данных из таблицы значений

Автор gliokker, 27 янв 2014, 12:49

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

gliokker

Цитата: Ildar Ziganshin от 27 янв 2014, 14:57
Отчет выводит данные, может посчиать что нужно, но для его выдачи данных нужны первоночальные данные. Где хранится информация о том, где хранится сколько он проехал километров. Какой процент? И т.д.
В справочниках,

Alex56

Нужно постоянно трудиться.

gliokker

Цитата: Ildar Ziganshin от 27 янв 2014, 15:21
Вот и делайте с помощью СКД.
Хаха,шутник,процедура расчёта ГСМ очень сложна, вы хоть понимаете сколько м не придётся потратить времени для описания всех расчётов, для всех типов машин расчтывается по разному + есть такое понятие как работа оборудования у которого тоже есть нормы расхода ГСМ, вот для чего и была создана таблица, в которую передаются данные уже посчитанные.Зачем мне изобретать велосипед если он уже есть. Простой вопрос- как добавить в СКД таблицу значений,переписывать процедуру расчёта ГСМ это уж слишком + расчёт происходит в закрытом модуле который я не могу посмотреть и как считать я тоже не имею понятия

Alex56

Вроде понял Вас. Вам надо вытащить данные с модуля, где это всё подсчитано и передать в СКД.
Нужно постоянно трудиться.

gliokker

Цитата: Ildar Ziganshin от 27 янв 2014, 15:34
Вроде понял Вас. Вам надо вытащить данные с модуля, где это всё подсчитано и передать в СКД.
Да, данные вытаскиваются. Вопрос как мне эти данные которые я вытащил и поместил в таблицу значений под названием ТЗНормРасходаСохраняемая добавить в СКД?
Вот что я делаю
Я делаю набор данных-запрос,туда помещаю данные которые мне понадобятся в отчёте
потом
Делаю набор данных-объект
обзываю её ТЗНормРасходаСохраняемая
Имя объекта в котором содержатся данные тоже ТЗНормРасходаСохраняемая
добавляю 4 поля которые получились при создании таблицы значений
потом в процедуре
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
добавляю свой внешний набор
СтандартнаяОбработка=Ложь;
   ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТЗНормРасходаСохраняемая",ТЗНормРасходаСохраняемая);

СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Пишит что переменная неопределенна
что- то нето делаю?

Новенькая

Чтобы передать таблицу значений:
1. добавляем набор данных Объект. Имя объекта, содержащего данные: ТЗНормРасходаСохраняемая.Добавляем нужные поля, соответствующие именам ваших колонок в таблице (ПутевойЛист и т.д.)
2. В модуле отчета:
Процедура ПараметрыИсполненияОтчета() Экспорт
   СтруктураНастроек = Новый Структура;
   //........................
   СтруктураНастроек.Вставить("ИспользоватьВнешниеНаборыДанных", Истина);
//..............
КонецПроцедуры
 
Функция ПодготовитьВнешниеНаборыДанных(ОтчетОбъект) Экспорт    

   ТЗНормРасходаСохраняемая= Новый ТаблицаЗначений;
   // здесь заполняете вашу таблицу
      
   Возврат Новый Структура("ТЗНормРасходаСохраняемая", ТЗНормРасходаСохраняемая);
КонецФункции

gliokker

Цитата: Новенькая от 27 янв 2014, 16:33
Чтобы передать таблицу значений:
1. добавляем набор данных Объект. Имя объекта, содержащего данные: ТЗНормРасходаСохраняемая.Добавляем нужные поля, соответствующие именам ваших колонок в таблице (ПутевойЛист и т.д.)
2. В модуле отчета:
Процедура ПараметрыИсполненияОтчета() Экспорт
   СтруктураНастроек = Новый Структура;
   //........................
   СтруктураНастроек.Вставить("ИспользоватьВнешниеНаборыДанных", Истина);
//..............
КонецПроцедуры
 
Функция ПодготовитьВнешниеНаборыДанных(ОтчетОбъект) Экспорт    

   ТЗНормРасходаСохраняемая= Новый ТаблицаЗначений;
   // здесь заполняете вашу таблицу
      
   Возврат Новый Структура("ТЗНормРасходаСохраняемая", ТЗНормРасходаСохраняемая);
КонецФункции
А зачем заполнять таблицу?

Новенькая

Вы же сами писали кусок кода, где вносите значения в эту таблицу:
  ТЗНормРасходаСохраняемая = ТЗНормРасхода.Скопировать( ); //копируем структуру ТЗ
            ТЗНормРасходаСохраняемая.Колонки.Добавить("ПутевойЛист");
            ТЗНормРасходаСохраняемая.Колонки.Добавить("ТССсылка", Новый ОписаниеТипов("СправочникСсылка.уатТС"));
......
Вы из нее хотите вывести данные в отчете???

gliokker

Цитата: Новенькая от 27 янв 2014, 16:48
Вы же сами писали кусок кода, где вносите значения в эту таблицу:
  ТЗНормРасходаСохраняемая = ТЗНормРасхода.Скопировать( ); //копируем структуру ТЗ
            ТЗНормРасходаСохраняемая.Колонки.Добавить("ПутевойЛист");
            ТЗНормРасходаСохраняемая.Колонки.Добавить("ТССсылка", Новый ОписаниеТипов("СправочникСсылка.уатТС"));
......
Вы из нее хотите вывести данные в отчете???
Да из неЁ(но не всё из неё часть из неё часть из запроса в СКД),я всё сделал вот только с компоновщиком не могу разобратся не работает
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
   ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("ТЗНормРасходаСохраняемая",ТЗНормРасходаСохраняемая);

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

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




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

Новенькая

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

Добавлено: 27 янв 2014, 17:05


ТЗНормРасходаСохраняемая - Где вы ее объявляете??? в другой процедуре??? Попробуйте перетащить все в ПриКомпоновкеРезультата

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск