Имя: Пароль:
1C
1С v8
Определение типа реквизита
0 Stepashkin
 
11.04.25
08:44
Всем привет.  
Имеется запрос
"ВЫБРАТЬ
		|	ТабЗнач.Ключ КАК Ключ,
		|	ТабЗнач.Реквизит КАК Реквизит,
		|	ТабЗнач.ТипРеквизита КАК ТипРеквизита,
		|	ТабЗнач.УИД КАК УИД,
		|	ТабЗнач.Свойство КАК Свойство,
		|	ТабЗнач.Тип_цифра КАК Тип_цифра,
		|	ТабЗнач.Тип_строка КАК Тип_строка,
		|	ТабЗнач.Тип_дата КАК Тип_дата
		|ПОМЕСТИТЬ ВТ_ТабЗнач
		|ИЗ
		|	&ТабЗнач КАК ТабЗнач
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	ВТ_ТабЗнач.Ключ КАК Ключ,
		|	ВТ_ТабЗнач.Реквизит КАК Реквизит,
		|	ВТ_ТабЗнач.ТипРеквизита КАК ТипРеквизита,
		|	ВТ_ТабЗнач.УИД КАК УИД,
		|	ВТ_ТабЗнач.Свойство КАК Свойство,
		|	ВТ_ТабЗнач.Тип_цифра КАК Тип_цифра,
		|	ВТ_ТабЗнач.Тип_строка КАК Тип_строка,
		|	ВТ_ТабЗнач.Тип_дата КАК Тип_дата,
		|	ДопСвед.Объект КАК ОбъектСсылка,
		|	ВЫБОР
		|		КОГДА ДопСвед.Объект ЕСТЬ NULL
		|			ТОГДА 0
		|		ИНАЧЕ 1
		|	КОНЕЦ КАК ЭтоОбъект
		|ИЗ
		|	ВТ_ТабЗнач КАК ВТ_ТабЗнач
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДопСвед
		|		ПО ВТ_ТабЗнач.Тип_цифра = ДопСвед.Значение
		|			И (ДопСвед.Свойство.Наименование = ВТ_ТабЗнач.Свойство)
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|УНИЧТОЖИТЬ ВТ_ТабЗнач"

где ТипРеквизита - строка, например "Справочник.Склады".
Нужно добавить условие по виду ДопСвед.Объект ССЫЛКА ТипРеквизита.
Направьте в нужном направлении, пожалуйста.
1 Мультук
 
гуру
11.04.25
08:48
(0)


|ИЗ
|	ВТ_ТабЗнач КАК ВТ_ТабЗнач
|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДопСвед
|		ПО ВТ_ТабЗнач.Тип_цифра = ДопСвед.Значение
|			И (ДопСвед.Свойство.Наименование = ВТ_ТабЗнач.Свойство)
|                       И &УсловиеЛяля 

УсловиеЛяля = " ДопСвед.Объект ССЫЛКА " + ТипРеквизита;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеЛяля", УсловиеЛяля);



P.S.
Исправил
2 Stepashkin
 
11.04.25
08:46
(1) Спасибо, попробую.
3 Stepashkin
 
11.04.25
08:48
(1) 🤦👍
4 Stepashkin
 
11.04.25
08:57
(1) ТипРеквизита я не смогу получить из ТабЗнач не в цикле. Так бы давно разобрался с проблемой.
5 Stepashkin
 
11.04.25
09:06
Думал через ВЫБОР делать, но универсальность пропадает.
6 Мультук
 
гуру
11.04.25
09:21
(4)

Незнание сила (с)

А я могу

ВЫБРАТЬ ПЕРВЫЕ 10
	СтраныМира.Ссылка КАК Ссылка,
	ТипЗначения(СтраныМира.Ссылка) КАК ТипЗначения
ИЗ
	Справочник.СтраныМира КАК СтраныМира
7 Stepashkin
 
11.04.25
09:27
(6) Предлагаешь отдельно получить ТипЗначения справочников?
8 Ненавижу 1С
 
гуру
11.04.25
09:29
порадовали в пятницу:

ТабЗнач.Тип_цифра
9 Stepashkin
 
11.04.25
09:30
(8) Всегда пожалуйста) Это не я называл так поля.
10 Мультук
 
гуру
11.04.25
09:33
(7)

    |ИЗ
    |    ВТ_ТабЗнач КАК ВТ_ТабЗнач
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДопСвед
    |        ПО ВТ_ТабЗнач.Тип_цифра = ДопСвед.Значение
    |            И (ДопСвед.Свойство.Наименование = ВТ_ТабЗнач.Свойство)
    |            И (ТипЗначения(ДопСвед.Объект) = ТипЗначения(ВТ_ТабЗнач.Реквизит))
11 Stepashkin
 
11.04.25
10:57
(10) Спасибо.
12 Волшебник
 
11.04.25
11:14
цифра - это один символ из множества {0123456789}
правильно говорить "тип число"
13 Stepashkin
 
11.04.25
11:29
(12) Я знаю. Спасибо.
AdBlock убивает бесплатный контент. 1Сергей