Не получается вытянуть значение доп.реквизита.

1. user1767452 09.09.22 12:57 Сейчас в теме
Всем доброго времени суток.

1С:Предприятие 8.3 (8.3.13.1513)
Управление торговлей для Беларуси, редакция 3.4 (3.4.5.145)

Имеется внешняя обработка, прайс лист. С кучей фильтров и отборов, по складам, ценам, видам и т.д. и т.п.
Отборы реализованы как табличные части куда накидываешь то что тебе надо
В табличной части склады добавлена строка по умолчанию
А вот в таб части доп реквизитов, бьюсь и не могу добавить строку по аналогии(((
Может кто направит на верный путь) . Спасибо откликнувшимся)
П.С. Некоторые неудачные попытки добавил и закоментировал

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	//Заполнение значений по умолчанию
	Отчет.Заголовок = 1;
	Отчет.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Оптовая, по курсу (BYN)", Истина).Ссылка;
	Отчет.ИспользоватьРабочееНаименование = ИСТИНА;
	Отчет.БезЛишнего = ИСТИНА;
	НоваяСтрока=Отчет.Склады.Добавить();
        НоваяСтрока.Склад=Справочники.Склады.НайтиПоНаименованию("СКЛАД ООО",Истина).Ссылка;
	//НАДО НАЙТИ КАК ДОБАВИТЬ ДОП РЕКВИЗИТ В 1ую СТРОКУ ТАБ ЧАСТИ ПО АНАЛОГИИ СО СКЛАДОМ
	//НовСтрок=Отчет.Примечания.Добавить();
	//НовСтрок.Примечание=Справочники.Номенклатура.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("НеДляПрайса",Истина).Ссылка;
    //НовСтрок.Примечание=Характеристики.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("НеДляПрайса",Истина).Ссылка;
	//НовСтрок.Примечание=Справочники.Номенклатура.ДополнительныеРеквизиты.Значение.НайтиПоНаименованию("НеДляПрайса",Истина,Справочники.Номенклатура).Ссылка;
КонецПроцедуры     
Показать
Найденные решения
11. nomad_irk 76 09.09.22 15:08 Сейчас в теме
(10)произвольную текстовую строку только так:

ВЫБРАТЬ
    НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
    Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
    НоменклатураДополнительныеРеквизиты.Значение = "Произвольная текстовая строка"


Одно значение из списка:

Выбрать
      Ссылка КАК Значение
Из
      Справочник.ЗначенияСвойствОбъектов
ГДЕ
      Наименование = "Красный"


Возможно, дополнительные отборы необходимо применить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 09.09.22 13:11 Сейчас в теме
(1)если нужно само свойство, то искать нужно в ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения
3. user1767452 09.09.22 13:17 Сейчас в теме
(2)
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведени

Не, надо именно значение реквизита
4. nomad_irk 76 09.09.22 13:18 Сейчас в теме
(3)значения можно получить только, если они имеют ссылочный тип или только запросом из табличных частей объекта
5. mrSallivan 73 09.09.22 13:20 Сейчас в теме
А если через функцию ПолучитьЗначенияСвойств()?
Общий модуль: УправлениеСвойствами

Ну или в новых релизах:
// Возвращает значения дополнительных свойств объектов.
//
// Параметры:
//  ОбъектыСоСвойствами  - Массив      - объекты, для которых нужно получить значения дополнительных свойств.
//                       - ЛюбаяСсылка - ссылка на объект, например, СправочникСсылка.Номенклатура,
//                                       ДокументСсылка.ЗаказПокупателя, ...
//  ПолучатьДопРеквизиты - Булево - в результат включать дополнительные реквизиты. По умолчанию Истина.
//  ПолучатьДопСведения  - Булево - в результат включать дополнительные сведения. По умолчанию Истина.
//  Свойства             - Массив из ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - значения
//                            которых следует получить.
//                       - Массив из Строка - уникальное имя дополнительного свойства. 
//                       - Неопределено - по умолчанию, получить значения всех свойств владельца.
//  КодЯзыка             - Строка - код языка, на котором будет получено представление значения свойства.
//                                  Если не указано - берется текущий язык.
//
// Возвращаемое значение:
//  ТаблицаЗначений:
//    * Свойство    - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство владельца.
//    * ИмяСвойства - Строка - уникальное имя свойства владельца.
//    * Значение    - Произвольный - значения любого типа из описания типов свойства объекта метаданных:
//                    "Метаданные.ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Тип".
//    * Представление   - Строка - представление значения на указанном языке.
//    * ВладелецСвойств - ЛюбаяСсылка - ссылка на объект.
//
Функция ЗначенияСвойств(ОбъектыСоСвойствами,
                        ПолучатьДопРеквизиты = Истина,
                        ПолучатьДопСведения = Истина,
                        Свойства = Неопределено,
                        КодЯзыка = "") Экспорт
	
	Если Не СвойстваДоступны() Тогда
		Возврат Новый ТаблицаЗначений;
	КонецЕсли;
	
	ПолучатьДопСведения = ПолучатьДопСведения И ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ДополнительныеСведения);
	
	Если ТипЗнч(ОбъектыСоСвойствами) = Тип("Массив") Тогда
		ВладелецСвойств = ОбъектыСоСвойствами[0];
	Иначе
		ВладелецСвойств = ОбъектыСоСвойствами;
	КонецЕсли;
	
	Если Свойства = Неопределено Тогда
		Свойства = СвойстваОбъекта(ВладелецСвойств, ПолучатьДопРеквизиты, ПолучатьДопСведения);
	КонецЕсли;
	
	ИмяОбъектаСоСвойствами = ОбщегоНазначения.ИмяТаблицыПоСсылке(ВладелецСвойств);
	
	ТекстЗапросаДопРеквизиты =
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	ТаблицаСвойств.Свойство КАК Свойство,
		|	ТаблицаСвойств.Значение КАК Значение,
		|	ТаблицаСвойств.ТекстоваяСтрока,
		|	ТаблицаСвойств.Ссылка КАК ВладелецСвойств,
		|	ДополнительныеРеквизитыИСведения.Имя КАК ИмяСвойства
		|ИЗ
		|	&ИмяОбъектаСоСвойствами КАК ТаблицаСвойств
		|		ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
		|		ПО ДополнительныеРеквизитыИСведения.Ссылка = ТаблицаСвойств.Свойство
		|ГДЕ
		|	ТаблицаСвойств.Ссылка В (&ОбъектыСоСвойствами)
		|	И (ДополнительныеРеквизитыИСведения.Ссылка В (&Свойства)
		|		ИЛИ ДополнительныеРеквизитыИСведения.Имя В (&Свойства))";
	
	ТекстЗапросаДопСведения =
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	ТаблицаСвойств.Свойство КАК Свойство,
		|	ТаблицаСвойств.Значение КАК Значение,
		|	"""" КАК ТекстоваяСтрока,
		|	ТаблицаСвойств.Объект КАК ВладелецСвойств,
		|	ДополнительныеРеквизитыИСведения.Имя КАК ИмяСвойства
		|ИЗ
		|	РегистрСведений.ДополнительныеСведения КАК ТаблицаСвойств
		|		ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
		|		ПО ДополнительныеРеквизитыИСведения.Ссылка = ТаблицаСвойств.Свойство
		|ГДЕ
		|	ТаблицаСвойств.Объект В (&ОбъектыСоСвойствами)
		|	И (ДополнительныеРеквизитыИСведения.Ссылка В (&Свойства)
		|		ИЛИ ДополнительныеРеквизитыИСведения.Имя В (&Свойства))";
	
	Запрос = Новый Запрос;
	
	Если ПолучатьДопРеквизиты И ПолучатьДопСведения Тогда
		ТекстЗапроса = ТекстЗапросаДопРеквизиты + "
			|
			| ОБЪЕДИНИТЬ ВСЕ
			|" + СтрЗаменить(ТекстЗапросаДопСведения, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1, @Query-part-2
		
	ИначеЕсли ПолучатьДопРеквизиты Тогда
		ТекстЗапроса = ТекстЗапросаДопРеквизиты;
		
	ИначеЕсли ПолучатьДопСведения Тогда
		ТекстЗапроса = ТекстЗапросаДопСведения;
	КонецЕсли;
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяОбъектаСоСвойствами", ИмяОбъектаСоСвойствами + ".ДополнительныеРеквизиты");
	
	Запрос.Параметры.Вставить("ОбъектыСоСвойствами", ОбъектыСоСвойствами);
	Запрос.Параметры.Вставить("Свойства", Свойства);
	Запрос.Текст = ТекстЗапроса;
	
	Результат = Запрос.Выполнить().Выгрузить();
	Результат.Колонки.Добавить("Представление");
	РезультатСТекстовымиСтроками = Неопределено;
	ИндексСтроки = 0;
	Для каждого ЗначениеСвойства Из Результат Цикл
		ЗначениеСвойства.Представление = ПредставлениеЗначения(ЗначениеСвойства.Значение,
			КодЯзыка,
			ФорматСвойства(ЗначениеСвойства.Свойство));
		
		ТекстоваяСтрока = ЗначениеСвойства.ТекстоваяСтрока;
		Если Не ПустаяСтрока(ТекстоваяСтрока) Тогда
			Если РезультатСТекстовымиСтроками = Неопределено Тогда
				РезультатСТекстовымиСтроками = Результат.Скопировать(,"Свойство, ВладелецСвойств, ИмяСвойства, Представление");
				РезультатСТекстовымиСтроками.Колонки.Добавить("Значение");
				РезультатСТекстовымиСтроками.ЗагрузитьКолонку(Результат.ВыгрузитьКолонку("Значение"), "Значение");
			КонецЕсли;
			РезультатСТекстовымиСтроками[ИндексСтроки].Значение = ТекстоваяСтрока;
		КонецЕсли;
		ИндексСтроки = ИндексСтроки + 1;
	КонецЦикла;
	
	Возврат ?(РезультатСТекстовымиСтроками <> Неопределено, РезультатСТекстовымиСтроками, Результат);
КонецФункции
Показать
6. user1767452 09.09.22 13:52 Сейчас в теме
Вот сражаюсь с консолью.. Там доп реквизит который нужен с предопределенными значениями, как наложить условие?
ВЫБРАТЬ
	НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
	Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
Pavel Rodinchenko; +1 Ответить
7. Pavel Rodinchenko 09.09.22 13:59 Сейчас в теме
(6) Где ДопРеквизит.Имя = "какое-то имя"
8. nomad_irk 76 09.09.22 13:59 Сейчас в теме
(6)если значения предопределенные и имеют ссылочный тип, то обращаться нужно к таблице хранения данных:

Выбрать
      Ссылка
ИЗ
      ТаблицаХранения



Какой тип у нужных вам значений?
9. nomad_irk 76 09.09.22 14:14 Сейчас в теме
(6)Если тип ссылочных значений известен и нужно отобрать только те, которые используются в дополнительных реквизитах, то можно сделать так:

ВЫБРАТЬ
    НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
    Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
    НоменклатураДополнительныеРеквизиты.Значение ССЫЛКА Справочник.<МойСправочник>
10. user1767452 09.09.22 14:53 Сейчас в теме
(9)
(6)Если тип ссылочных значений известен и нужно отобрать только те, которые используются в дополнительных реквизитах, то можно сделать так:

Есть дополнительные реквизиты справочника номенклатура
Их несколько
Нужный тип - выбираешь из списка готовых значений (к примеру список цветов - белый,черный и т.д.)(Нужен только 1ин),
но есть также к примеру доп реквизит произвольная текстовая строка
11. nomad_irk 76 09.09.22 15:08 Сейчас в теме
(10)произвольную текстовую строку только так:

ВЫБРАТЬ
    НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
    Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
    НоменклатураДополнительныеРеквизиты.Значение = "Произвольная текстовая строка"


Одно значение из списка:

Выбрать
      Ссылка КАК Значение
Из
      Справочник.ЗначенияСвойствОбъектов
ГДЕ
      Наименование = "Красный"


Возможно, дополнительные отборы необходимо применить
12. user1767452 09.09.22 15:12 Сейчас в теме
(11)
Одно значение из списка:

Нужно именно значение из списка, сейчас будем пробовать
13. user1767452 09.09.22 15:16 Сейчас в теме
Получается я вот это искал
Справочник.ЗначениеСвойстОбъектов
Вроде на верном пути) Если все получится - отпишу
14. user1767452 09.09.22 15:18 Сейчас в теме
nomad_irk, спасибо
Осталось вставить в обработку-прайс
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот