|
Вывести все реквизиты выбранного документа | ☑ | ||
---|---|---|---|---|
0
brenli
21.06.17
✎
12:17
|
Доброго времени 1с 8.3 , как можно получить коллекцию реквизитов документа чтобы обойти их все?
|
|||
1
Адский плющ
21.06.17
✎
12:17
|
Метаданные.Документы.ТвойДокумент.Реквизиты
|
|||
2
brenli
22.06.17
✎
08:11
|
&НаСервере
Процедура ДокументПриИзмененииНаСервере(Док) ДокРеквизиты = Новый Массив; Если НЕ Док.Пустая() Тогда Для Каждого Рекв Из Док.Метаданные().Реквизиты Цикл Сообщить(Рекв); КонецЦикла; КонецЕсли; КонецПроцедуры Как получить значение реквизита? Параметр Док - значение любого типа документа |
|||
3
Гипервизор
22.06.17
✎
08:20
|
Док[Рекв.Имя]
|
|||
4
Рэйв
22.06.17
✎
08:23
|
щас еще про таб части вспомнит:-)
|
|||
5
brenli
22.06.17
✎
08:27
|
(4) нее ТЧ не надо
|
|||
6
brenli
22.06.17
✎
08:29
|
(3) спасибо
|
|||
7
brenli
22.06.17
✎
14:45
|
Ребята еще подскажите пжл
Процедура СоздатьРеквизитНаФорме(нРеквизиты, ЗначРек) ИзменитьРеквизиты(нРеквизиты); Сч = 0; Для Каждого Реквизит Из нРеквизиты Цикл Сч = Сч + 1; Элемент = ЭтаФорма.Элементы.Добавить("Поле", Тип("ПолеФормы"), ЭтаФорма); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПутьКДанным = ЗначРек[Сч]; КонецЦикла; КонецПроцедуры Что не так? Реквизиты я создал, но поля элементы на форме не создаются или создается 1 и вылетает ошибка. Что не так? |
|||
8
Адский плющ
22.06.17
✎
14:51
|
Элемент = ЭтаФорма.Элементы.Добавить("Поле" + Сч, Тип("ПолеФормы"), ЭтаФорма);
|
|||
9
brenli
23.06.17
✎
09:37
|
Камрады еще прошу вашего совета..
&НаСервере Процедура СоздатьРеквизитНаФорме(МассРекв, ЗначРек, УдРекв) ИзменитьРеквизиты(МассРекв); Сч = 0; Для Каждого Реквизит Из МассРекв Цикл Элемент = ЭтаФорма.Элементы.Добавить("Поле" + Сч, Тип("ПолеФормы"), ЭтаФорма); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПутьКДанным = Реквизит.Имя; ЭтаФорма[Реквизит.Имя] = ЗначРек[Сч]; Сч = Сч + 1; КонецЦикла; КонецПроцедуры &НаСервере Процедура ЗаписатьНаСервере() КонецПроцедуры &НаКлиенте Процедура Записать(Команда) ЗаписатьНаСервере(); КонецПроцедуры &НаСервере Процедура ДокументПриИзмененииНаСервере(Док) ДокРеквизиты = Новый Массив; ДокРеквИмя = Новый Массив; ДокЗначРекв = Новый Массив; Если НЕ Док.Пустая() Тогда Для Каждого Рекв Из Док.Метаданные().Реквизиты Цикл ДокЗначРекв.Добавить(Док[Рекв.Имя]); ДокРеквИмя.Добавить(Рекв.Имя); Реквизит = Новый РеквизитФормы(Рекв.Имя, Рекв.Тип, ,Рекв, Истина); ДокРеквизиты.Добавить(Реквизит); КонецЦикла; СоздатьРеквизитНаФорме(ДокРеквизиты, ДокЗначРекв,ДокРеквИмя); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ДокументПриИзменении(Элемент) ДокументПриИзмененииНаСервере(Объект.Документ); КонецПроцедуры Как сделать удаление реквизитов чтобы при перевыборе документа не валились ошибки в неуникальных именах? Во второй параметра метода я уже передавал значения реквизитов которые надо удалять, но после этого валится ошибка. Не может найти пути. В описании написано: Что 2 параметр должен содержать массив строк реквизитов и только тех которые созданы программно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |