Имя: Пароль:
1C
1С v8
"Метаданные" возвращает не все реквизиты
0 zelenprog
 
19.02.24
13:22
Добрый день!

Нужно получить список всех реквизитов документа.
Делаю это с помощью "Метаданные.Документы.РеализацияТоваровУслуг.Реквизиты".

Однако, таким способом в список не попадают реквизиты "Номер", "Дата".
Интересно почему?
Предполагаю, что это происходит из-за того, что "Номер" и "Дата" являются "общими" реквизитами для всех документов.
Возможно, есть еще какие-то "общие" реквизиты.

Подскажите, как правильно получить все эти "общие" реквизиты?
1 mikecool
 
19.02.24
13:24
Через Меиаданные.ОбщиеРеквизиты не?
2 mikecool
 
19.02.24
13:25
ты отладчиком пользоваться умеешь? Метаданные в отладке посмотри и все узнаешь
3 Волшебник
 
19.02.24
13:26
Они называются СтандартныеРеквизиты и к ним относятся Номер, Дата и др.

Ищите тут ОбъектМетаданныхДокумент.СтандартныеРеквизиты
4 Волшебник
 
19.02.24
13:26
(1) мимо
5 zelenprog
 
19.02.24
13:30
Все понял, спасибо
6 mikecool
 
19.02.24
14:05
(4) в данном случае да, но надеюсь второй вопрос про общие реквизиты отпадет )
7 TormozIT
 
19.02.24
19:01
В привилегированном режиме выполнить код
Запрос = Новый запрос("ВЫБРАТЬ ПЕРВЫЕ 0 * ИЗ Документ.Имя КАК Т");
Реквизиты = Запрос.Выполнить().Выгрузить().Колонки;
8 Волшебник
 
19.02.24
16:34
(7) 👍
9 vde69
 
19.02.24
17:20
(7) в некоторых случаях вернет ошибку

например регистр отключен функциональной опцией...

подобное например в ЗУП часто бывает
10 RomanYS
 
19.02.24
19:00
(9) это же не СКД. Чистый запрос имхо должен работать.
11 RomanYS
 
19.02.24
19:01
(7) Там же и ТЧ выгрузятся...
12 Волшебник
 
19.02.24
19:03
(7) Сократите запрос до следующего:
ВЫБРАТЬ ПЕРВЫЕ 0 Документ.Имя.*
13 TormozIT
 
19.02.24
19:49
(9) Не будет такого. Функциональные опции компоновка учитывает, но не запрос.
14 TormozIT
 
19.02.24
19:50
(11) Да, колонки от табличных частей тоже будут. Но разве это плохо. Наоборот - это отлично. И отличить их от остальных легко - у них будет тип "РезультатЗапроса"
15 mikecool
 
19.02.24
19:51
(7) и получим хоть и небольшие но два объекта - результат запроса и ТЗ )
16 mikecool
 
19.02.24
19:51
+15 а метаданные уже в памяти и больше места не займут
17 Волшебник
 
19.02.24
19:51
(14) 🔥 Ваше решение огонь и Вы великолепны!
18 TormozIT
 
19.02.24
19:54
(12) Так делать опасно, т.к. могут быть неоднозначности (с точки зрения платформы) при пересечениях имен таблиц и полей.
19 Волшебник
 
19.02.24
19:56
(18) Я просто преобразовал Ваш запрос в эквивалентный. Что не так?
20 TormozIT
 
19.02.24
19:56
(7) ИР уже очень давно использует этот прием тут {ОбщийМодуль.ирОбщий.Модуль(ПоляТаблицыБДЛкс)}
Кстати в БСП он уже тоже местами применяется, например в замене ссылок (дублей).
21 TormozIT
 
19.02.24
19:57
(19) В моем у таблицы есть псевдоним. Если его не указать, платформа его назначит автоматом и сделает это без учета возможных конфликтов по именам с реквизитами.
22 Волшебник
 
19.02.24
19:58
(21) Ну так мы обращаемся к одной таблице. Вы потеряли контекст?
23 mikecool
 
19.02.24
20:02
ко мне сегодня в толстом клиенте "прицепились" ИР(на скрине) и не отпускали в "левой" для них обработке ))))
не мог вставить значение из буфера для переменных, пошел в три точки и попал в список, а при попытке работать в списке поймал ошибку )))
24 Волшебник
 
19.02.24
20:10
(23) Зачем Вы замазали текст запроса?
25 mikecool
 
19.02.24
20:12
(24) чтобы стыдно не было в случае чего )
26 Волшебник
 
19.02.24
20:13
(25) Ну ок.
27 zelenprog
 
20.02.24
10:24
А можно ли в конфигураторе поменять свойства "стандартных" реквизитов?
Например, тип или длину.
Сейчас, когда я захожу в какой-нибудь документ, открываю "Стандартные реквизиты", выбираю любой реквизит, то все свойства этого реквизита недоступны для редактирования.
Так и должно быть?
28 Ёпрст
 
20.02.24
10:53
(27) недостоин
29 Ёпрст
 
20.02.24
10:55
если че, свойства документа смотри, там есть тип/длина/нумератор и т.д..
30 rphosts
 
20.02.24
11:08
(2) Клюшечник детектед!
31 Волшебник
 
20.02.24
11:23
(27) Некоторые можно. Например, для справочников можно обнулить длину Кода/Наименования.