Имя: Пароль:
1C
 
Выбрать справочники по доп. реквизитам табличной части
0 oleganatolievic
 
03.12.24
14:20
Подскажите, если есть где-нибудь подобная тема, то буду признателен за наводку.
Моя проблема: есть справочник ДоговорыКонтрагентов в БП 1с, там все договоры в общей куче лежат без иерархии, нужно разнести их по Договор(основной) - Проект - Доп.Соглашение, беда в том что отсылки в самом справочнике сделаны не через реквизит родитель, а через ТЧ Доп. Реквизиты.

У основного договора так заполнено:
Рамочный Договор: _______
Тип Документа: Договор
Рабочий Проект:______


У проекта:
Рамочный Договор: (ссылка на основной договор)
Тип Документа: Проект
Рабочий Проект:______


У доп соглашения:
Рамочный Договор: (ссылка на основной договор)
Тип Документа: Дополнительное соглашение
Рабочий Проект:(ссылка на проект)


Сделаны реквизиты через ПВХ.

Как мне в запросе к базе и при обработке выборки достучаться до этих параметров??

Вот код

АГГОГРУПП = Справочники.Контрагенты.НайтиПоНаименованию("АГГО ГРУПП ООО");

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка КАК Ссылка,
		|	ДоговорыКонтрагентовДополнительныеРеквизиты.НомерСтроки КАК НомерСтроки,
		|	ДоговорыКонтрагентовДополнительныеРеквизиты.Свойство КАК Свойство,
		|	ДоговорыКонтрагентовДополнительныеРеквизиты.Значение КАК Значение,
		|	ДоговорыКонтрагентовДополнительныеРеквизиты.ТекстоваяСтрока КАК ТекстоваяСтрока
		|ИЗ
		|	Справочник.ДоговорыКонтрагентов.ДополнительныеРеквизиты КАК ДоговорыКонтрагентовДополнительныеРеквизиты
		|ГДЕ
		|	ДоговорыКонтрагентовДополнительныеРеквизиты.Ссылка.Владелец = &Владелец";
	
	Запрос.УстановитьПараметр("Владелец", АГГОГРУПП);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

		Если ТипЗнч(ВыборкаДетальныеЗаписи.Значение) = Тип("Договор") И ВыборкаДетальныеЗаписи.Значение.ПустаяСтрока  Тогда
			ОсновнойДоговор = ВыборкаДетальныеЗаписи.Ссылка;

		КонецЕсли;
		
		Если ТипЗнч(ВыборкаДетальныеЗаписи.Значение) = Тип("Договор") И ВыборкаДетальныеЗаписи.Значение = "Проект"  Тогда
			Проект = ВыборкаДетальныеЗаписи.Ссылка;
			Проект.Родитель = ОсновнойДоговор;
		КонецЕсли;
		
		Если ТипЗнч(ВыборкаДетальныеЗаписи.Значение) = Тип("Договор") И ВыборкаДетальныеЗаписи.Значение = "Дополнительное соглашение"  Тогда
			ДопСогл = ВыборкаДетальныеЗаписи.Ссылка;
			ДопСогл.Родитель = Проект;
		КонецЕсли;
	КонецЦикла;


Подскажите, что не так делаю....
1 spiller26
 
03.12.24
14:20
(0) Ну что-то типа такого
    Запрос.Текст         =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    Товары.Характеристика
    |ПОМЕСТИТЬ Товары
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Товары КАК Товары
    |ГДЕ
    |    Товары.Ссылка В(&МассивДокументов)
    |;
    |    
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    Товар.Характеристика,
    |    Размер.Значение КАК Размеры,
    |    Цвет.Значение КАК Цвета
    |ПОМЕСТИТЬ Размер
    |ИЗ
    |    Товары КАК Товар
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК Размер
    |        ПО Товар.Характеристика = Размер.Ссылка
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК Цвет
    |        ПО Товар.Характеристика = Цвет.Ссылка
    |ГДЕ
    |    Размер.Свойство = &Размер
    |    И Цвет.Свойство = &Цвет
    |;