(7) Честно говоря, ранее не смотрел данную обработку. Сейчас бегло изучил, и сложилось первоначальное сугубо личное мнение. Первое что попадает в глаза, это частичная обфускация кода, что соответственно мешает дальнейшим доработкам под свои интересы. Второе это не очень удобная читабельность итогового кода.
Относительно предварительной генерации xml схемы, да в данной обработке нет возможности выбора отчета, а требуется подгружать xml схему, но так же в ней имеется возможность в пользовательском режиме в толстом клиенте создать свою схему и произвести генерацию кода по ней.
Поле объекта не обнаружено (СвязиНаборовДанных)
{ВнешняяОбработка.ГенераторКодаСКД.Форма.Форма.Форма(824)}: СтруктураКода.СвязиНаборовДанных.Добавить(КодРазбора.ПолучитьТекст());
{ВнешняяОбработка.ГенераторКодаСКД.Форма.Форма.Форма(113)}: СгенерироватьКодНаСервере();
Видимо, иногда, в "СтруктураКода.СвязиНаборовДанных" СвязиНаборовДанных - структура.
Схема, вызывающая ошибку в файле.
(18) Не затрагиваются макеты и вложенные схемы. Как вариант можете выслать xml схему отчета, созданную в демо базе БСП, в ответ вышлю код сформированный обработкой.
(20) Спасибо что нашли данный нюанс. На данный момент не производиться заполнение доступных значений параметра. Данная возможность добавлена в план разработки.
(20) Можно добавить требуемый функционал (не дожидаясь новой версии) добавив следующий код:
1. В цикл процедуры РазборПараметров (строка 1100) добавляем следующий код:
ДоступныеЗначенияПараметра = СтрокаПараметра.ПолучитьДоступныеЗначения();
Если Не ДоступныеЗначенияПараметра = Неопределено Тогда
КодРазбора.ДобавитьСтроку("");
КодРазбора.ДобавитьСтроку("//Доступные значения для параметра - "+СтрокаПараметра.Имя);
КодРазбора.ДобавитьСтроку("ДоступныеЗначенияПараметра = Новый СписокЗначений;");
Для каждого ЗначениеПараметра Из ДоступныеЗначенияПараметра Цикл
КодРазбора.ДобавитьСтроку("ДоступныеЗначенияПараметра.Добавить("+ПолучитьЗначениеДляКонфигуратора(ЗначениеПараметра.Значение)+","+СформироватьТекстДляКонфигуратора(ЗначениеПараметра.Представление)+");");
КонецЦикла;
КодРазбора.ДобавитьСтроку("ПараметрСхемы.УстановитьДоступныеЗначения(ДоступныеЗначенияПараметра);");
КонецЕсли;
СтруктураМассива.Вставить("Параметры_ДоступныеЗначения",КодРазбора.ПолучитьТекст());
КодРазбора.Очистить();
Показать
2. В процедуру ЗаполнитьСтруктуруСКД (строка 416) добавляем следующий код:
Здравствуйте. Приобрела Вашу обработку. Загрузила схему. При попытке сгенерировать код выдает ошибку:
{ВнешняяОбработка.ГенераторКодаСКД.Форма.Форма.Форма(921)}: Поле объекта не обнаружено (ИспользоватьГруппировкиЗапросаЕслиВозможно)
КодРазбора.ДобавитьСтроку("НаборДанныхЗапросСхемыКомпоновкиДанных.ИспользоватьГруппировкиЗапросаЕслиВозможно = "+Формат(СтрокаНабора.ИспользоватьГруппировкиЗапросаЕслиВозможно, "БЛ=Ложь; БИ=Истина")+";");
(25) Добрый день. Один из вариантов возникновения данной ошибки, это использование платформы до релиза 8.3.14, если это так, то закомментируйте пожалуйста строку 921.
(30) Там с отборами небольшая трабла. Все группы элементов отбора нызываются "ГруппаЭлементовОтбора" или что-то подобное. Даже если группа находится в другой группе, обе они называются одинаково. Их надобно переименовывать: типа "ГруппаЭлементовОтбора1" и "ГруппаЭлементовОтбора2".