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

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

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

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

gliokker

Всем привет,с таблица значений в 1с работаю неделю,была задача создать отчёт,по расшифровке расхода ГСМ
Сделал запрос потом передал в таблицу,по отладчику смотрю вроде данные, которые нужны есть в таблице. Подскажите как сделать чтоб они отображались в отчёте вот кусок модуля
  Запрос.УстановитьПараметр("СписокГСМ", СписокГСМ);
Запрос.УстановитьПараметр("Период", ЗаданнаяДата);
Запрос.УстановитьПараметр("ТС", СсылкаНаОбъект.ТранспортноеСредство);
Запрос.УстановитьПараметр("СсылкаНаОбъект", СсылкаНаОбъект.Ссылка);

тблНормыТС = Запрос.Выполнить().Выгрузить();
    Сч = тблНормыТС.Количество();
Пока Сч >= 1 Цикл
Сч = Сч - 1;

ТекСтрока = тблНормыТС[сч];
Если НЕ ЗначениеЗаполнено(Организация) И ЗначениеЗаполнено(ТекСтрока.Организация) Тогда
тблНормыТС.Удалить(ТекСтрока);
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(Организация) И ЗначениеЗаполнено(ТекСтрока.Организация) И Организация <> ТекСтрока.Организация Тогда
тблНормыТС.Удалить(ТекСтрока);
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(Организация) И НЕ ЗначениеЗаполнено(ТекСтрока.Организация) Тогда
СтрокаПоискаДоп = тблНормыТС.Найти(Организация, "Организация");
Если СтрокаПоискаДоп <> Неопределено И СтрокаПоискаДоп <> ТекСтрока Тогда
тблНормыТС.Удалить(ТекСтрока);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КоличНорм = тблНормыТС.Количество();

НормаРасхода = Новый Структура;

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

Если ТекКолонка.Имя = "ЛинейнаяНорма" И (НЕ ЗначениеЗаполнено(тблНормыТС[0].ЛинейнаяНорма)) тогда
НормаРасхода.Вставить("ЛинейнаяНорма", 0.0001);
Продолжить;
КонецЕсли;

НормаРасхода.Вставить(ТекКолонка.Имя, ?(ЗначениеЗаполнено(тблНормыТС[0][ТекКолонка.Имя]), тблНормыТС[0][ТекКолонка.Имя], 0));
КонецЦикла;


ТЗНормРасходаСохраняемая = Новый ТаблицаЗначений;

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


Нужно создавать макет и описывать все параметры,или можно как то в СКД передать данные? вообщем подскажите.

Alex56

Какая конфигурация? Если отчет, то наверное эти данные о расходе ГСМ в регитре накопления акомулируются.
Нужно постоянно трудиться.

gliokker

Цитата: Ildar Ziganshin от 27 янв 2014, 14:00
Какая конфигурация? Если отчет, то наверное эти данные о расходе ГСМ в регитре накопления акомулируются.
Управление автотранспортом, редакция 1.0, Проф (1.0.9.1)
Этих данных в регистрах нет.

Alex56

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

gliokker


Alex56

Не понял как Вы тогда расход ГСМ считаете? У вас есть цена за бензин и количество километров?
Нужно постоянно трудиться.

gliokker

Цитата: Ildar Ziganshin от 27 янв 2014, 14:18
Не понял как Вы тогда расход ГСМ считаете? У вас есть цена за бензин и количество километров?
Я скинул кусок модуля где идёт обращение на закрытый модуль в котором происходит расчёт ГСМ.НЕ в этом вопрос,вопрос в том ,как мне связать? хотя я уже начал делать взял создал 2 набора данных в СКД
один запросом другой объектом.Потом связал между собой. Теперь я так понимаю надо их связать программно в модуле ПриКомпоновкеРезультата? Как это сделать?

Alex56

Если Вам отчет нужен? То он в СКД данные берутся из регистров, документов и т.д. Вот я и подумал, что Вам отчет нужен расчет ГСМ. Я бы понял, где хранятся данные о расходе топлива и стоимоть его и просчтал бы стоимость ГСМ.
Нужно постоянно трудиться.

gliokker

Цитата: Ildar Ziganshin от 27 янв 2014, 14:29
Если Вам отчет нужен? То он в СКД данные берутся из регистров, документов и т.д. Вот я и подумал, что Вам отчет нужен расчет ГСМ. Я бы понял, где хранятся данные о расходе топлива и стоимоть его и просчтал бы стоимость ГСМ.
Мне и нужен отчёт о расшифровки расхода ГСМ. Данные не где не хранятся. Стоимость расчитать проще простого, мне нужно именно расшифровка. Поясню
машина 1 проехала 100 км и потратила 100л горючего, 100л горючего получилось при расчёте, а тоесть
ну скажем норма у машины 1 на пробег стоит 5л на транспортную работу стоит 3л + на работу отопителя 7%.Вот нам нужен отчёт который покажет из чего сложилась сумма в 100л.

Alex56

Отчет выводит данные, может посчиать что нужно, но для его выдачи данных нужны первоночальные данные. Где хранится информация о том, где хранится сколько он проехал километров. Какой процент? И т.д.
Нужно постоянно трудиться.

Теги:

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

Рейтинг@Mail.ru

Поиск