![]() |
![]() |
![]() |
|
Значения свойств | ☑ | ||
---|---|---|---|---|
0
antokarpo
05.08.09
✎
08:03
|
Помогите, пожалуйста!!!
Очень надо вывести в отчет значения свойств. Например для номенклатуры нужно выводить такие значения, как срок хранения, состав и т.п. Пытаюсь делать так: ПрочитатьЗаполнитьСвойстваИЗначения(); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Пока Строка.Следующий() Цикл ОбластьМакета.Параметры.Наименование = Строка.Номенклатура; ОбластьМакета.Параметры.ЕдИзм = Строка.ЕдиницаИзмерения; ОбластьМакета.Параметры.Колво = Строка.Количество; ОбластьМакета.Параметры.КолвоМест = Строка.КоличествоМест; Для каждого Прмн из СвойстваИЗначения цикл Если Прмн.Свойство.Наименование = "СрокХранения10С" Тогда ОбластьМакета.Параметры.СрХр10 = Прмн.Значение; КонецЕсли; Если Прмн.Свойство.Наименование = "СрокХранения18С" Тогда ОбластьМакета.Параметры.СрХр18 = Прмн.Значение; КонецЕсли; Если Прмн.Свойство.Наименование = "Жир" Тогда ОбластьМакета.Параметры.Жир = Прмн.Значение; КонецЕсли; Если Прмн.Свойство.Наименование = "Фарш" Тогда ОбластьМакета.Параметры.Фарш = Прмн.Значение; КонецЕсли; Если Прмн.Свойство.Наименование = "ХлорНатрий" Тогда ОбластьМакета.Параметры.ХлорНатр = Прмн.Значение; КонецЕсли; Если Прмн.Свойство.Наименование = "СухиеВва" Тогда ОбластьМакета.Параметры.СухВещ = Прмн.Значение; КонецЕсли; КонецЦикла; ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; Но, увы, ничего из этого не выходит. Значения не выводятся! Хотя, в самом справочнике они сохраняются и при следующем открытии их значения снова видны в форме элемента. Помогите, кто может. ОЧЕНЬ надо срочно! |
|||
1
Defender aka LINN
05.08.09
✎
08:06
|
Это точо 7.7?
|
|||
2
antokarpo
05.08.09
✎
08:19
|
Это, вообще-то, 8.1
|
|||
3
lxndr
05.08.09
✎
08:20
|
(0) Пиши человечий запрос.
|
|||
4
Mitriy
05.08.09
✎
08:21
|
назови параметры СрыХры9, СрыХры10 и т.п., а потом пользуйся методом ОбластьМакета.Параметры.Заполнить(Прмн)... только язык не сломай...
|
|||
5
antokarpo
05.08.09
✎
08:22
|
запрос человечнее некуда :-)
от самих, так сказать 1С. Вот Он: Запрос.Текст = " |ВЫБРАТЬ РАЗЛИЧНЫЕ РАЗРЕШЕННЫЕ | СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления, | СвойстваОбъектов.Ссылка КАК Свойство, | РегистрСведений.ЗначенияСвойствОбъектов.Значение КАК Значение | |ИЗ |// Отбираются свойства, предназначенные для заданного типа объектов. | ( | ВЫБРАТЬ | ПланВидовХарактеристик.СвойстваОбъектов.Ссылка КАК Ссылка, | ПланВидовХарактеристик.СвойстваОбъектов.Наименование КАК Наименование, | ПланВидовХарактеристик.СвойстваОбъектов.ПометкаУдаления КАК ПометкаУдаления | | ИЗ | ПланВидовХарактеристик.СвойстваОбъектов | | ГДЕ | ПланВидовХарактеристик.СвойстваОбъектов.НазначениеСвойства В ( &НазначениеСвойств ) | | ) КАК СвойстваОбъектов | |ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ |// Присоединяются значения свойств, назначенные для заданного объекта. | РегистрСведений.ЗначенияСвойствОбъектов |ПО | РегистрСведений.ЗначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка | И | РегистрСведений.ЗначенияСвойствОбъектов.Объект = &ОбъектОтбораЗначений | |ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ |// Присоединяются группы, которым назначено свойство, для отбора свойств. |// Если свойству назначено значение, оно отбирается в любом случае. | РегистрСведений.НазначенияСвойствОбъектов |ПО | РегистрСведений.НазначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка | И | РегистрСведений.ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL | |ГДЕ |// Если значение свойства не задано, свойство должно быть назанчено |// или всем объектам, или одной из групп - родителей объекта. | РегистрСведений.НазначенияСвойствОбъектов.Объект ЕСТЬ NULL | ИЛИ | РегистрСведений.НазначенияСвойствОбъектов.Объект В ( &СписокНазначенийСвойств ) | |УПОРЯДОЧИТЬ ПО | СвойстваОбъектов.Наименование |"; |
|||
6
Mitriy
05.08.09
✎
08:23
|
хотя, может чо и напутал... в общем, будь проще...
|
|||
7
antokarpo
05.08.09
✎
08:25
|
назови параметры СрыХры9, СрыХры10 и т.п., а потом пользуйся методом ОбластьМакета.Параметры.Заполнить(Прмн)... только язык не сломай...
А подробнее, на примерах, так сакзать, можно? |
|||
8
lxndr
05.08.09
✎
08:38
|
(5) нее, получай все свойства сразу, чтонить вроде этого:
ВЫБРАТЬ Свойства1.Значение КАК Значение1, Свойства2.Значение КАК Значение2, Свойства3.Значение КАК Значение3 ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК Свойства1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК Свойства2 ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК Свойства3 ПО Свойства1.Объект = Свойства2.Объект ПО Свойства1.Объект = Свойства2.Объект ГДЕ Свойства1.Свойство = &Свойство1 И Свойства2.Свойство = &Свойство2 И Свойства3.Свойство = &Свойство3 И Свойства1.Объект = &Номенклатура И Свойства2.Объект = &Номенклатура И Свойства3.Объект = &Номенклатура |
|||
9
antokarpo
05.08.09
✎
08:57
|
lxndr
а чем уже существующий запрос плох? я просто вообще не разобрался в 8.1. вот, на 7.7 было проще. а тут лажа какая-то. |
|||
10
antokarpo
05.08.09
✎
09:02
|
вообщем, я еще долго так разбираться буду...
сразу скажу. как программер на 1с8.1 я еще никакой. может кто-нибудь дать сюда текст работающей проги согласно поставленной задачи? буду оччень признателен за помощь. |
|||
11
hhhh
05.08.09
✎
09:29
|
(9)
Если Прмн.Свойство.Наименование = "СрокХранения10С" Тогда наименования свойств у тебя получаются отдельными запросами к базе, будет тормозить. Лучше загружать сразу наименования в основном запросе, чтобы были под рукой. |
|||
12
antokarpo
06.08.09
✎
06:04
|
Наверное Вы не заметили, но проблема не в том, что прога тормозит. Проблема в том, что результата ее работы, который должен быть, нет. Кто какими соображениями может поделиться?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |