|
v7: Получить объект по идентификатору | ☑ | ||
---|---|---|---|---|
0
ЯнСмит
18.11.23
✎
11:43
|
Хочу сделать некую универсальную штуку, перебираю все имеющиеся последовательности в конфигурации:
Для п=1 По Метаданные.Последовательность() Цикл СпП.ДобавитьЗначение(Метаданные.Последовательность(п).ПолныйИдентификатор(),Метаданные.Последовательность(п).Идентификатор); КонецЦикла; .... далее хочу установить выбранную последовательность на конкретный документ, типа вот так: ТекПос=СпП.ПолучитьЗначение(п); ТП.Установить(Док.ТекущийДокумент()); ругается, пробовал также через ПолучиьЗначениепИзСтроки() то же самое, помнится в молодости как-то обходил такую проблему через Шаблон(), но здесь что-то не получается =( |
|||
1
AAA
18.11.23
✎
12:20
|
а почему из списка извлекается в ТекПос, а устанавливается ТП ?
|
|||
2
MWWRuza
гуру
18.11.23
✎
12:27
|
Ага... Весь код покажите, что-то тут не вяжется...
|
|||
3
ЯнСмит
18.11.23
✎
12:54
|
Не ... это просто очепятка, вместо ТекПос считайте, что ТП, просто не отредактировать исходное сообщение )
|
|||
4
Злопчинский
18.11.23
✎
13:35
|
док может тупо не входит в данную последовательность
|
|||
5
Злопчинский
18.11.23
✎
13:35
|
и что ругается, как ругается? матом? или культурно "я возмущен!"?
|
|||
6
ЯнСмит
18.11.23
✎
13:39
|
(5) док естественно выбран, ругается культурно, если немного подумать то как именно ясно из заголовка топика ... "Значение не представляет агрегатный объект (Установить)"
|
|||
7
AAA
18.11.23
✎
13:48
|
(6)ругается именно так как будто не опечатка.
Выведете ТипЗначенияСтр(ТП) |
|||
8
ЯнСмит
18.11.23
✎
14:10
|
(7) Строка
|
|||
9
Злопчинский
18.11.23
✎
14:15
|
Метаданные.Последовательность(п).ПолныйИдентификатор() - вряд ли это "последовательность", это скорее "строка"
|
|||
10
ЯнСмит
18.11.23
✎
14:15
|
(9) это то понятно, вопрос в том как ПолныйИдентификатор преобразовать в Последовательность
|
|||
11
AAA
18.11.23
✎
14:15
|
Так у Строки откуда метод Установить?)) Покажите весь код, в чем проблема
|
|||
12
AAA
18.11.23
✎
14:16
|
(10)Зачем ?))
|
|||
13
ЯнСмит
18.11.23
✎
14:18
|
(11)
Перем КолП; //\\//\\ Процедура Сформировать() Если Док.Выбран()=1 Тогда Для п=1 По КолП Цикл ТП=СпП.ПолучитьЗначение(п); Сообщить(ТипЗначенияСтр(ТП)); ТП.Установить(Док.ТекущийДокумент()); КонецЦикла; КонецЕсли; КонецПроцедуры //\\//\\ Процедура ПриОткрытии() КолП=Метаданные.Последовательность(); Если КолП>0 Тогда Для п=1 По КолП Цикл СпП.ДобавитьЗначение(Метаданные.Последовательность(п).ПолныйИдентификатор(),Метаданные.Последовательность(п).Идентификатор); КонецЦикла; Иначе Сообщить("В данной базе последовательностей не задано",5); КонецЕсли; КонецПроцедуры |
|||
14
ЯнСмит
18.11.23
✎
14:19
|
+
CgG и Док - реквизиты формы ежели чего |
|||
15
ЯнСмит
18.11.23
✎
14:21
|
был еще вариант
ТП=ЗначениеИзСтроки(СпП.ПолучитьЗначение(п)); ТП.Установить(Док.ТекущийДокумент()); ошибка та же как выше писал |
|||
16
ЯнСмит
18.11.23
✎
14:23
|
(12) а как еще добавить непосредственно последовательность в список?
|
|||
17
AAA
18.11.23
✎
14:29
|
У Вас в списке не последовательности, а строки.
|
|||
18
AAA
18.11.23
✎
14:33
|
Не сталкивался с такой задачей, но посмотрите вот это
ПолучитьАтрибут(<?>); Синтаксис: ПолучитьАтрибут(<ИмяПоследовательности >) Назначение: Получить значение последовательности по имени. Возвращает значение последовательности. Параметры: <ИмяПоследовательности> - строковое выражение, содержащее имя последовательности, как оно задано в конфигураторе. |
|||
19
AAA
18.11.23
✎
14:34
|
А Вам прямо надо универсально ? Затолкайте в список конкретные последовательности, тем более не каждый документ принадлежит каждой последовательности
|
|||
20
ЯнСмит
18.11.23
✎
14:36
|
насколько я в курсе в языке метода для получения непосредственно последовательности нет, по этому и спрашиваю - как по идентификатору получить последовательность
|
|||
21
AAA
18.11.23
✎
14:46
|
(20)зачем через метаданные? запихайте конкретные Вы пишите что то универсвльное?
|
|||
22
AAA
18.11.23
✎
14:47
|
и я Вам привел метод, посмотрите на него. Не пробовал, но скорее всего определяете последлвательность и затем получаете конкретную по идентификатору
|
|||
23
AAA
18.11.23
✎
14:50
|
Зачем это все вообще, что хотите сделать ?
|
|||
24
ЯнСмит
18.11.23
✎
14:52
|
(21) в первом же сообщении "Хочу сделать некую универсальную штуку" ))
|
|||
25
AAA
18.11.23
✎
14:53
|
(24)для чего ?
|
|||
26
ЯнСмит
18.11.23
✎
15:31
|
(18) ПолучитьАтрибут() я так понимаю это уже Формекс, у последовательности такого метода нет
(25) долго и муторно объяснять, да и какая разниц ) |
|||
27
Злопчинский
18.11.23
✎
15:38
|
(26) ты не поверишь... ПолучитьАтрибут - штатный метод 77
|
|||
28
AAA
18.11.23
✎
15:39
|
(26)дело хозяйское. Вам же надо. я как то жил без такой универсальной разработки и еще поживу ))
|
|||
29
Злопчинский
18.11.23
✎
15:45
|
Шаблон("[Последовательность."+ИмяПоследовательности+".Установить("+ПозицияДокументИТД+")]");
|
|||
30
AAA
18.11.23
✎
15:50
|
(29)Шаблон возвращает строку ) Надо курить Сервис из Формекс
|
|||
31
ЯнСмит
18.11.23
✎
15:54
|
(27) точно, ступил =(
(29) пробовал, не взлетело |
|||
32
ЯнСмит
18.11.23
✎
16:01
|
(18) посмотрел, только не очень ясно как это вызывать
и что означает загадочная фраза из СП "Метод глобального атрибута "Последовательность"" |
|||
33
AAA
18.11.23
✎
18:50
|
Что-то похоже никак это не сделать. Либо вспоминайте как делали)
|
|||
34
Олдж
18.11.23
✎
19:37
|
(32) Ну все же просто и очевидно
Для п=1 По Метаданные.Последовательность() Цикл СпП.ДобавитьЗначение(Метаданные.Последовательность(п).Идентификатор,Метаданные.Последовательность(п).ПолныйИдентификатор()); КонецЦикла; ТекПос=СпП.ПолучитьЗначение(п); ТП = Последовательность.ПолучитьАтрибут(текПос); ТП.Установить(выбДок.ТекущийДокумент()); |
|||
35
ЯнСмит
18.11.23
✎
20:06
|
(34) большое спасибо, все получилось, только нужно использовать в списке не ПолныйИдентификатор, а просто Идентификатор
p.s. вот не знал что есть глобальный атрибут "Последовательность" |
|||
36
AAA
18.11.23
✎
20:09
|
(34)Браво! Были рядом не поняли как применить ))
|
|||
37
Злопчинский
18.11.23
✎
22:24
|
(30) засунуть в шаблон фукцию
|
|||
38
Олдж
19.11.23
✎
09:43
|
(35) Да, просто идентификатор. Специально для этого при добавлении в список поменял местами :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |