Имя: Пароль:
1C
 
Нафига нужно свойство "Предопределенные"?
,
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 можно создавать и удалять элементы связанные с предопределенными метаданными.
Ошибка? Это не ошибка, это системная функция.