Значения свойств элемента справочника "Номенклатура"
05.08.2009
07:41
#1
"Помогите, пожалуйста!!!
Очень надо вывести в отчет значения свойств. Например для номенклатуры нужно выводить такие значения, как срок хранения, состав и т.п. Пытаюсь делать так:
ПрочитатьЗаполнитьСвойстваИЗначения();
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
Пока Строка.Следующий() Цикл
ОбластьМакета.Параметры.Наименование = Строка.Номенклатура;
ОбластьМакета.Параметры.ЕдИзм = Строка.ЕдиницаИзмерения;
ОбластьМакета.Параметры.Колво = Строка.Количество;
ОбластьМакета.Параметры.КолвоМест = Строка.КоличествоМест;
Для каждого Прмн из СвойстваИЗначения цикл
Если Прмн.Свойство.Наименование = "СрокХранения10С" Тогда
ОбластьМакета.Параметры.СрХр10 = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "СрокХранения18С" Тогда
ОбластьМакета.Параметры.СрХр18 = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "Жир" Тогда
ОбластьМакета.Параметры.Жир = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "Фарш" Тогда
ОбластьМакета.Параметры.Фарш = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "ХлорНатрий" Тогда
ОбластьМакета.Параметры.ХлорНатр = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "СухиеВва" Тогда
ОбластьМакета.Параметры.СухВещ = Прмн.Значение;
КонецЕсли;
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Но, увы, ничего из этого не выходит. Значения не выводятся! Хотя, в самом справочнике они сохраняются и при следующем открытии их значения снова видны в форме элемента. Помогите, кто может. ОЧЕНЬ надо срочно!"
Очень надо вывести в отчет значения свойств. Например для номенклатуры нужно выводить такие значения, как срок хранения, состав и т.п. Пытаюсь делать так:
ПрочитатьЗаполнитьСвойстваИЗначения();
ОбластьМакета = Макет.ПолучитьОбласть("Строка");
Пока Строка.Следующий() Цикл
ОбластьМакета.Параметры.Наименование = Строка.Номенклатура;
ОбластьМакета.Параметры.ЕдИзм = Строка.ЕдиницаИзмерения;
ОбластьМакета.Параметры.Колво = Строка.Количество;
ОбластьМакета.Параметры.КолвоМест = Строка.КоличествоМест;
Для каждого Прмн из СвойстваИЗначения цикл
Если Прмн.Свойство.Наименование = "СрокХранения10С" Тогда
ОбластьМакета.Параметры.СрХр10 = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "СрокХранения18С" Тогда
ОбластьМакета.Параметры.СрХр18 = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "Жир" Тогда
ОбластьМакета.Параметры.Жир = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "Фарш" Тогда
ОбластьМакета.Параметры.Фарш = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "ХлорНатрий" Тогда
ОбластьМакета.Параметры.ХлорНатр = Прмн.Значение;
КонецЕсли;
Если Прмн.Свойство.Наименование = "СухиеВва" Тогда
ОбластьМакета.Параметры.СухВещ = Прмн.Значение;
КонецЕсли;
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакета);
КонецЦикла;
Но, увы, ничего из этого не выходит. Значения не выводятся! Хотя, в самом справочнике они сохраняются и при следующем открытии их значения снова видны в форме элемента. Помогите, кто может. ОЧЕНЬ надо срочно!"
06.08.2009
05:55
#3
"> Если СокрЛП(Прмн.Свойство.Наименование) = ... Тогда
>
Не помогло. Да и не в этом проблема. Условия выполняются, проверял при помощи Сообщить(); в каждой ветке условия. Проблема в том, что "Прмн.Значение" ничего не возвращает!!!"
>
Не помогло. Да и не в этом проблема. Условия выполняются, проверял при помощи Сообщить(); в каждой ветке условия. Проблема в том, что "Прмн.Значение" ничего не возвращает!!!"
06.08.2009
11:35
#5
> Если СокрЛП(Прмн.Свойство.Наименование) = ... Тогда
Такая штука важна для 7-ки, а это больше похоже на 8-ку.
К сожелению, автор, вы не указали что у вас за конфигурация (даже о платформе приходиться догадываться по коду), что такое СвойстваИЗначения тоже не известно, поскольку в коде оно не определено. Если предположить, что это набор записей РегистрСведений.ЗначенияСвойствОбъектов, тогда Значение должно было быть, если только оно не пустое или если Значение - это элемент справочника у которого пустое Наименование.
А вообще - общий способ решения проблем такого рода: запускаете 1С в режиме отладки, ставите точку прерывания и смотрите через ВычислитьВыражение (shift-F9). Сразу увидете его свойства, определитесь с типом значения, а оттуда уже легко дойти до функций.
Такая штука важна для 7-ки, а это больше похоже на 8-ку.
К сожелению, автор, вы не указали что у вас за конфигурация (даже о платформе приходиться догадываться по коду), что такое СвойстваИЗначения тоже не известно, поскольку в коде оно не определено. Если предположить, что это набор записей РегистрСведений.ЗначенияСвойствОбъектов, тогда Значение должно было быть, если только оно не пустое или если Значение - это элемент справочника у которого пустое Наименование.
А вообще - общий способ решения проблем такого рода: запускаете 1С в режиме отладки, ставите точку прерывания и смотрите через ВычислитьВыражение (shift-F9). Сразу увидете его свойства, определитесь с типом значения, а оттуда уже легко дойти до функций.
07.08.2009
05:17
#6
Платформа - 8.1.14.72
Конфигураця "Управление торговлей 10.3.7.9"
Извиняюсь за не полную информацию.
СвойстваИЗначения - ТаблицаЗначений (табличная часть обработки ЗначенияСвойствОбъектов), где поле "Значение" имеет тип "Характеристика.СвойстваОбъектов"
Конфигураця "Управление торговлей 10.3.7.9"
Извиняюсь за не полную информацию.
СвойстваИЗначения - ТаблицаЗначений (табличная часть обработки ЗначенияСвойствОбъектов), где поле "Значение" имеет тип "Характеристика.СвойстваОбъектов"
07.08.2009
05:58
#7
> А Прмн.Значение.Наименование?
Не удалось сформировать внешнюю печатную форму!
Значение не является значением объектного типа (Наименование)
Не удалось сформировать внешнюю печатную форму!
Значение не является значением объектного типа (Наименование)
12.08.2009
06:42
#8
"Какое то извращенное написание модуля печати...
> Пока Строка.Следующий()
Что такое "Строка"? Откуда вообще беруться данные? Зачем проверять наименования свойств, когда можно использовать метод Параметры.Заполнить(ИсточникДанных), сопоставив в источнике данных данные по именам параметров в макете?
> Условия выполняются, проверял при помощи Сообщить();
P.S. И научитесь пользоваться отладчиком."
> Пока Строка.Следующий()
Что такое "Строка"? Откуда вообще беруться данные? Зачем проверять наименования свойств, когда можно использовать метод Параметры.Заполнить(ИсточникДанных), сопоставив в источнике данных данные по именам параметров в макете?
> Условия выполняются, проверял при помощи Сообщить();
P.S. И научитесь пользоваться отладчиком."
Читают тему
(гостей: 1)