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

Добавить столбец в макет

Автор ahtoxa2222, 01 мар 2019, 07:27

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

ahtoxa2222

Здравствуйте!
Конфигурация УАТ 1.0, отчет само писаный, нужна помощь, не получается в макете печатной формы заполнить реквизит "Подразделение", изначально отчет не содержал этого реквизита, я добавил его в запрос, консоль запросов выводит данные верно.

В таком варианте столбец "Подразделение" заполняется пустым.

Перем НП;

Процедура КнопкаВыполнитьНажатие(Кнопка)
ТД=ЭлементыФормы.ТД;
ТД.Очистить();
Макет=ПолучитьМакет("Макет");

О=Макет.ПолучитьОбласть("Заголовок");
О.Параметры.ПредставлениеПериода=ПредставлениеПериода(Дата1,КонецДня(Дата2),"ФП");
ТД.Вывести(О);

Запрос=ПостроительОтчета.ПолучитьЗапрос();
Запрос.УстановитьПараметр("Дата1",Дата1);
Запрос.УстановитьПараметр("Дата2",КонецДня(Дата2));
Запрос.УстановитьПараметр("Колонна",Колонна);
Запрос.УстановитьПараметр("ГСМ",ГСМ);
Запрос.УстановитьПараметр("Подразделение",Подразделение);

Рез=Запрос.Выполнить();

ВыбИтог=Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Если Не ВыбИтог.Следующий() Тогда
Возврат
КонецЕсли;

О=Макет.ПолучитьОбласть("Шапка|Л");
ТД.Вывести(О);

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

О=Макет.ПолучитьОбласть("Шапка|П");
ТД.Присоединить(О);

ВыбВид=ВыбИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыбВид.Следующий() Цикл
ВыбТС=ВыбВид.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыбТС.Следующий() Цикл
О=Макет.ПолучитьОбласть("ТС|Л");
О.Параметры.Заполнить(ВыбТС);
ТД.Вывести(О);

ВыбОперТС=ВыбТС.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Оператор","ВСЕ");
Пока ВыбОперТС.Следующий() Цикл
О=Макет.ПолучитьОбласть("ТС|Оператор");
О.Параметры.Заполнить(ВыбОперТС);
//расшифровка
РасшифровкаСтроки = Новый Структура("ТС, Оператор", ВыбТС.ТС, ВыбОперТС.Оператор);
О.Параметры.РасшифровкаСтроки = РасшифровкаСтроки;
//
ТД.Присоединить(О);
КонецЦикла;

О=Макет.ПолучитьОбласть("ТС|П");
О.Параметры.Заполнить(ВыбТС);
ТД.Присоединить(О);



КонецЦикла;
КонецЦикла;

О=Макет.ПолучитьОбласть("Итог|Л");
ТД.Вывести(О);

ВыбОпер.Сбросить();
Пока ВыбОпер.Следующий() Цикл
О=Макет.ПолучитьОбласть("Итог|Оператор");
О.Параметры.Заполнить(ВыбОпер);
ТД.Присоединить(О);
КонецЦикла;

О=Макет.ПолучитьОбласть("Итог|П");
О.Параметры.Заполнить(ВыбИтог);
ТД.Присоединить(О);


ТД.ИмяПараметровПечати="ИТБ_Отчет_Заправки_По_Операторам";

ЭлементыФормы.Панель1.ТекущаяСтраница=ЭлементыФормы.Панель1.Страницы.Отчет;

КонецПроцедуры



Процедура ПриОткрытии()
Если ПостроительОтчета.Отбор.Найти("ВидТС")=Неопределено Тогда
ПостроительОтчета.Отбор.Добавить("ВидТС");
КонецЕсли;
Если ПостроительОтчета.Отбор.Найти("ТС")=Неопределено Тогда
ПостроительОтчета.Отбор.Добавить("ТС");
КонецЕсли;
КонецПроцедуры

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ПостроительОтчета.Текст=
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| уатПутевойЛистЗаправкаПоОператорам.Ссылка.ТранспортноеСредство КАК ТС,
| уатПутевойЛистЗаправкаПоОператорам.Оператор КАК Оператор,
| уатПутевойЛистЗаправкаПоОператорам.Выдано КАК Выдано,
| уатПервоначальныеСведенияТС.ТипТС КАК ВидТС,
| уатПервоначальныеСведенияТС.ГосударственныйНомер КАК ГосНомер,
| уатПервоначальныеСведенияТС.Модель КАК Модель,
|   уатПервоначальныеСведенияТС.Подразделение,
| уатПутевойЛистЗаправкаПоОператорам.Ссылка
|ИЗ
| Документ.уатПутевойЛист.ЗаправкаПоОператорам КАК уатПутевойЛистЗаправкаПоОператорам
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыПЛ КАК ПараметрыПЛ
| ПО (ПараметрыПЛ.ГСМ = &ГСМ)
| И уатПутевойЛистЗаправкаПоОператорам.Ссылка = ПараметрыПЛ.Регистратор
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.уатТС КАК уатПервоначальныеСведенияТС
| ПО уатПутевойЛистЗаправкаПоОператорам.Ссылка.ТранспортноеСредство = уатПервоначальныеСведенияТС.Ссылка
|ГДЕ
    |   уатПутевойЛистЗаправкаПоОператорам.ГСМ = &ГСМ
