Функция генерирующая программный код создания переданной ей структуры #718563


#0 by SeiOkami
Такая вещь. Имеется обработка, которая в зависимости от установленных параметров, формирует структуру. В общем, кто-нить где-нить встречал функцию, которая бы сформировала текст программного кода, создающего переданную этой функции структуру. То есть передаёшь в функцию структуру: Структура - свойство1 - "значение первого свойства" а функция возвращает текст кода: СтруктураРезультат = Новый Структура; СтруктураРезультат.Вставить("свойство1", "значение первого свойства"); P.S. Пожалуйста, не надо закидывать вопросами типа "науа?". Просто надо =)
#1 by SeiOkami
Забыл поставить знак вопроса: "В общем, кто-нить где-нить встречал функцию, которая бы сформировала текст программного кода, создающего переданную этой функции структуру? "
#2 by ДенисЧ
Интересно, зачем кому-то понадобилось бы писать такую функцию, да ещё и выкладывать.... Там писанины на полчаса...
#3 by DirecTwiX
А в чём проблема написать то? Дело пяти минут
#4 by tdm
СтруктураРезультат = Новый Структура("свойство1,свойство2,свойство1",значени1,значение2) - не ?
#5 by SeiOkami
, , на пол часа? а что если структура будет содержать типы посложнее?
#6 by SeiOkami
, , это я привел простой пример лишь для того, чтобы объяснить принцип
#7 by hhhh
надо вам не заниматься фигней, а вплотную изучать пакеты XDTO, WS-ссылки и т.п.
#8 by fmrlex
Перебери в цикле свойства структуры и сгенерируй код.
#9 by DirecTwiX
Рекурсию сделаешь :D >а что если структура будет содержать типы посложнее? Тогда возникает вопрос "науа". Либо, на крайняк, "что за типы тебе нужны".
#10 by SeiOkami
, сейчас в голову приходит описание типов. С остальными вроде и так всё ясно
#11 by SeiOkami
, точнее разбить описание на типы и сформировать код, который их собирает вроде не сложно... Вот только не знаю как с квалификаторами быть.
#12 by tdm
>>Перебери в цикле свойства структуры передаем структуру чтобы на выходе получить структуру)) ТС чего то не договариает)
#13 by fmrlex
Код получить надо. Не структуру.
#14 by Зойч
написать - 2 мин. Единственно со ссылками придется повозиться
#15 by SeiOkami
Просто надеялся, что где-то такая фигня уже есть)
#16 by mistеr
А ссылки как кодировать? GUID-ами? К моменту исполнения того кода ссылки могут стать битыми.
#17 by SeiOkami
Эта функция "на пять минут" переросла в какой-то клубок кода, который никак не могу распутать =(
#18 by HeroShima
Мои соболезнования.
#19 by Зойч
#20 by Трик
Структура (Structure) По ключам и значениям Синтаксис: Новый Структура(<Ключ>, <Значения>) Параметры: Тип: Строка. Список свойств, указанных через запятую. Тип: Произвольный. Значения элементов структуры. Описание: Создает структуру с ключами, значения которых передаются в параметре конструктора. Если в первом параметре заданы ключи элементов структуры, то в следующих параметрах могут быть указаны значения этих элементов в том порядке, в котором они расположены в строке в первом параметре. Пример СтруктураТипа = Новый Структура("Синоним, МассивСсылок", СинонимДокумента, Новый Массив);
#21 by Трик
Так что предаешь в свою процедуру строку с именами поелй если надо. Этой первый параметр, а дальше значения. Выясняешь сколько полей (или сразу число у тебя переданное) И в два цикла строишь строку
#22 by Трик
или в один цикл если имена полей в строку уже переданны
#23 by SeiOkami
, уже говорил выше, что не проканает, если значением будет что-то сложнее строкичисладатыбулева ,,, это я вообще не понял к чему приведено
#24 by РенеДекарт
>которая бы сформировала текст программного кода - ты как будешь этот код выполнять?
#25 by SeiOkami
, этот код далее будет вставляться в обработку.
#26 by SeiOkami
, в общем, есть навороченая функция с кучей доп. параметров, которые передаются структурой. Все эти доп. параметры я сейчас могу в пользовательском режиме в спец. обработке устанавливать, после чего обработка вызвает мою функцию и передаёт ей структуру с указанными мною настройками. Подобрав подходящие в текущий момент параметры я хочу, чтобы обработка так же сформировала примерный код, который бы можно было потом просто вставить в место, где нужно вызывать мою функцию именно так, как я настроил в обработке
#27 by Зойч
#28 by Зойч
Также можно с предопределенными поиграться
#29 by SeiOkami
Много нюансов. Например, массив, список значений, описание типов... + учитывать, что в массиве может быть опять структура или опять массив и т.д. и т.п.
#30 by mistеr
Так зачем тебе обобщать сверх необходимого? Генерируй код для параметров именно твоей функции, а не любой структуры.
#31 by Рэйв
К полю структуры можно обратиться строково пои имени типа: Струк["Имя"] Я вообще не вижу в чем проблема ...
#32 by Рэйв
можно в имя и переменую загнать.
#33 by Злопчинский
особенно если струтктура может содержать где-unybnm взначении - структуру...
#34 by alle68
Неясно, зачем генерировать код, который получит структуру, на основании которой этот код и генерировался? Структура есть, ну и подставляем её в навороченную функцию.
#35 by SeiOkami
, это обработка-помощник разработчику. Чтобы тот смог в режиме предприятия наглядно и удобно настроить под себя вызов функции, а затем получить сгенерированный код её формирования.
#36 by alle68
Через "ЗначениеВФайл/ЗначениеИзФайла" не проще?
#37 by DrZombi
Забей, не надо это :)
#38 by Трик
Неправильно тебя понял.
#39 by SeiOkami
, весь смысл теряется
#40 by SeiOkami
, как говорится, "дурная голова рукам покоя не даёт" =)
#41 by HeroShima
А функция, генерящая структуру по описанию, разработчика не устроит?
#42 by HeroShima
Программист должен быть ленивым.
#43 by SeiOkami
, ой, не надо тут этих фраз. Давайте убёрем всю автоматизацию работы разработчика в 1С и все вернёмся к ручным рисованиям таблиц и связей, как в старом Фокс про. А можно дальше пойти и вообще на асемблере кодить.
#44 by Зойч
Это что за функция такая, что ее нужно НАГЛЯДНО настраивать?
#45 by HeroShima
"Автоматизируя бардак получите автоматизированный бардак"
#46 by hhhh
еще раз. Всё это уже реализовано через XDTO-пакеты. Вы изобретаете велосипед с квадратными колесами.
#47 by Зойч
передавать вместо структур - хдто пакеты. Это каким же нужно быть изваращенцем?
#48 by SeiOkami
, где? я такое впервые слышу, чтобы XDTO генерировала 1Совский код
#49 by hhhh
ну там 5-10 сек написание программы. Например если свой пакет из 4-х строчек. А автор нам уже неделю чего-то втирает
#50 by SeiOkami
, чую, что ты какую-то фигню несёшь. А втирал я только один день 29го. Больше времени просто не было сесть за это. И даже без учета этого выходит лишь пол недели, так что у тебя ещё и с математикой фиговато =)
#51 by HeroShima
Задача примитивная, вне зависимости от сложности структуры.
#52 by SeiOkami
, прошу тогда описать, если будет время. Просто я пока не могу сообразить как её сделать без ужасного гвно-кода =(
#53 by Зойч
тебе больше делать нечего чтоли?
#54 by HeroShima
>Просто я пока не могу сообразить как её сделать без ужасного гвно-кода В 1С гвнокод допустимый. Для начала напиши вывод диаграммы связей структуры.
#55 by Garykom
Мда сразу вспомнился 9-й класс лицея, класс из Ямаха MSX2 и графический редактор на обычном бейсике который преобразовывал картинку в последовательность графических команд того же бейсика - всякие там line, circle и т.д. ЗЫ А нужно было это для конструктора вопросов к системе тестирования на тех же ямахах, причем они ж в сетку соединены были так что на учительском компе можно было задания раздавать и наблюдать ход опроса )) и подсказать кому надо - так сказать  незадокументированные функции были у проги...
#56 by Garykom
кстати не вижу проблем написать такую функцию, главное про рекурсию не забывать (если параметр структуры может также быть структурой) просто когда то на 7.7 еще был написан универсальный обмен данными между идентичными конфами, так там все реквизиты всех документов и справочников по метаданным разбирались и записывались в xml одной универсальной функцией, как и в обратную сторону из xml универсальная функция создавала новые элементы и документы по xml
#57 by Asmody
#58 by Garykom
ай молодца, но вот тема с... т.е. тема "Функция Структура2XML(_структура)" не раскрыта, ему ж не xml нужен а код на 1С, иначе придется придумывать как в код 1С вставлять куски xml'я )) да можно через строку но это изврат ко объемам текста
#59 by SeiOkami
Вот, накинул набросок. Пока описанные типы устраивают. Может и кому-нить такая хрень пригодится )
#60 by mistеr
Как насчет г-кода? Мистовский парсер на твоем коде сломался. Это верный признак. :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С