Как создать n-ое количество реквизитов ?

1. probkaotjizni 17.07.19 04:38 Сейчас в теме
Для КолРеквизты= 0 По N Цикл 	
		НовыеРеквизиты = Новый Массив;	
		РеквизитВопросов = Новый РеквизитФормы("СозданныйРеквизит"+КолРеквизты,Новый ОписаниеТипов("Строка"),,,Истина);
		НовыеРеквизиты.Добавить(РеквизитВопросов);
		ИзменитьРеквизиты(НовыеРеквизиты);
КонецЦикла;


Чтобы было СозданныйРеквизит0,СозданныйРеквизит1....
По теме из базы знаний
Найденные решения
2. user1219528 17.07.19 04:58 Сейчас в теме
ИзменитьРеквизиты(НовыеРеквизиты);
Надо за цилк вывести
probkaotjizni; +1 Ответить
6. user1219528 17.07.19 05:10 Сейчас в теме
Рабочий код
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ДобавляемыеРеквизиты = Новый Массив;
	Для Счетчик = 0 По 10 Цикл	
		МассивТипов = новый Массив;
		МассивТипов.Добавить(Тип("Строка"));
		ИмяРеквизита = "ПолеВводаСтроки"+Счетчик;
		СинонимРеквизита = "Поле ввода строки "+Счетчик;
		Реквизит = Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов(МассивТипов),, СинонимРеквизита, Истина);
		ДобавляемыеРеквизиты.Добавить(Реквизит);
	КонецЦикла;
	
	ИзменитьРеквизиты(ДобавляемыеРеквизиты);
	
	Для Счетчик = 0 По 10 ЦИкл
		ИмяРеквизита = "ПолеВводаСтроки" + Счетчик;
		ЭлементФормы = ЭтаФорма.Элементы.Добавить(ИмяРеквизита, Тип("ПолеФормы"), ЭтаФорма); 		
		ЭлементФормы.ПутьКДанным = ИмяРеквизита;
		ЭлементФормы.Вид         = ВидПоляФормы.ПолеВвода;	
	КонецЦикла;
	
КонецПроцедуры
Показать
probkaotjizni; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. Denis_CFO 48 05.03.24 14:41 Сейчас в теме
(1)
Чтобы было СозданныйРеквизит0,СозданныйРеквизит1....


По-любому на тысячной итерации сломается :)
2. user1219528 17.07.19 04:58 Сейчас в теме
ИзменитьРеквизиты(НовыеРеквизиты);
Надо за цилк вывести
probkaotjizni; +1 Ответить
5. probkaotjizni 17.07.19 05:08 Сейчас в теме
(2) Спасибо
Для КолРеквизты= 0 По N Цикл     
        НовыеРеквизиты = Новый Массив;    
        РеквизитВопросов = Новый РеквизитФормы("СозданныйРеквизит"+КолРеквизты,Новый ОписаниеТипов("Строка"),,,Истина);
        НовыеРеквизиты.Добавить(РеквизитВопросов);   
КонецЦикла;

 ИзменитьРеквизиты(НовыеРеквизиты);
3. user1219528 17.07.19 04:59 Сейчас в теме
А далее создать элементы формы.
ЭтаФорма.Элементы.Добавить("ПолеВводаСтроки", Тип("ПолеФормы"), ЭтаФорма);
probkaotjizni; +1 Ответить
4. probkaotjizni 17.07.19 05:05 Сейчас в теме
(3)
Для КолЭл = 0 По n Цикл 	
		Элемент = ЭтаФорма.Элементы.Добавить("СозданныйЭлемент"+КолЭл,Тип("ПолеФормы"),ЭтаФорма);
		Элемент.Вид = ВидПоляФормы.ПолеНадписи;
		Элемент.Заголовок ="абвгд" ;
		Элемент.ПутьКДанным = "СозданныйРеквизит"+Строка(КолЭл);	
КонецЦикла;
6. user1219528 17.07.19 05:10 Сейчас в теме
Рабочий код
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ДобавляемыеРеквизиты = Новый Массив;
	Для Счетчик = 0 По 10 Цикл	
		МассивТипов = новый Массив;
		МассивТипов.Добавить(Тип("Строка"));
		ИмяРеквизита = "ПолеВводаСтроки"+Счетчик;
		СинонимРеквизита = "Поле ввода строки "+Счетчик;
		Реквизит = Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов(МассивТипов),, СинонимРеквизита, Истина);
		ДобавляемыеРеквизиты.Добавить(Реквизит);
	КонецЦикла;
	
	ИзменитьРеквизиты(ДобавляемыеРеквизиты);
	
	Для Счетчик = 0 По 10 ЦИкл
		ИмяРеквизита = "ПолеВводаСтроки" + Счетчик;
		ЭлементФормы = ЭтаФорма.Элементы.Добавить(ИмяРеквизита, Тип("ПолеФормы"), ЭтаФорма); 		
		ЭлементФормы.ПутьКДанным = ИмяРеквизита;
		ЭлементФормы.Вид         = ВидПоляФормы.ПолеВвода;	
	КонецЦикла;
	
КонецПроцедуры
Показать
probkaotjizni; +1 Ответить
7. kozanostra-pajero 05.03.24 09:42 Сейчас в теме
Всем привет!
А можно программно написать внешнюю обработку, чтоб создать реквизиты в информационную базу?
8. laperuz 46 05.03.24 09:57 Сейчас в теме
9. starik-2005 3039 05.03.24 10:17 Сейчас в теме
(7)
чтоб создать реквизиты в информационную базу
А что за реквизиты? А что за база?
10. kozanostra-pajero 05.03.24 14:08 Сейчас в теме
(9)
чистая база. В эксель файле есть более 200 столбцов, хотелось написать форму на 1с, чтоб легче заполнять, плюс разные столбцы заносят разные отделы, для каждого таким образом открыть форму с разрешенными для записи разным сотрудникам вносить заполнение разных реквизитов.
Создавать кучу реквизитов вручную мне кажется моветон, ведь автоматизация на то и автоматизация.
11. starik-2005 3039 05.03.24 14:16 Сейчас в теме
(10) Ну так делаете регистр сведений с соответствующими полями, повествующими о имени поля, содержании, комментарии каком, ролям/правах. Ну и грузим туды данные из колоночек эксельчика. Ну и сохраняем это все не в реквизитах, а в том самом регистре. В итоге решаем массу проблем совместного доступа к файлам и разграничением прав.

https://infostart.ru/1c/articles/574802/
12. kozanostra-pajero 05.03.24 14:39 Сейчас в теме
В регистре программно создавать поля/измерения/ресурсы можно?
Проблема не в данных. Проблема, что названияСтолбцов/шапка/регистр назовите как угодно в зависимости от инструмента нужно создать более 200-от. Да я понимаю, что это же разово. А теперь загоним ситуацию в угол пусть будет элементов наименований реквизитов более 100 000, и тоже вручную будем? Класс! Одно дело если там шедевр создаете, самописную конфу аптеки/военторга, что угодно. А тут наименования шапки полей заданные с одного файла перегнать в другой.
14. laperuz 46 05.03.24 15:08 Сейчас в теме
(12)Делаете измерение "ИмяКолонки", ресурс "Значение" типа ХранилищеЗначений. И пишете весь мильон своих колонок в виде мильона записей регистра

Посмотрите как в том же MDMе это сделано, где надо хранить заранее неизвестную произвольную структуру справочников вместе со значениями
15. kozanostra-pajero 06.03.24 00:32 Сейчас в теме
(14)
Спасибо за направление!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот