Страница 1 из 7
Кодогенераторы
Добавлено: 09 дек 2011, 14:14
orefkov
Скриптом code_gen/gen_mgr.js начал делать инфраструктуру для различных генераторов кода.
Как пример - code_gen/create_doc.js - генерация болванки создания документа.
Накидывайте мыслей, что еще можно/хочется автоматизировать в плане генерации кода.
Такого, для чего возможностей шаблонов маловато.
Потому что основное отличие кодогенов от шаблонов - более интеллектуальное поведение.
Re: Кодогераторы
Добавлено: 09 дек 2011, 16:33
artbear
Название темы поменяй

Кодогераторы
Re: Кодогенераторы
Добавлено: 09 дек 2011, 19:53
MaxS
Вроде бы писал сюда. Не отправилось, что ли? ))
Нужно бы учитывать конфигурацию. Если типовая, то генерация кода соответствующая. С правильным использованием методов общих модулей.
Re: Кодогенераторы
Добавлено: 09 дек 2011, 20:22
orefkov
MaxS писал(а):Вроде бы писал сюда. Не отправилось, что ли? ))
Нужно бы учитывать конфигурацию. Если типовая, то генерация кода соответствующая. С правильным использованием методов общих модулей.
А вот тут уже нужна некая экспертная база знаний, так сказать "путеводители" по разным типовым, да еще и по разным версиям типовых. Буду думать над этим.
Re: Кодогенераторы
Добавлено: 10 дек 2011, 07:53
artbear
MaxS писал(а):Нужно бы учитывать конфигурацию. Если типовая, то генерация кода соответствующая. С правильным использованием методов общих модулей.
Пример приведи, пожалуйста.
Это заполнение данных по умолчанию чтоли?
Re: Кодогенераторы
Добавлено: 11 дек 2011, 19:12
MaxS
Скрипт ещё не успел глянуть. Он метаданные сможет создавать?
artbear писал(а):Пример приведи, пожалуйста.
Это заполнение данных по умолчанию чтоли?
Толстый клиент, пример из формы документа РТУ , КА
Код: Выделить всё
// Создать кнопки печати
ФормированиеПечатныхФорм.СоздатьКнопкиПечати(ЭтотОбъект, ЭтаФорма);
КонецПроцедуры // ПриОткрытии()
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ПриИзмененииНоменклатурыТовары(Элемент);
КонецПроцедуры // ТоварыНоменклатураПриИзменении()
кстати, на толстый клиент наверное уже не стоит тратить усилия?

Тот же документ, УФ. Там мелких типовых процедур, по моему ещё больше, чем в толстом.
Код: Выделить всё
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
// Это существующий документ.
// Проверим, что его можно менять.
НастройкаПравДоступа.ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета(РеквизитФормыВЗначение("Объект"), ЭтаФорма);
КонецЕсли;
Re: Кодогенераторы
Добавлено: 11 дек 2011, 21:38
orefkov
Не, скрипт не создает новый документ в метаданных.
Он генерит код для создания/заполнения реквизитов документа, т.е.
док = Документы.ТакойТо.СоздатьДокумент();
и т.д.
вот
тут можно глянуть.
Re: Кодогенераторы
Добавлено: 14 дек 2011, 09:06
JohnyDeath
При запуске конфигуратора вываливается предупреждение и сообщение об ошибке:
Скрипт D:\Programs\snegopat-alpha\scripts\code_gen\create_doc.js
В директиве $addin не указано имя аддина
содержимое addins.ini :
Код: Выделить всё
// Список загружаемых аддинов
script:scripts\code_gen\gen_mgr.js
Группа Проверка
script:scripts\autosave.js
script:scripts\vtcreator.js
script:scripts\choiseParamType.js
script:scripts\stg_autoconnect.js
script:scripts\configCaption.js
script:scripts\code_gen\create_doc.js
КонецГруппы
Группа Форматирование
script:scripts\format.js
script:scripts\textEditorExt.js
script:scripts\VimComplete.js
script:scripts\snippets.js
КонецГруппы
dll:SciColorerV8\SciColorerV8.dll
script:scripts\sc_clear.js
script:scripts\extfiles.js
script:scripts\queryParamsExtractor.js
script:scripts\extSearch.js
Re: Кодогенераторы
Добавлено: 14 дек 2011, 10:50
artbear
Жень, в аддинс.ини нужно заносить только gen_mgr.js
Re: Кодогенераторы
Добавлено: 14 дек 2011, 11:01
JohnyDeath
Понял, спасибо.