Делаю обработку,которая выводит контрагентов,кол-во заказов . В следующем поле,при нажатии на него должна выходить форма в котором есть все заказы этого контрагента. Подскажите пожалуйста,как это реализовать?
на форме расшифровки
Процедура ДействияФормыСформировать(Кнопка)
ПостроительОтчетаОтчет = Новый ПостроительОтчета;
ПостроительОтчетаОтчет.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
| КОЛИЧЕСТВО(ЗаказПокупателя.Контрагент) КАК Количество
|{ВЫБРАТЬ
| ЗаказПокупателя.*,
| Контрагент.*}
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И ЗаказПокупателя.ДатаИсполнения <= &ДатаИсполнения
|
|СГРУППИРОВАТЬ ПО
| ЗаказПокупателя.Ссылка,
| ЗаказПокупателя.Контрагент,
| ЗаказПокупателя.ДатаИсполнения
|
|УПОРЯДОЧИТЬ ПО
| Контрагент
|ИТОГИ ПО
| Контрагент,
| ЗаказПокупателя
|АВТОУПОРЯДОЧИВАНИЕ";
ПостроительОтчетаОтчет.Параметры.Вставить("ДатаИсполнения",ДатаИсполнения);
табДок=ЭлементыФормы.ПолеТабличногоДокумента1;
табДок.Очистить();
табДок.ТолькоПросмотр=Истина;
ПостроительОтчетаОтчет.Выполнить();
МойМакет=ПолучитьМакет("Макет");
побл=МойМакет.ПолучитьОбласть("Заголовок");
ПостроительОтчетаОтчет.МакетЗаголовкаОтчета=побл;
табДок.Вывести(побл);
ОбластьШапка = МойМакет.ПолучитьОбласть("Шапка|Контрагент");
табДок.Вывести(ОбластьШапка);
областьЗаказ=МойМакет.ПолучитьОбласть("ЗаказыПокупателя");
ОблТаб = МойМакет.ПолучитьОбласть("Таблица|Контрагент");
табДок.НачатьАвтогруппировкуСтрок();
пВыб = ПостроительОтчетаОтчет.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);;
Пока пВыб.Следующий() Цикл
ОблТаб.Параметры.Заполнить(пВыб);
табДок.Вывести(ОблТаб,пВыб.Уровень());
КонецЦикла;
табДок.ЗакончитьАвтогруппировкуСтрок();
ТекущийПериод = НачалоДня(ТекущаяДата());
ГоризонтПланирования = КонецМесяца(ТекущаяДата());
_Период = НачалоМесяца(ТекущийПериод);
_КонПериод = КонецДня(ГоризонтПланирования);
Пока _Период <= _КонПериод Цикл
Если НачалоДня(_Период) < НачалоДня(ТекущийПериод) Тогда // прошлый день
областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(областьЗаказ);
ИначеЕсли НачалоДня(_Период) = НачалоДня(ТекущийПериод) Тогда // текущий день
областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(областьЗаказ);
Иначе
областьЗаказ.Параметры.СчетчикМесяца = Формат(_Период, "ДФ='dd.MM.yyyy (ddd)'");
табДок.Присоединить(областьЗаказ);
КонецЕсли;
_Период = КонецДня(_Период) + 1;
КонецЦикла;
КонецПроцедуры
Показатьна форме расшифровки
Процедура ЗаполнитьТЧПодробнымиДанными() Экспорт
Запрос= Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗаказПокупателя.Ссылка КАК Документ,
| ЗаказПокупателя.Контрагент КАК Контрагент,
| ЗаказПокупателя.ДатаИсполнения
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Проведен = ИСТИНА
| И ЗаказПокупателя.ДатаИсполнения МЕЖДУ &ДатаНач И &ДатаКон";
_ТекстУсловий = "ИСТИНА";
Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
СтрокаТЧ = ТЧ.Добавить();
СтрокаТЧ.Документ = СтрокаТаблЗаказы.Документ;
КонецЦикла;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(110) Ну я вижу такое решение:
1. Добавить в основную форму невидимую таблицу с колонками: Контрагент, СчетчикПериода, Заказ.
2. При формировании основной печатной формы перед выводом ячейки периода искать в таблице заказы по контрагенту и счетчику периода. Если заказы найдены, выводить их. Если нет - выводить прежнюю надпись "Выбрать заказ".
3. В форме расшифровки при нажатии на ОК добавлять в добавленную таблицу основной формы строки с выбранными заказами по контрагенту и периоду, для которых открыта форма расшифровки.
4. После закрытия формы расшифровки переформировывать основную печатную форму.
1. Добавить в основную форму невидимую таблицу с колонками: Контрагент, СчетчикПериода, Заказ.
2. При формировании основной печатной формы перед выводом ячейки периода искать в таблице заказы по контрагенту и счетчику периода. Если заказы найдены, выводить их. Если нет - выводить прежнюю надпись "Выбрать заказ".
3. В форме расшифровки при нажатии на ОК добавлять в добавленную таблицу основной формы строки с выбранными заказами по контрагенту и периоду, для которых открыта форма расшифровки.
4. После закрытия формы расшифровки переформировывать основную печатную форму.
(120) Извините меня, пожалуйста, но я уже потерял всякий интерес к решению Вашей задачи. Попробуйте создать новую тему с ссылкой на текущую и описанием уже достигнутых результатов. В таком случае более вероятно, что другие участники форма подключаться и помогут Вам. Сюда уже вряд ли кто зайдет и напишет. :)
Если данные в расшифровке не требуются во всех подробностях, можно заполнить список значений или таблицу значений и вывести диалог выбора строки средствами платформы
Выполнять расчеты в открываемой форме, если за период с момента начала работы с планировщиком данные изменились, тоже тяжелая операция, в которой нет смысла.
Выполнять расчеты в открываемой форме, если за период с момента начала работы с планировщиком данные изменились, тоже тяжелая операция, в которой нет смысла.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот