gifts2017

Генератор кода - дополнение к оригиналу

Опубликовал Олег Шалимов (CaSH_2004) в раздел Программирование - Практика программирования

Продолжение развития обработки Генератор кода

Очень понравилась обработка, особенно потому что было лень создавать самому :-)
Но раз теперь есть - то будем развивать и улучшать. Итак история такова:

http://infostart.ru/public/92575/ - Генератор кода - начальная обработка, я ее даже не сильно изучал

http://infostart.ru/public/92872/ - Генератор кода ПЛЮС, развитие идеи, понравилась удобством пролистывания

Ну а собственно добавил то без чего нормальный программист жить не может (а может и не должен :-) :

+ нормальное представление типов данных ссылочных, а для Строка, Число, Дата теперь показывает Квалификатор типа, например вместо:
// Физические лица
// Строка
// Число
// Дата
теперь так:
// Справочник.ФизическиеЛица (Физические лица)
тут в скобках Представление типа т.к. оно иногда сильно отличается от Имени
// Строка (100*) 
тут 0 - как всегда неограниченная динна, * - длина переменная, если "!" - то фиксированная, т.е. на нее стоит обратить внимание
// Дата (Дата и время)

Если честно, авторов поленился спрашивать разрешения за публикацию, заранее извиняюсь, т.к. их уже аж 2 штуки, а выложить руки зачесались (давно не выкладывал, да и обработка реально удобнее стала), но если будут нарекания готов убрать или еще чего нибудь.

Скачать файлы

Наименование Файл Версия Размер
Редактор кода (дополнение) 114
.epf 14,46Kb
06.03.12
114
.epf 14,46Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Андрей Григорьев (Borisych) 08.03.12 22:14
Прикольная тема!
У меня есть в шаблонах 1С кусок кода - ещё со старых времен - суть:
1. Создаешь макет, проставляешь имена всех запчастей - Заголовок, ШапкаТаблицы, СтрокаТаблицы, Подвал, все поля необходимые делаешь параметрами, шаблонами и т.д.
2. вставляешь этот кусочек кода в модуль объекта, запускаешь в 1С:Предприятие - в строке сообщений выводится код для создания, заполнения всех параметров и вывода табличного документа. Кому необходимо - поделюсь, оставляйте заявки

А ещё тоже есть обработка - генерит код для переопределения реквизитов и ТЧ выбранного типа документа - для быстрого создания ВПФ.

Есть в арсенале шаблоны сборников отчетов на СКД, шаблоны ВПФ и ОЗТЧ с авторегистрацией в справочнике "Внешние обработки"
2. Олег Шалимов (CaSH_2004) 12.03.12 20:52
(1)А поче му бы не выложить?
3. Dimon (klel) 13.03.12 22:07
Выложите шаблончики мы бы ими попользовались, сам попользовался и другим дай :) всем большое спасибо за обработку и шаблончики
4. Андрей Григорьев (Borisych) 14.03.12 09:11
В статье http://infostart.ru/public/66570/ продемонстрирован пример

Шаблон для заполнения табличного документа: (добавляется в *.st - вызывается в конфигураторе по Ctrl+Shift+T)
Макет = ПолучитьМакет("<?"Имя макета печати:">");
ТекстЗаполненияПараметровМакета = 
"
|ТабДок = Новый ТабличныйДокумент;
|ТабДок.АвтоМасштаб			= Истина;
|ТабДок.Защита				= Истина;
|ТабДок.ОтображатьСетку		= Ложь;
|ТабДок.ОриентацияСтраницы	= ОриентацияСтраницы.Портрет;
|ТабДок.ИмяПараметровПечати = ""ПАРАМЕТРЫ_ПЕЧАТИ_"" + ЭтотОбъект.Имя;
|
|ИмяМакета = ""<?"Имя макета печати:">"";
|Макет = ПолучитьМакет(ИмяМакета);
|";


Для каждого Обл Из Макет.Области Цикл
	ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета + Символы.ПС + 
										СтрЗаменить(  "// Область ""ОбластьМакета""
										|ОбластьОбластьМакета = Макет.ПолучитьОбласть(""ОбластьМакета"");
										|ОбластьОбластьМакета.Параметры.Заполнить(ДанныеЗаполнения);",
										"ОбластьМакета", 
										Обл.Имя) + Символы.ПС;
	ОблМ = Макет.ПолучитьОбласть(Обл.Имя);
	Для сч_строк = 1 По ОблМ.ВысотаТаблицы Цикл
		Для сч_столбцов = 1 По ОблМ.ШиринаТаблицы Цикл
			Яч = ОблМ.Область("R"+ Формат(сч_строк,"ЧГ=0") + "C" + Формат(сч_столбцов,"ЧГ=0"));
			Если Яч.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр Тогда
				ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета + 
				"Область" + Обл.Имя + ".Параметры." + Яч.Параметр + " = ДанныеЗаполнения." + Яч.Параметр + ";" + Символы.ПС;
			КонецЕсли;
			Если Яч.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
				МассивСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Яч.Текст, "[");
				Для каждого ЭлМассива Из МассивСтрок Цикл
					Если Найти(ЭлМассива,"]") > 0 Тогда
						ИмяП = СокрЛП(СтрЗаменить(ЭлМассива,"]",""));
						ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета + 
						"Область" + Обл.Имя + ".Параметры." + ИмяП + " = ДанныеЗаполнения." + ИмяП + ";" + Символы.ПС;
					КонецЕсли;
				КонецЦикла;
				
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
	ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета  + 
										СтрЗаменить("ТабДок.Вывести(ОбластьОбластьМакета);", "ОбластьМакета", Обл.Имя) + Символы.ПС;
КонецЦикла;
Сообщить("", СтатусСообщения.БезСтатуса);
Сообщить(ТекстЗаполненияПараметровМакета, СтатусСообщения.БезСтатуса);
...Показать Скрыть


Публикацию делать не стану:

Ниже файлы
Шаблон ВПФ (и для ОЗТЧ подойдет - необходимо вносить правки в основную форму)
ШаблонВПФ_ПереопределениеРеквизитов - для замены в модуле ВПФ обращений к реквизитам объекта
УниверсальныйОтчетСКД - просто в макеты добавляете любое количество схем компоновки данных и на форме выбираете нужный вариант отчета - он сразу формируется, кнопками Alt+1,2,3,...,8,9,0 осуществляется свертка уровней до выбранного
Прикрепленные файлы:
ШаблонВПФ.epf
ШаблонВПФ_ПереопределениеРеквизитов.epf
УниверсальныйОтчетСКД.erf
5. г. Казань Рустем Гумеров (Rustig) 16.03.12 15:12
(0) в развитие проекта посмотрите что я реализовал: сначала надо раскрыть дерево метаданных например для узла регистра бухгалтерии, раскрыть измерения, ресурсы, реквизиты, затем выделить строки с измерениями, реквизитами, ресурсами, затем мышкой перетащить в текстовое окно, в результате должно быть как на картинке.
Прикрепленные файлы:
генератор кода продолжение.epf
6. Олег Шалимов (CaSH_2004) 16.03.12 22:34
(5)Спасибо - ознакомлюсь, а вы свою обработку как выкладывали? Я не нашел ее у вас, как ее можно использовать в дальнейшем?
7. г. Казань Рустем Гумеров (Rustig) 17.03.12 13:10
(6) используйте на благо, без ограничений
8. Олег Молочников (milkers) 01.08.12 11:27
Судя по скриншотам вы взяли за основу старую версию. В новой есть доработка которая для не мутабельных значений заполняет пустой ссылкой,вместо "неопределено". Рекомендую подпилить.
9. Олег Молочников (milkers) 01.08.12 11:59
Минусы предложенных разработок - большое времяпри отрытии, связанное с обработкой дерева метаданных. На конфигурации УПП это больше восьми минут, в зависимости от компьютера. Это не очень похоже на первоначальную идею ускорить написание кода.
10. Олег Шалимов (CaSH_2004) 01.08.12 22:08
(9) Уточните каких обработок? И какие есть предложения по оптимизации?
11. Алекс Ю (AlexO) 17.10.13 01:22
(5) Rustig,
в развитие проекта посмотрите что я реализовал

Порадовал просмотр перечислений и подписок на событие.
Однако, ваша доработка перестала формировать обработку ТЧ документов (в цикле, полный законченный код), как это было у YAN в его "Генератор кода ПЛЮС".
Выделять же мышкой реквизиты и все отальное, как вы предложили - тоже не совсем удобно. Вы просто хотели заменить кликанье по галочкам? :)
12. Алекс Ю (AlexO) 17.10.13 01:32
И, кстати, нигде нет до сих пор кнопки "очистить" :)
13. Алекс Ю (AlexO) 17.10.13 01:33
(5) Rustig,
У вас пустые поля не обрабатываются - ТипДанных и Вид :)
14. г. Казань Рустем Гумеров (Rustig) 17.10.13 11:11
(13) Спасибо за комментарий.
Я не занимаюсь теперь этой разработкой. И, к сожалению, ее даже не использую. Программирую по старинке, без всяких "помощников".
Пусть Ваш комментарий будет на благо другим разработчикам, которые продолжат развивать "тему".
15. Алекс Ю (AlexO) 17.10.13 14:31
(14) Rustig,
Согласен, функционал минимален, а времени требует - уйму для разработки.
Но отнюдь не умаляя труда разработчиков сих обработок.
16. q_i 09.06.16 18:40
(5) Rustig,
немного допилил Вашу версию обработки:
- добавлена генерация кода для регистров сведений/накопления/бухгалтерии;
- при генерации кода для справочников и документов учтены стандартные реквизиты (наименование/код/дата/номер);
- изменен формат представления типов реквизитов;
- мелкая косметика.
Прикрепленные файлы:
генератор кода продолжение.epf.7z
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа