|
Нафига нужно свойство "Предопределенные"? | ☑ | ||
---|---|---|---|---|
0
forforumandspam
12.03.15
✎
08:15
|
Добрый всем день.
Хочу понять, есть ли такой предопределенный счет ПланыСчетов.Типовой["хзхзхз"]? ПланСчетовМенеджер не содержит нужных методов. Думал меня спасёт Метаданные.ПланыСчетов.Типовой.Предопределенные, но блин: ОбъектМетаданных: ПланСчетов (MetadataObject: ChartOfAccounts) Предопределенные (Predefined) Использование: Только чтение. Описание: Тип: Неопределено. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Данное свойство всегда имеет значение Неопределено, т.к. во встроенном языке не предусмотрена работа со значением данного свойства. Получить предопределенные элементы можно с помощью менеджера справочника по имени предопределенного элемента: ПредопределенныйЭлемент = Справочники.Имя_Справочника.Имя_Предопределенного. Я негодую, зачем создавать такое свойство и не давать его использовать? Не хотелось бы делать проверку через Попытка-Исключение-КонецПопытки. Можно заранее собрать список предопределенных и искать в этом списке, но это через Ж...пу. |
|||
1
mzelensky
12.03.15
✎
08:18
|
чет ты тупишь пипец просто
|
|||
2
forforumandspam
12.03.15
✎
08:19
|
(1) Покажи, как ты не тупишь.
|
|||
3
dmpl
12.03.15
✎
08:20
|
(0) В запросе свойство доступно.
|
|||
4
mzelensky
12.03.15
✎
08:21
|
(0) Платформа у тебя какая?
|
|||
5
patria0muerte
12.03.15
✎
08:22
|
ПланСчетовСсылка.<Имя плана счетов> (ChartOfAccountsRef.<Имя плана счетов>)
Предопределенный (Predefined) Использование: Только чтение. Описание: Тип: Булево. Если Истина, то над данным счетом нельзя производить некоторые операции. |
|||
6
patria0muerte
12.03.15
✎
08:22
|
Нафига над объектом метаданных глумиться?
|
|||
7
forforumandspam
12.03.15
✎
08:24
|
Дайте альтернативу вот такому коду:
Попытка ПланыСчетов.Типовой["хзхзхз"]; Сообщить("Такой счет существует"); Исключение Сообщить("Такого счета не существует"); КонецПопытки; |
|||
8
forforumandspam
12.03.15
✎
08:26
|
А ведь могли бы дать такую возможность:
Метаданные.ПланыСчетов.Типовой.Предопределенные.Найти("хзхзхз"); или Для каждого ТекСчет Из Метаданные.ПланыСчетов.Типовой.Предопределенные Цикл КонецЦикла; |
|||
9
Asmody
12.03.15
✎
08:27
|
(8) а вы все еще перебираете счета в цикле?
|
|||
10
forforumandspam
12.03.15
✎
08:28
|
(9) Второй пример, просто показывает. что ещё можно было бы делать со свойством "Предопределенные".
|
|||
11
dmpl
12.03.15
✎
08:34
|
(7) Для чего нужен такой код? Бухи явно не знают внутренних имен счетов, им проще по коду счета.
|
|||
12
mzelensky
12.03.15
✎
08:35
|
(7) Запросом выбери
|
|||
13
Ненавижу 1С
гуру
12.03.15
✎
08:38
|
там таких свойств, которые принимают только Неопределено до ...
видимо это заглушки от метамодели конфигуратора |
|||
14
forforumandspam
12.03.15
✎
08:42
|
(12) Напишешь альтернативный код?
(13) Замечал многократно. :( |
|||
15
mzelensky
12.03.15
✎
08:47
|
(14) ты сперва объясни что ты вообще хочешь сделать? и что в твоем случае вот это "хзхзхз" ???
|
|||
16
dmpl
12.03.15
✎
08:47
|
(14) Зачем? Если ты внес предопределенное свойство - ты его знаешь. Если нет - то оно тебе и не нужно.
|
|||
17
dmpl
12.03.15
✎
08:48
|
(13) Просто базовый класс возвращает "Неопределено".
|
|||
18
Ненавижу 1С
гуру
12.03.15
✎
08:50
|
автор кстати прав судя по (7)
|
|||
19
forforumandspam
12.03.15
✎
08:53
|
(15) "хзхзхз" - это имя предопределенного счета, я хочу проверить, существует ли такой.
(16) А если перенести в другую конфигурацию? |
|||
20
forforumandspam
12.03.15
✎
08:56
|
А вообще повсеместное использование "Попытка" меня раздражает. Редиски, из писателей типовых, пихают "Попытка" где можно и где нельзя. Из-за этого невозможно пользоваться такой функцией отладчика, как "Останавливаться по ошибке".
|
|||
21
dmpl
12.03.15
✎
08:56
|
(19) 1. Откуда оно берется?
2. Тебе по-любому придется добавлять предопределенное чтобы перенесенный код работал. В этом случае ошибка времени выполнения намекнет тебе, что ты не все перенес. |
|||
22
Ненавижу 1С
гуру
12.03.15
✎
08:59
|
(20) плюсую
|
|||
23
Ненавижу 1С
гуру
12.03.15
✎
08:59
|
+(22) но дело не в отладчике, а просто в куче попыток
|
|||
24
Ненавижу 1С
гуру
12.03.15
✎
09:00
|
только запросом выбрать предопределенные и циклом обойти через ПолучитьИмяПредопределенного
|
|||
25
vde69
12.03.15
✎
09:01
|
нормально работает!!!!
ВЫБРАТЬ СхемыСделок.Ссылка ИЗ Справочник.СхемыСделок КАК СхемыСделок ГДЕ СхемыСделок.Предопределенный |
|||
26
forforumandspam
12.03.15
✎
09:03
|
(21) В типовом отчете "РегламентированныйОтчетБалансМСФО" из конфигурации "Бухгалтерия для Казахстана" код строки баланса прописан в табличной документе из макета. В итоге набирается соответствие "ПредопределенноеИмя=КодСтрокиБаланса". Мне надо собрать счета, которые входят в данную строку баланса. НО! Эти писатели добавили такие имена счетов, которых нет в конфигурации. Я в итоге сделал через Ж, но хотелось бы по-человечески.
(25) Ну. А дальше? |
|||
27
Ненавижу 1С
гуру
12.03.15
✎
09:03
|
(25) ты вопроса не понял, внешняя обработка хочет узнать есть ли в твоем справочнике предопредленный элемент "МойЛюбимыйЭлемент", вопрос как узнать красиво?
|
|||
28
forforumandspam
12.03.15
✎
09:03
|
(24) Да, но любит 1С нам жизнь усложнять.
|
|||
29
dmpl
12.03.15
✎
09:05
|
(26) А не проще был макет подправить?
|
|||
30
forforumandspam
12.03.15
✎
09:07
|
(29) Разговор не о том, как мне сделать задачу. Я её сделал. Разговор о том, что нельзя узнать наличие предопределённых элементов.
|
|||
31
mikecool
12.03.15
✎
09:12
|
(27) выбрать запросом, найти в результате
|
|||
32
Defender aka LINN
12.03.15
✎
09:12
|
(26) А дальше собрать их в Соответствие и искать в нем
|
|||
33
dmpl
12.03.15
✎
09:13
|
(30) Узнать можно (хоть и кружным путем). Но в данном случае все равно надо ручками допиливать.
|
|||
34
mikecool
12.03.15
✎
09:13
|
тема из разряда "мы все умрем"?
|
|||
35
Ненавижу 1С
гуру
12.03.15
✎
09:13
|
(31) найти только перебором
|
|||
36
Ненавижу 1С
гуру
12.03.15
✎
09:13
|
(34) нормальная тема
|
|||
37
forforumandspam
12.03.15
✎
09:14
|
Вот альтернатива (7)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Типовой.Ссылка |ИЗ | ПланСчетов.Типовой КАК Типовой |ГДЕ | Типовой.Предопределенный"; ТЗ = Запрос.Выполнить().Выгрузить(); ТЗ.Колонки.Добавить("ПредопределенноеИмя"); Для каждого ТекСтрока Из ТЗ Цикл ТекСтрока.ПредопределенноеИмя = ПланыСчетов.Типовой.ПолучитьИмяПредопределенного(ТекСтрока.Ссылка); КонецЦикла; //И только сейчас я могу проверить НайденнаяСтрока = ТЗ.Найти("хзхзхз", "ПредопределенноеИмя"); |
|||
38
dmpl
12.03.15
✎
09:15
|
(37) Лучше Соответствие, а не ТЗ - оно ищет быстрее всего.
|
|||
39
DES
12.03.15
✎
09:15
|
(30) можно, через Попытку
|
|||
40
Ненавижу 1С
гуру
12.03.15
✎
09:16
|
(37) да лучше сразу в цикле искать, без переноса в коллекцию
|
|||
41
forforumandspam
12.03.15
✎
09:17
|
(39) У попытки свои минусы. См. (20)
|
|||
42
dmpl
12.03.15
✎
09:18
|
(40) Это если счет один. А судя по описанию - он не один.
|
|||
43
vde69
12.03.15
✎
09:19
|
СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>)
ИмяПредопределенныхДанных (PredefinedDataName) Использование: Только чтение. Описание: Тип: Строка. Имя предопределенного элемента, как оно задано в конфигурации. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Поле обладает особенностями сортировки. |
|||
44
GROOVY
12.03.15
✎
09:20
|
В 8.3 можно создавать и удалять элементы связанные с предопределенными метаданными.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |