|
Обращение к добавленному реквизиту | ☑ | ||
---|---|---|---|---|
0
The_ka6a4ok
16.12.20
✎
18:26
|
добрых дней. коротко опишу проблему: количество добавляемых страниц мне неизвестно, для решения я добавил "нумератор", но в реквизиты документа, костыль как по мне, но как иначе.
<code> &НаСервере Процедура НовыйПеревозчикНаСервере() НовыйПеревозчик = Элементы.Добавить("НовыйПеревозчик" + Объект.Нумератор, Тип("ГруппаФормы"), Элементы.Страницы); НовыйПеревозчик.Вид = ВидГруппыФормы.Страница; НовыйПеревозчик.Заголовок = "Информация про перевозчика" + Строка(Объект.Нумератор); ПеревозчикГруппы = Элементы.Добавить("ПеревозчикГруппы" + Объект.Нумератор, Тип("ГруппаФормы"), Элементы.Найти("НовыйПеревозчик" + Объект.Нумератор)); ДобавляемыеРеквизиты = новый Массив(); ТипРеквизита = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");//("Строка"); РеквизитФормы = Новый РеквизитФормы( "Перевозчик" + Объект.Нумератор, //Имя реквизита формы ТипРеквизита, //Тип "", //Путь (Пусто, "Объект", ИмяТЧ) // например "Объект.Товары" "Перевозчик");//Заголовок ДобавляемыеРеквизиты.Добавить(РеквизитФормы); ТипРеквизита = Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагентов"); РеквизитФормы = Новый РеквизитФормы( "Договор" + Объект.Нумератор, //Имя реквизита формы ТипРеквизита, //Тип "", //Путь (Пусто, "Объект", ИмяТЧ) // например "Объект.Товары" "Договор");//Заголовок ДобавляемыеРеквизиты.Добавить(РеквизитФормы); //Заставляем форму создать новые реквизиты ИзменитьРеквизиты(ДобавляемыеРеквизиты); ПолеВвода = Элементы.Добавить("Перевозчик" + Объект.Нумератор, Тип("ПолеФормы"), Элементы.Найти("НовыйПеревозчик" + Объект.Нумератор)); ПолеВвода.Вид = ВидПоляФормы.ПолеВвода; ПолеВвода.ПутьКДанным = "Перевозчик"+Объект.Нумератор; ПолеВвода.УстановитьДействие("ПриИзменении", "КомпанияПеревозчик1"); ПолеВвода = Элементы.Добавить("Договор" + Объект.Нумератор, Тип("ПолеФормы"), Элементы.Найти("НовыйПеревозчик" + Объект.Нумератор)); ПолеВвода.Вид = ВидПоляФормы.ПолеВвода; ПолеВвода.ПутьКДанным = "Договор"+Объект.Нумератор; //ПеревозчикГруппы.ГоризонтальноеПоложение(); НовыйЭлемент2 = Элементы.Добавить("НоваяНадпись" + Объект.Нумератор,Тип("ДекорацияФормы"),НовыйПеревозчик); НовыйЭлемент2.Заголовок = "НоваяНадпись"; КонецПроцедуры &НаКлиенте Процедура КомпанияПеревозчик1() Договор1 = ПолучитьДоговорПоУмолчанию(Объект.Ссылка, Объект.Перевозчик, Объект.Организация, Объект.ВидОперации, Истина); ЭтаФорма.Элементы.Найти("Договор" + Строка(Число(Объект.Нумератор) - 1)).Имя = Договор1; //При такой записи ошибка записи //ЭтаФорма.Договор0 = Договор1; //при такой записи нужный договор находит и вставляет ОбработатьИзменениеДоговора(); КонецПроцедуры &НаКлиенте Процедура НовыйПеревозчик(Команда) НовыйПеревозчикНаСервере(); Попытка Проверка = Элементы.Найти("НовыйПеревозчик" + Объект.Нумератор).Имя; Сообщить(Проверка); Исключение Сообщить("Дорр"); КонецПопытки; Объект.Нумератор = Объект.Нумератор + 1; КонецПроцедуры </code> первая процедура добавляет первую страницу, и неограниченное кол-во страниц далее, то есть таким образом создание реквизитов типа "Реквизит0", "Реквизит1" и тд возможно, ладно. проблема во второй процедуре, по задумке она должна редактировать поле "Договор0" при изменении другого поля(я знаю, что при нумераторе n, я не смогу добавить нужный договор, поэтому страницы будут создаваться поочередно, чтобы нумератор не забился), вопрос заключается в следующем: как это можно реализовать по-другому или как обратиться к реквизиту формы? |
|||
1
SadrArt
16.12.20
✎
19:01
|
(0) чо?
|
|||
2
acht
16.12.20
✎
19:02
|
(0) ЯННП, предположу что ты хочешь получить ЭтотОбъект[ИмяРеквизита]
|
|||
3
The_ka6a4ok
16.12.20
✎
19:06
|
(2) нет, мне нужно получить объект, но сделать это как-то с извращением, так как ссылку на него я буду лепить из двух значений: первое - "Договор", а второе - значение нумератора, и к этому объекту мне нужно обратиться, чтобы задать значение
|
|||
4
acht
16.12.20
✎
19:09
|
(3) Ты попробуй, тебе понравится.
ЗначениеРеквизита = ЭтотОбъект["Договор" + ЗначениеНумератора]; |
|||
5
The_ka6a4ok
16.12.20
✎
19:20
|
(4) блин, я не знал что так можно, теперь знаю, спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |