Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 20:09

Автоматическое заполнение реквизита "Наименование"

Автор Alieramada, 22 фев 2014, 23:52

0 Пользователей и 1 гость просматривают эту тему.

Alieramada

 <_< Доброй ночи.
Вопрос в следующем. Как можно сделать автоматическое заполнение реквизита "Наименование" справочника на основании состава табличной части?
Т.е есть справочник "Характеристики" номенклатуры, в нём есть табличная часть "Свойства Номенклатуры" в которой 2 реквизита:Свойство и значение.
Наименование характеристики должно формироваться автоматически из названий всех свойств, входящих в эту характеристику и их значений.
Пока додумался до этого
&НаКлиенте
Процедура ХарактеристикаПриИзменении(Элемент)
ТЧ=Объект.СвойстваНоменклактуры;
Для Каждого Строка из ТЧ Цикл
   Объект.Наименование=Строка.Свойство;
   Объект.Наименование=Объект.Наименование+Строка.Значение;
КонецЦикла
КонецПроцедуры
Однако, таким образом можно получить только последнюю запись.
И ещё, почему если написать
Объект.Наименование=Строка.Свойство+Строка.Значение;
Выдаётся ошибка о том, что преобразование к типу строка не может быть выполнено?

sadovod

>> Однако, таким образом можно получить только последнюю запись.
Разумеется, ведь в вашем коде на каждом шаге цикла "Объект.Наименование" инициализируется по-новому.
&НаКлиенте
Процедура ХарактеристикаПриИзменении(Элемент)
   ТЧ=Объект.СвойстваНоменклактуры;
   ТекущееНаименование = "";
   Для Каждого Строка из ТЧ Цикл
      ТекущееНаименование = ТекущееНаименование + Строка.Свойство;
      ТекущееНаименование = ТекущееНаименование + Строка.Значение;
   КонецЦикла
   Объект.Наименование = ТекущееНаименование;
КонецПроцедуры


>> почему если написать ...выдаётся ошибка о том, что преобразование к типу строка не может быть выполнено?
В этом случае, скорее всего, "Строка.Свойство" является неопределённым (не заполнено), а Платформа не может преобразовать "Неопределено" в строку.
В общем случае складывать (правильно называть конкатенировать) строки, чтобы наверняка не получать такого рода ошибки, нужно так:
СтрокаОбщая = "" + переменная1 + переменная2;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск