Здравствуйте.
В БП 3.0 к документу "Реализация товаров и услуг" добавлено дополнительное сведение "Наше Сведение". Затем написан отчет на СКД
ВЫБРАТЬ
РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
РеализацияТоваровУслугТовары.Количество КАК Количество,
РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
ЕСТЬNULL(ДополнительныеСведения.Значение, ЗНАЧЕНИЕ(Справочник.ЗначенияСвойствОбъектов.ПустаяСсылка)) КАК НашеСведение,
ДополнительныеСведения.Свойство КАК Свойство
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
ПО РеализацияТоваровУслугТовары.Ссылка = ДополнительныеСведения.Объект
И (&Свойство = ДополнительныеСведения.Свойство)
И (РеализацияТоваровУслугТовары.Ссылка.Дата >= НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ))
И (РеализацияТоваровУслугТовары.Ссылка.Дата <= КОНЕЦПЕРИОДА(&Дата, ДЕНЬ))
Показать
&Свойство = Наше Сведение.
Поле "Наше Сведение" включено в пользовательские настройки и показывается в шапке отчета.
Каким образом можно при выборе значений поля "Наше Сведение" ограничить список или свойству, или по наименованию свойства? На данный момент в списке выбора показываются все значения свойств для всех документов.
Пробовал через "Параметры редактирования" у поля, но ничего не получилось.
В типовых это реализовано на уровне всех отчетов, так что можно сделать запрос чисто по реализациям. Затем в предприятии настроить вывод свойства и добавить отбор по нему в быстрые настройки. Затем в форме настройки варианта - все действия - сохранить настройки в файл. Загрузить настройки в конфигураторе. Будет крест на полях - якобы они не найдены, но в режиме предприятия все ок.
Единственный минус - наименования свойств будут полными - например, Характеристика номенклатуры.Диагональ (Справочник "Характеристики номенклатуры" (Общие))
(45) Дело в том, что при подборе открывается другая форма, и ей пофиг на доступные значения.
(46) Значит через параметры выкручиваться.
криво конечно... через строки... параметры отбираются. Сам запрос проверить не могу.
(47) На самом деле типовая форма отчета не такая тупая и она все параметры учитывает, и установленные значения, и параметры выбора, и на основании этого подбирает формы для выбора.
Я затолкал список в схему и переинициализировал компоновщик. Теперь список не слетает при изменении настроек:
Массив = Новый Массив;
Массив.Добавить(ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Нужное сведение"));
КомпоновщикНастроек.Настройки.ПараметрыДанных.ДоступныеПараметры.НайтиПараметр(Новый ПараметрКомпоновкиДанных("Свойство")).ДоступныеЗначения.ЗагрузитьЗначения(Массив);
В СКД на вкладке параметры нужно указать этому параметру в доступных значениях хотя бы пустую ссылку, чтоб ДоступныеЗначения стало типом СписокЗначений.
(40) если это не параметр, то надо это делать в
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
и ДоступныеЗначения тут вообще ни при чем.
Чего вы все-таки добиться хотите? Максимально подробно опишите, иначе это в битву экстрасенсов превращается...
(41) на форме пользователю доступно поле отбора "Сведение" куда он может подбирать список значений из справочника "ЗначенияСвойствОбъектов". В данном справочнике хранятся все дополнительные сведения, например для документа поступление, реализация ... Необходимо оставить пользователю для выбора только сведения привязанные к реализации или отфильтровать их по наименованию.
Во вложении сам отчет и скриншоты с выделением что нужно убрать.
(1) не совсем понятно что нужно в итоге? Чтоб пользователь выбирал из списка, или чтоб пользователь совсем ничего не выбирал, а значение было жестко прописано?
Для последнего, как вариант жесткого кодирования:
ПО РеализацияТоваровУслугТовары.Ссылка = ДополнительныеСведения.Объект
И (ДополнительныеСведения.Свойство.Наименование = "Наше Сведение")
(18) значения добавляются в режиме предприятия пользователем, дополнительных сведений может быть много, необходимо ограничить список выбора в конфигураторе, для ограничения его в режиме предприятия.
(24) не ответили на вопрос: "Выбирать значения должны пользователи из ограниченного списка, или нужно жестко прописать эти значения в конфигураторе без возможности выбора пользователем?
Если второе и ограничить значения несколькими свойствами:
ПО РеализацияТоваровУслугТовары.Ссылка = ДополнительныеСведения.Объект
И (ДополнительныеСведения.Свойство.Наименование = "Наше Сведение"
ИЛИ ДополнительныеСведения.Свойство.Наименование = "Наше второе Сведение"
ИЛИ ДополнительныеСведения.Свойство.Наименование = "Наше третье Сведение")
(27) пользователи выбирают сами эти значения, так же как и вводят их сами, сведения привязаны к документу. Я знаю лишь наименование и тип этого свойства в конфигураторе
(30) т.е. известны Наименование свойств. Нужно дать пользователю список выбора заполненный заранее известными значениями?
Тогда самый простой вариант, при условии, что имена не поменяет пользователь:
ПО РеализацияТоваровУслугТовары.Ссылка = ДополнительныеСведения.Объект
И (ДополнительныеСведения.Свойство.Наименование = &СвойствоНаименование
Далее в СКД Параметры:
Тип параметра СвойстваНаименование = Строка.
Доступные значения = составляете список нужных наименований.
Выводите пользователю.
В общем все.
(38) нет. я тоже не сразу понял, что хочет ТС.
Ему надо при установке параметра пользователем, ограничить список выбора дополнительных сведений, только теми, которые относятся к конкретному типу документа.
(1) Список выбора текстовых представлений свойства?
В параметрах создаете свой параметр, тип строка. В доступные значения пишете свой список. И ставите использовать - всегда и галку запрещать незаполненные значения.
(25) в чем тогда ограничение?
по идее тогда "доступен список значений" к этому прибавить. а "запрещать незаполненные значения" по усмотрению.
или я не понимаю, чего вы хотите добиться...
4.
user633533_encantado
1223.10.17 16:37 Сейчас в теме
Выстави в параметр отчета не само значение свойства, а его наименование. Для этого параметра заранее определи доступные значения.
А уже в запросе ищи нужное тебе свойство по полученному наименованию.
10.
user633533_encantado
1223.10.17 17:31 Сейчас в теме
(9) Если наименования свойства известны, то как раз сделайте как я сказал.
Создайте свой параметр, например "НаименованиеСвойства", задайте список доступных значений. У пользователя при работе с отчетом будет выпадающий список.
В тексте запроса сделайте: " &НаименованиеСвойства = ДополнительныеСведения.Свойство.Наименоавние"
(10) мне нужно сделать это в конфигураторе, так как свойства вводятся только в режиме предприятия, то они недоступны в режиме конфигуратора. И это не имеет отношения к запросу! Речь идет о выборе пользователя в режиме предприятия.
15.
user633533_encantado
1223.10.17 18:06 Сейчас в теме
(13) Вы меня похоже не понимаете. Я про конфигуратор и говорю. Если вы знаете список наименований свойств которые можно использовать, так пропишите его в скд и дайте пользователю фиксированный список.
(7) каким образом привязать? свойство доступно только в пользовательском режиме, так как там его и добавляли, можно ли как то это решить? Если только в СКД никак, то как в коде? Но оч не хочется создавать форму для отчета.
(8) И правда. Обычно можно настройки СКД выгрузить, потом в консоли скд в предприятии задать значение и снова загрузить в конфигураторе. С параметрами такая штука прокатывает, а вот с параметрами выбора почему-то не хочет. Либо оставляет пустым, либо передает уид строкой в качестве владельца.
(8) Похоже при выносе в быстрые настройки СКД хочет и параметр из быстрых брать. Если и параметр и отбор в быстрых настройках, тогда отрабатывает. Либо если и параметр и отбор доступны и не вынесены, тогда через обычные настройки можно назначать.
Настроить и сохранить вариант не прокатит?
Еще можно попробовать свойства не явно в запрос кинуть, а через характеристики СКД. Тогда будет "Реализация.Наше свойство = ..."
(19) настроить и сохранить в пользовательском режиме точно нет, ОНИ знают как сбрасывать настройки и нередко этим пользуются. Про характеристики можно подробнее если это решит проблему?
В типовых это реализовано на уровне всех отчетов, так что можно сделать запрос чисто по реализациям. Затем в предприятии настроить вывод свойства и добавить отбор по нему в быстрые настройки. Затем в форме настройки варианта - все действия - сохранить настройки в файл. Загрузить настройки в конфигураторе. Будет крест на полях - якобы они не найдены, но в режиме предприятия все ок.
Единственный минус - наименования свойств будут полными - например, Характеристика номенклатуры.Диагональ (Справочник "Характеристики номенклатуры" (Общие))
Прошу прощения, в типовых не на уровне отчетов, а на уровне метаданных - вкладка Данные - Характеристики.
По поводу имен: имя самого выводимого поля можно поменять, а вот для отбора будет полное наименование свойства.
(43) код отрабатывает, но при выборе пользователю по прежнему доступны все элементы справочника "ЗначенияСвойствОбъектов". Что то я видимо делаю не так.
(44) Что вы можете не так сделать? Код же не ваш :) Он присваивает доступным значениям список значений, а список значений надо загружать. Надо сделать как я и сказал ранее:
В СКД на вкладке параметры нужно указать этому параметру в доступных значениях хотя бы пустую ссылку, чтоб ДоступныеЗначения стало типом СписокЗначений.
А если используете не параметр, а поле, то соответственно надо в наборе данных у поля это сделать.
Код будет такой:
(45) Дело в том, что при подборе открывается другая форма, и ей пофиг на доступные значения.
(46) Значит через параметры выкручиваться.
криво конечно... через строки... параметры отбираются. Сам запрос проверить не могу.
(47) На самом деле типовая форма отчета не такая тупая и она все параметры учитывает, и установленные значения, и параметры выбора, и на основании этого подбирает формы для выбора.
Я затолкал список в схему и переинициализировал компоновщик. Теперь список не слетает при изменении настроек:
Но я его не предложил, потому что с параметром БыстрыйВыбор = Истина он не работал нормально - в списке с флажками появлялись все значения, а тестировал-то я именно с ним. Видимо все-таки в типовой форме отчета что-то не докручено. Без быстрого выбора оказалось работает нормально, только через Подбор надо выбирать.