Не получается вытянуть значение доп.реквизита.
Всем доброго времени суток.
1С:Предприятие 8.3 (8.3.13.1513)
Управление торговлей для Беларуси, редакция 3.4 (3.4.5.145)
Имеется внешняя обработка, прайс лист. С кучей фильтров и отборов, по складам, ценам, видам и т.д. и т.п.
Отборы реализованы как табличные части куда накидываешь то что тебе надо
В табличной части склады добавлена строка по умолчанию
А вот в таб части доп реквизитов, бьюсь и не могу добавить строку по аналогии(((
Может кто направит на верный путь) . Спасибо откликнувшимся)
П.С. Некоторые неудачные попытки добавил и закоментировал
1С:Предприятие 8.3 (8.3.13.1513)
Управление торговлей для Беларуси, редакция 3.4 (3.4.5.145)
Имеется внешняя обработка, прайс лист. С кучей фильтров и отборов, по складам, ценам, видам и т.д. и т.п.
Отборы реализованы как табличные части куда накидываешь то что тебе надо
В табличной части склады добавлена строка по умолчанию
А вот в таб части доп реквизитов, бьюсь и не могу добавить строку по аналогии(((
Может кто направит на верный путь) . Спасибо откликнувшимся)
П.С. Некоторые неудачные попытки добавил и закоментировал
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
//Заполнение значений по умолчанию
Отчет.Заголовок = 1;
Отчет.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Оптовая, по курсу (BYN)", Истина).Ссылка;
Отчет.ИспользоватьРабочееНаименование = ИСТИНА;
Отчет.БезЛишнего = ИСТИНА;
НоваяСтрока=Отчет.Склады.Добавить();
НоваяСтрока.Склад=Справочники.Склады.НайтиПоНаименованию("СКЛАД ООО",Истина).Ссылка;
//НАДО НАЙТИ КАК ДОБАВИТЬ ДОП РЕКВИЗИТ В 1ую СТРОКУ ТАБ ЧАСТИ ПО АНАЛОГИИ СО СКЛАДОМ
//НовСтрок=Отчет.Примечания.Добавить();
//НовСтрок.Примечание=Справочники.Номенклатура.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("НеДляПрайса",Истина).Ссылка;
//НовСтрок.Примечание=Характеристики.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("НеДляПрайса",Истина).Ссылка;
//НовСтрок.Примечание=Справочники.Номенклатура.ДополнительныеРеквизиты.Значение.НайтиПоНаименованию("НеДляПрайса",Истина,Справочники.Номенклатура).Ссылка;
КонецПроцедуры
ПоказатьНайденные решения
(10)произвольную текстовую строку только так:
Одно значение из списка:
Возможно, дополнительные отборы необходимо применить
ВЫБРАТЬ
НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
НоменклатураДополнительныеРеквизиты.Значение = "Произвольная текстовая строка"
Одно значение из списка:
Выбрать
Ссылка КАК Значение
Из
Справочник.ЗначенияСвойствОбъектов
ГДЕ
Наименование = "Красный"
Возможно, дополнительные отборы необходимо применить
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А если через функцию ПолучитьЗначенияСвойств()?
Общий модуль: УправлениеСвойствами
Ну или в новых релизах:
Общий модуль: УправлениеСвойствами
Ну или в новых релизах:
// Возвращает значения дополнительных свойств объектов.
//
// Параметры:
// ОбъектыСоСвойствами - Массив - объекты, для которых нужно получить значения дополнительных свойств.
// - ЛюбаяСсылка - ссылка на объект, например, СправочникСсылка.Номенклатура,
// ДокументСсылка.ЗаказПокупателя, ...
// ПолучатьДопРеквизиты - Булево - в результат включать дополнительные реквизиты. По умолчанию Истина.
// ПолучатьДопСведения - Булево - в результат включать дополнительные сведения. По умолчанию Истина.
// Свойства - Массив из ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - значения
// которых следует получить.
// - Массив из Строка - уникальное имя дополнительного свойства.
// - Неопределено - по умолчанию, получить значения всех свойств владельца.
// КодЯзыка - Строка - код языка, на котором будет получено представление значения свойства.
// Если не указано - берется текущий язык.
//
// Возвращаемое значение:
// ТаблицаЗначений:
// * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство владельца.
// * ИмяСвойства - Строка - уникальное имя свойства владельца.
// * Значение - Произвольный - значения любого типа из описания типов свойства объекта метаданных:
// "Метаданные.ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.Тип".
// * Представление - Строка - представление значения на указанном языке.
// * ВладелецСвойств - ЛюбаяСсылка - ссылка на объект.
//
Функция ЗначенияСвойств(ОбъектыСоСвойствами,
ПолучатьДопРеквизиты = Истина,
ПолучатьДопСведения = Истина,
Свойства = Неопределено,
КодЯзыка = "") Экспорт
Если Не СвойстваДоступны() Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;
ПолучатьДопСведения = ПолучатьДопСведения И ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ДополнительныеСведения);
Если ТипЗнч(ОбъектыСоСвойствами) = Тип("Массив") Тогда
ВладелецСвойств = ОбъектыСоСвойствами[0];
Иначе
ВладелецСвойств = ОбъектыСоСвойствами;
КонецЕсли;
Если Свойства = Неопределено Тогда
Свойства = СвойстваОбъекта(ВладелецСвойств, ПолучатьДопРеквизиты, ПолучатьДопСведения);
КонецЕсли;
ИмяОбъектаСоСвойствами = ОбщегоНазначения.ИмяТаблицыПоСсылке(ВладелецСвойств);
ТекстЗапросаДопРеквизиты =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТаблицаСвойств.Свойство КАК Свойство,
| ТаблицаСвойств.Значение КАК Значение,
| ТаблицаСвойств.ТекстоваяСтрока,
| ТаблицаСвойств.Ссылка КАК ВладелецСвойств,
| ДополнительныеРеквизитыИСведения.Имя КАК ИмяСвойства
|ИЗ
| &ИмяОбъектаСоСвойствами КАК ТаблицаСвойств
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
| ПО ДополнительныеРеквизитыИСведения.Ссылка = ТаблицаСвойств.Свойство
|ГДЕ
| ТаблицаСвойств.Ссылка В (&ОбъектыСоСвойствами)
| И (ДополнительныеРеквизитыИСведения.Ссылка В (&Свойства)
| ИЛИ ДополнительныеРеквизитыИСведения.Имя В (&Свойства))";
ТекстЗапросаДопСведения =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТаблицаСвойств.Свойство КАК Свойство,
| ТаблицаСвойств.Значение КАК Значение,
| """" КАК ТекстоваяСтрока,
| ТаблицаСвойств.Объект КАК ВладелецСвойств,
| ДополнительныеРеквизитыИСведения.Имя КАК ИмяСвойства
|ИЗ
| РегистрСведений.ДополнительныеСведения КАК ТаблицаСвойств
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
| ПО ДополнительныеРеквизитыИСведения.Ссылка = ТаблицаСвойств.Свойство
|ГДЕ
| ТаблицаСвойств.Объект В (&ОбъектыСоСвойствами)
| И (ДополнительныеРеквизитыИСведения.Ссылка В (&Свойства)
| ИЛИ ДополнительныеРеквизитыИСведения.Имя В (&Свойства))";
Запрос = Новый Запрос;
Если ПолучатьДопРеквизиты И ПолучатьДопСведения Тогда
ТекстЗапроса = ТекстЗапросаДопРеквизиты + "
|
| ОБЪЕДИНИТЬ ВСЕ
|" + СтрЗаменить(ТекстЗапросаДопСведения, "РАЗРЕШЕННЫЕ", ""); // @Query-part-1, @Query-part-2
ИначеЕсли ПолучатьДопРеквизиты Тогда
ТекстЗапроса = ТекстЗапросаДопРеквизиты;
ИначеЕсли ПолучатьДопСведения Тогда
ТекстЗапроса = ТекстЗапросаДопСведения;
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяОбъектаСоСвойствами", ИмяОбъектаСоСвойствами + ".ДополнительныеРеквизиты");
Запрос.Параметры.Вставить("ОбъектыСоСвойствами", ОбъектыСоСвойствами);
Запрос.Параметры.Вставить("Свойства", Свойства);
Запрос.Текст = ТекстЗапроса;
Результат = Запрос.Выполнить().Выгрузить();
Результат.Колонки.Добавить("Представление");
РезультатСТекстовымиСтроками = Неопределено;
ИндексСтроки = 0;
Для каждого ЗначениеСвойства Из Результат Цикл
ЗначениеСвойства.Представление = ПредставлениеЗначения(ЗначениеСвойства.Значение,
КодЯзыка,
ФорматСвойства(ЗначениеСвойства.Свойство));
ТекстоваяСтрока = ЗначениеСвойства.ТекстоваяСтрока;
Если Не ПустаяСтрока(ТекстоваяСтрока) Тогда
Если РезультатСТекстовымиСтроками = Неопределено Тогда
РезультатСТекстовымиСтроками = Результат.Скопировать(,"Свойство, ВладелецСвойств, ИмяСвойства, Представление");
РезультатСТекстовымиСтроками.Колонки.Добавить("Значение");
РезультатСТекстовымиСтроками.ЗагрузитьКолонку(Результат.ВыгрузитьКолонку("Значение"), "Значение");
КонецЕсли;
РезультатСТекстовымиСтроками[ИндексСтроки].Значение = ТекстоваяСтрока;
КонецЕсли;
ИндексСтроки = ИндексСтроки + 1;
КонецЦикла;
Возврат ?(РезультатСТекстовымиСтроками <> Неопределено, РезультатСТекстовымиСтроками, Результат);
КонецФункции
Показать
Вот сражаюсь с консолью.. Там доп реквизит который нужен с предопределенными значениями, как наложить условие?
ВЫБРАТЬ
НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
(6)Если тип ссылочных значений известен и нужно отобрать только те, которые используются в дополнительных реквизитах, то можно сделать так:
ВЫБРАТЬ
НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
НоменклатураДополнительныеРеквизиты.Значение ССЫЛКА Справочник.<МойСправочник>
(9)
Есть дополнительные реквизиты справочника номенклатура
Их несколько
Нужный тип - выбираешь из списка готовых значений (к примеру список цветов - белый,черный и т.д.)(Нужен только 1ин),
но есть также к примеру доп реквизит произвольная текстовая строка
(6)Если тип ссылочных значений известен и нужно отобрать только те, которые используются в дополнительных реквизитах, то можно сделать так:
Есть дополнительные реквизиты справочника номенклатура
Их несколько
Нужный тип - выбираешь из списка готовых значений (к примеру список цветов - белый,черный и т.д.)(Нужен только 1ин),
но есть также к примеру доп реквизит произвольная текстовая строка
(10)произвольную текстовую строку только так:
Одно значение из списка:
Возможно, дополнительные отборы необходимо применить
ВЫБРАТЬ
НоменклатураДополнительныеРеквизиты.Значение КАК Значение
ИЗ
Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ГДЕ
НоменклатураДополнительныеРеквизиты.Значение = "Произвольная текстовая строка"
Одно значение из списка:
Выбрать
Ссылка КАК Значение
Из
Справочник.ЗначенияСвойствОбъектов
ГДЕ
Наименование = "Красный"
Возможно, дополнительные отборы необходимо применить
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот