Снегопат
https://snegopat.ru/forum/

Кодогенераторы
https://snegopat.ru/forum/viewtopic.php?f=3&t=89
Страница 1 из 7

Автор:  orefkov [ 09 дек 2011, 14:14 ]
Заголовок сообщения:  Кодогенераторы

Скриптом code_gen/gen_mgr.js начал делать инфраструктуру для различных генераторов кода.
Как пример - code_gen/create_doc.js - генерация болванки создания документа.

Накидывайте мыслей, что еще можно/хочется автоматизировать в плане генерации кода.
Такого, для чего возможностей шаблонов маловато.
Потому что основное отличие кодогенов от шаблонов - более интеллектуальное поведение.

Автор:  artbear [ 09 дек 2011, 16:33 ]
Заголовок сообщения:  Re: Кодогераторы

Название темы поменяй :)
Цитата:
Кодогераторы

Автор:  MaxS [ 09 дек 2011, 19:53 ]
Заголовок сообщения:  Re: Кодогенераторы

Вроде бы писал сюда. Не отправилось, что ли? ))
Нужно бы учитывать конфигурацию. Если типовая, то генерация кода соответствующая. С правильным использованием методов общих модулей.

Автор:  orefkov [ 09 дек 2011, 20:22 ]
Заголовок сообщения:  Re: Кодогенераторы

MaxS писал(а):
Вроде бы писал сюда. Не отправилось, что ли? ))
Нужно бы учитывать конфигурацию. Если типовая, то генерация кода соответствующая. С правильным использованием методов общих модулей.

А вот тут уже нужна некая экспертная база знаний, так сказать "путеводители" по разным типовым, да еще и по разным версиям типовых. Буду думать над этим.

Автор:  artbear [ 10 дек 2011, 07:53 ]
Заголовок сообщения:  Re: Кодогенераторы

MaxS писал(а):
Нужно бы учитывать конфигурацию. Если типовая, то генерация кода соответствующая. С правильным использованием методов общих модулей.

Пример приведи, пожалуйста.
Это заполнение данных по умолчанию чтоли?

Автор:  MaxS [ 11 дек 2011, 19:12 ]
Заголовок сообщения:  Re: Кодогенераторы

Скрипт ещё не успел глянуть. Он метаданные сможет создавать?
artbear писал(а):
Пример приведи, пожалуйста.
Это заполнение данных по умолчанию чтоли?


Толстый клиент, пример из формы документа РТУ , КА
Код:
   // Создать кнопки печати
   ФормированиеПечатныхФорм.СоздатьКнопкиПечати(ЭтотОбъект, ЭтаФорма);
КонецПроцедуры // ПриОткрытии()

Процедура ТоварыНоменклатураПриИзменении(Элемент)
   ПриИзмененииНоменклатурыТовары(Элемент);
КонецПроцедуры // ТоварыНоменклатураПриИзменении()


кстати, на толстый клиент наверное уже не стоит тратить усилия? ;)

Тот же документ, УФ. Там мелких типовых процедур, по моему ещё больше, чем в толстом.
Код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
      
      // Это существующий документ.
      // Проверим, что его можно менять.
      НастройкаПравДоступа.ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета(РеквизитФормыВЗначение("Объект"), ЭтаФорма);

   КонецЕсли;

Автор:  orefkov [ 11 дек 2011, 21:38 ]
Заголовок сообщения:  Re: Кодогенераторы

Не, скрипт не создает новый документ в метаданных.
Он генерит код для создания/заполнения реквизитов документа, т.е.
док = Документы.ТакойТо.СоздатьДокумент();
и т.д.
вот тут можно глянуть.

Автор:  JohnyDeath [ 14 дек 2011, 09:06 ]
Заголовок сообщения:  Re: Кодогенераторы

При запуске конфигуратора вываливается предупреждение и сообщение об ошибке:
Цитата:
Скрипт 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

Автор:  artbear [ 14 дек 2011, 10:50 ]
Заголовок сообщения:  Re: Кодогенераторы

Жень, в аддинс.ини нужно заносить только gen_mgr.js

Автор:  JohnyDeath [ 14 дек 2011, 11:01 ]
Заголовок сообщения:  Re: Кодогенераторы

Понял, спасибо.

Страница 1 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/