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

Добавление информационного поля на форму счета

Автор hobat, 03 мар 2013, 14:22

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

hobat

Добрый день. Я новичок в 1с, но пытаюсь сам разобраться по имеющейся конфиге (1с8.2 КА).
Возникла необходимость добавить на поле формы документа СчетНаОплатуПокупателю информационное поле, которое бы отображало название позиции номенклатуры полностью, ибо в таблице не влазит целиком.
Для чего как я думал и что делал:
1) на форме документа СчетНаОплатуПокупателю добавил надпись ПолноеНаименование
2) в модуле добавил процедуру:

Процедура ВыводПолногоНаименования()
   ТекСтрокаТЧ = ЭлементыФормы.Товары.ТекущаяСтрока;
   Если ТекСтрокаТЧ = Неопределено Тогда
      ЭлементыФормы.ПолноеНаименование = 0;
   Иначе
      ЭлементыФормы.ПолноеНаименование = ТекСтрокаТЧ.Номенклатура;
    КонецЕсли;
КонецПроцедуры;

и добавил ее в процедуру приОткрытии()

Выдает ошибку:

{Документ.СчетНаОплатуПокупателю.Форма.ФормаДокумента.Форма(3249)}: Поле объекта недоступно для записи (ПолноеНаименование)
      ЭлементыФормы.ПолноеНаименование = 0;

подскажите пожалуйста, почему этого недостаточно и что не так?

Gunner

Что значит не влазит полностью? покажите скрин

Dethmontt

ЭлементыФормы.ПолноеНаименование.Значение = ТекСтрокаТЧ.Номенклатура;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

hobat

Цитата: Gunner от 04 мар 2013, 10:58Что значит не влазит полностью? покажите скрин
Допустим вот так. Суть в чем - есть нереально длинные названия позиций, что манагам нужно будет растягивать одну только колонку наименования на пол экрана, что не удобно для работы. Поэтому есть необходимость добавить информационное поле под ТЧ


Цитата: Dethmontt от 04 мар 2013, 12:56ЭлементыФормы.ПолноеНаименование.Значение = ТекСтрокаТЧ.Номенклатура;
ничего не дало

aleon

&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент)

Товар=Элементы.Товары.ТекущиеДанные.Номенклатура;
ПолноеНаименованиеНаСервере(Товар);
КонецПроцедуры
  &НаСервере
Функция  ПолноеНаименованиеНаСервере(Товар);

Вид=Товар.ПолноеНаименование;
Реквизит1=Вид;
КонецФункции

Реквизит1 просто поле надписи на форме
При активизации строки это стандартное событие ТЧ ну или просто Реквизит1=Товар.ПолноеНаименование;))
А ну еще при выборе номенклатуры не видно будет ее сразу поэтому добавь

Товар=Элементы.Товары.ТекущиеДанные.Номенклатура;
ПолноеНаименованиеНаСервере(Товар);

в событие при изменении , должно работать

Dethmontt

Процедура ТоварыПриАктивизацииСтроки()

ТекСтрока = ЭлементыФормы.ИмяТАбличнойЧасти.ТекущиеДанные;
Если ТекСтрока = Неопределено Тогда
   Возврат;
КонецЕсли;

ЭлементыФормы.ИмяРеквизитаТекстаНаФорме.Заголовок = ТекСтрока.Номенклатура.Наименование; //Ну или полное наименование, по вкусу

КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

aleon

Цитата: Dethmontt от 14 мар 2013, 23:02
Процедура ТоварыПриАктивизацииСтроки()
ТекСтрока = ЭлементыФормы.ИмяТАбличнойЧасти.ТекущиеДанные;
............


я канешь новичок в программировании 1С но это событие управляемой формы исполняется на клиенте, и твой код не будет работать, чтоб у него отображалось полное наименование на сервер надо закинуть ссылку на справочник, и на сервере полное наименование получить

Dethmontt

Цитата: aleon от 15 мар 2013, 07:08я канешь новичок в программировании 1С но это событие управляемой формы исполняется на клиенте, и твой код не будет работать, чтоб у него отображалось полное наименование на сервер надо закинуть ссылку на справочник, и на сервере полное наименование получить

Скриншот выше посмотри! Это обычная ФОРМА!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

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

Рейтинг@Mail.ru

Поиск