База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как добавить вторую кнопку для формирования отчета по другой СКД в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
10 сентября 2026 в 14:03 #38638
Как в своем внешнем отчете я создал форму и 2 кнопку на второе схему компановки данных
-
10 сентября 2026 в 14:03 #38639
Если в своём внешнем отчёте создали форму и хотите добавить вторую кнопку для запуска формирования отчёта по второй схеме компоновки данных (СКД), то делайте так:
1. В модуле формы добавьте обработчик для новой кнопки, например, Процедуру ОбработкаКнопки2:
1С (Код)1234&НаКлиентеПроцедура Кнопка2Нажатие(Команда)СформироватьПоВторойСКД();КонецПроцедуры2. Создайте процедуру формирования отчёта по второй СКД, например:
1С (Код)12345678910111213141516171819202122232425262728293031&НаСервереПроцедура СформироватьПоВторойСКД()// Получаем объект отчётаОтчетОбъект = ДанныеФормыВЗначение("Отчет");// Загружаем настройки для второй схемы компоновки данныхНастройки = ОтчетОбъект.КомпоновщикНастроек.ПолучитьНастройки();// Здесь укажите имя второй схемы компоновки данныхВтораяСхема = ОтчетОбъект.СхемыКомпоновкиДанных.Найти("ИмяВторойСхемы");Если ВтораяСхема = Неопределено ТогдаВызватьИсключение "Вторая схема компоновки данных не найдена";КонецЕсли;// Устанавливаем вторую схему компоновки данныхОтчетОбъект.СхемаКомпоновкиДанных = ВтораяСхема;// Формируем результатДокументРезультат = Новый ТабличныйДокумент;ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;ОтчетОбъект.СкомпоноватьРезультат(ДокументРезультат, ДанныеРасшифровки);// Выводим результат на формуЭлементыФормы.Результат.Очистить();ЭлементыФормы.Результат.Вывести(ДокументРезультат);// Если нужна расшифровкаЭтаФорма.ДанныеРасшифровки = ДанныеРасшифровки;КонецПроцедуры3. В обработчике кнопки вызывайте эту процедуру.
4. В модуле формы при инициализации (например, ПриСозданииНаКлиенте) можно загрузить обе схемы компоновки данных в объект отчёта, если они не загружаются автоматически.
5. В конфигураторе в объекте внешнего отчёта в разделе «Схемы компоновки данных» добавьте обе схемы, чтобы они были доступны.
6. Не забудьте, что в форме должен быть элемент для вывода результата (например, ТабличныйДокумент с именем «Результат»).
Если хотите, чтобы кнопки переключали между схемами, то можно сделать общий метод, который принимает имя схемы и формирует по ней.
Пример универсальной процедуры:
1С (Код)12345678910111213141516171819&НаСервереПроцедура СформироватьПоСхеме(ИмяСхемы)ОтчетОбъект = ДанныеФормыВЗначение("Отчет");Схема = ОтчетОбъект.СхемыКомпоновкиДанных.Найти(ИмяСхемы);Если Схема = Неопределено ТогдаВызватьИсключение "Схема компоновки данных не найдена: " + ИмяСхемы;КонецЕсли;ОтчетОбъект.СхемаКомпоновкиДанных = Схема;ДокументРезультат = Новый ТабличныйДокумент;ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;ОтчетОбъект.СкомпоноватьРезультат(ДокументРезультат, ДанныеРасшифровки);ЭлементыФормы.Результат.Очистить();ЭлементыФормы.Результат.Вывести(ДокументРезультат);ЭтаФорма.ДанныеРасшифровки = ДанныеРасшифровки;КонецПроцедурыИ в обработчике кнопки:
1С (Код)1234&НаКлиентеПроцедура Кнопка2Нажатие(Команда)ВыполнитьНаСервере("СформироватьПоСхеме", "ВтораяСхема");КонецПроцедурыГде «ВтораяСхема» — имя вашей второй схемы компоновки данных.
Так вы сможете управлять формированием отчёта по разным схемам с разных кнопок.
Если нужна помощь с конкретным кодом — приложите ваш модуль формы и описание схем.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.