| И уатПутевойЛистЗаправкаПоОператорам.Ссылка.ДатаВыезда МЕЖДУ &Дата1 И &Дата2
| И (ПараметрыПЛ.Колонна = &Колонна
| ИЛИ &Колонна = ЗНАЧЕНИЕ(Справочник.уатКолонны.ПустаяСсылка))
|   И (уатПервоначальныеСведенияТС.Подразделение = &Подразделение
|           ИЛИ &Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка))
|{ГДЕ
| уатПутевойЛистЗаправкаПоОператорам.Ссылка.ТранспортноеСредство.* КАК ТС,
| уатПервоначальныеСведенияТС.Модель.*,
| уатПервоначальныеСведенияТС.ТипТС.* КАК ВидТС}
|
|УПОРЯДОЧИТЬ ПО
| ВидТС,
| Оператор,
| Модель,
| ГосНомер
|ИТОГИ
| СУММА(Выдано),
| МАКСИМУМ(ВидТС),
| МАКСИМУМ(ГосНомер),
| МАКСИМУМ(Модель)
|ПО
| ОБЩИЕ,
| ВидТС,
| ТС,
| Оператор
|АВТОУПОРЯДОЧИВАНИЕ";

КонецПроцедуры

Процедура ПередСохранениемЗначений(Отказ)
Отбор=ПостроительОтчета.Отбор;
КонецПроцедуры

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


Процедура КнопкаНастройкаПериодаНажатие(Элемент)

Если НП.Редактировать() Тогда

Дата1 = НП.ПолучитьДатуНачала();
Дата2 = НП.ПолучитьДатуОкончания();

КонецЕсли;

КонецПроцедуры

Процедура ТДОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

Если ТипЗнч(Расшифровка) = Тип("Структура") Тогда

СтандартнаяОбработка = Ложь;
Запрос = Новый Запрос();

Запрос.Текст =
"ВЫБРАТЬ
| Заправки.Ссылка.Номер КАК Лист,
| Заправки.Ссылка.ДатаВыезда КАК ДатаВыезда,
| Заправки.Карта.Код КАК Карта,
| Заправки.Выдано,
| Заправки.Ссылка КАК ПутевойЛист
|ИЗ
| Документ.уатПутевойЛист.ЗаправкаПоОператорам КАК Заправки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыПЛ КАК ПараметрыПЛ
| ПО (ПараметрыПЛ.ГСМ = &ГСМ)
| И Заправки.Ссылка = ПараметрыПЛ.Регистратор
|ГДЕ
| Заправки.Ссылка.ТранспортноеСредство = &ТранспортноеСредство
| И Заправки.Ссылка.ДатаВыезда МЕЖДУ &Д1 И &Д2
| И Заправки.Оператор = &Оператор
| И Заправки.ГСМ = &ГСМ
| И (ПараметрыПЛ.Колонна = &Колонна
| ИЛИ &Колонна = ЗНАЧЕНИЕ(Справочник.уатКолонны.ПустаяСсылка))";
Запрос.УстановитьПараметр("Д1", Дата1);
Запрос.УстановитьПараметр("Д2", КонецДня(Дата2));
Запрос.УстановитьПараметр("ТранспортноеСредство",Расшифровка.ТС);
Запрос.УстановитьПараметр("Оператор",Расшифровка.Оператор);
Запрос.УстановитьПараметр("Колонна",Колонна);
Запрос.УстановитьПараметр("ГСМ", ГСМ);

Т = Запрос.Выполнить().Выгрузить();
Если Т.Количество() = 0 Тогда Возврат; КонецЕсли;

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

ОткрытьЗначение(Т[ТТ.Индекс(Стр)].ПутевойЛист);

КонецЕсли;
КонецПроцедуры



НП = Новый НастройкаПериода;






ahtoxa2222

Фотки пустые загружаются, кинул ссылки с макетами;)
https://yadi.sk/i/CdY9Sp54DKM-wg
https://yadi.sk/i/dd-dCDj94tTquA

wise

(0) у Вас может быть подразделение ПУСТОЕ...
смотрите отладчиком {Пока ВыбТС.Следующий() Цикл
            О=Макет.ПолучитьОбласть("ТС|Л");
            О.Параметры.Заполнить(ВыбТС);} что в "ВыбТС"
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Теги:

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

Рейтинг@Mail.ru

Поиск