Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как установить многострочность у реквизита строка? (число прочтений - 13845 )
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Как установить многострочность у реквизита строка?
06. Декабря 2012 :: 14:44
Печать  
Программно создаю поле ввода, типа строка:

Атрибут = ФормаРасш.ДобавитьАтрибут(ИД_поле_ввода, 2, "Строка");

присваиваю значение
Атрибут.Значение = "очень длинная строка..";
Как у него сделать многострочность? Чтобы текст переносился

Пробовал через стили, не помогло. Появляются полосы прокрутки (скролбары), а текст не переносится
  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #1 - 08. Декабря 2012 :: 11:43
Печать  
Никто не хочет помочь моему горю  Плачущий
Делаю чат (по типу например mail agent'a), закладки добавляются динамически, для каждого юзера с кем общаешься, на ней (тоже динамически) 2 memo и кнопка отправить, уже все работает как надо, только переписка не многострочная ..
тут кто-то писал, что с помощью стилей вроде решил эту проблему, но у меня не получается, помогите
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #2 - 09. Декабря 2012 :: 16:37
Печать  
Положи на форму обычный стандартный многосточный реквизит и сделай его невидимым. А при необходимости присваивай ему нужные данные и делай видимым.
  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #3 - 10. Декабря 2012 :: 02:26
Печать  
я не могу его сделать в конфигураторе, закладки создаются (добавляются) динамически (программно), и элементы на ней тоже. Все нормально работает, только текст в нем не переносится.

Придется, наверно, делать сразу 10 элементов на форме, и при переключении закладки, делать видимым нужный, а остальные гасить, и присваивать нужные значения
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Как установить многострочность у реквизита строка?
Ответ #4 - 10. Декабря 2012 :: 03:27
Печать  
элемент формы можно сделать видимым даже если слой, которому он принадлежит - скрыт.

Т.е. у тебя есть 2 элемента формы типа "многострочная строка".
При активизации закладки ты присваиваешь им значения чата выбранного пользователя из аккумуляторов.
В какой-то момент (или при смене закладки или сразу после изменения) значения чата текущего пользователя записываешь во внутренные аккумуляторы.


Собственно, слои, как таковые, даже и не нужны становятся.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как установить многострочность у реквизита строка?
Ответ #5 - 10. Декабря 2012 :: 05:10
Печать  
(0) проще Tbox использовать в таком случае.. там что угодно и как угодно
  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #6 - 10. Декабря 2012 :: 05:38
Печать  
Цитата:
элемент формы можно сделать видимым даже если слой, которому он принадлежит - скрыт.

Да, это я знаю, просто так было-бы красивее, написал юзер сообщение, добавилась закладка, создались элементы.. а так приходится в цикле все элементы гасить, а нужные проявлять

Цитата:
Т.е. у тебя есть 2 элемента формы типа "многострочная строка".
При активизации закладки ты присваиваешь им значения чата выбранного пользователя из аккумуляторов.
В какой-то момент (или при смене закладки или сразу после изменения) значения чата текущего пользователя записываешь во внутренные аккумуляторы.

Да, именно так! На этой закладке есть кнопка закрыть, с формулой
Код
Выбрать все
Атрибут.Формула="УдалитьЗакладку(" +НоваяЗакладка_ИД + ")"; 


при ее нажатии, слой удаляется, данные записываются (для истории), можно и не записывать..
Когда приходит сообщение, закладка создается (но не открывается), и заголовок моргает (через      ФормаРасш.ПодсветкаЗакладки(i, 0)Подмигивание

Цитата:
Собственно, слои, как таковые, даже и не нужны становятся.

в принципе, да. Можно просто кнопки наставить и управлять видимостью.
  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #7 - 10. Декабря 2012 :: 05:40
Печать  
Цитата:
(0) проще Tbox использовать в таком случае.. там что угодно и как угодно

можно поподробнее  Смущённый
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как установить многострочность у реквизита строка?
Ответ #8 - 10. Декабря 2012 :: 05:50
Печать  
программно создай кнопку и повешай на неё активикс "Forms.TextBox.1"... всё собственно, там есть усё что хочешь
  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #9 - 10. Декабря 2012 :: 06:24
Печать  
Цитата:
повешай на неё активикс "Forms.TextBox.1"

а нет какого-нибудь примерчика, или где почитать
как присваивать и считывать значение, как управлять видимостью

простите за мою наглость..
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #10 - 10. Декабря 2012 :: 07:49
Печать  
Код
Выбрать все
Перем НашаСтрока;
//=========================
Процедура Видимый()
	Форма.ИдНашРеквизит.Видимость(1);
	НашаСтрока = СокрП(ИдНашРеквизит);
	Сообщить(НашаСтрока);
КонецПроцедуры
//=========================
Процедура НеВидымый()
	Форма.ИдНашРеквизит.Видимость(0);
	НашаСтрока = СокрП(ИдНашРеквизит);
	Сообщить(НашаСтрока);
КонецПроцедуры
//=========================
Процедура ПрисвоитьНовоеЗначение()
	НашаСтрока = "Здравствуй, Мир!";
	ИдНашРеквизит  = НашаСтрока;
КонецПроцедуры
//=========================
Процедура ПриОткрытии()
	Видимый();
КонецПроцедуры
//=========================
 

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как установить многострочность у реквизита строка?
Ответ #11 - 10. Декабря 2012 :: 08:33
Печать  
kti писал(а) 10. Декабря 2012 :: 06:24:
Цитата:
повешай на неё активикс "Forms.TextBox.1"

а нет какого-нибудь примерчика, или где почитать
как присваивать и считывать значение, как управлять видимостью

простите за мою наглость..


на форме кнопочка под активикс, в модуле формы:

Код
Выбрать все
Перем textBox1;

Процедура ПослеСозданияФормы()
	АтрФормы = СоздатьОбъект("АктивИкс");
	АтрФормы.УстановитьАтрибут(Форма,"КонтролТекста");
	textBox1=АтрФормы.СоздатьЭУ("Forms.TextBox.1");
    textBox1.Multiline = 1;
	textBox1.EnterKeyBehavior =1;
	textBox1.Locked =0;
	//textBox1.AutoWordSelect =1;
	textBox1.Enabled =1;
	//textBox1.MaxLength =100;
	textBox1.Text="Вася лошпед";
	textBox1.ScrollBars =2;
	textBox1.SpecialEffect  =0;
	textBox1.DragBehavior =1;
КонецПроцедуры
//======================================================================
Функция КонтролТекста_KeyPress(Кей)
	старт = textBox1.SelStart;
	стр = textBox1.text;
	начало = Лев(стр,старт+textBox1.CurLine);
	1.CurLine);
	textBox1.SelStart=старт+СтрДлина(Симв(Кей.value));
КонецФункции  




можно и через ДобавитьАтрибут слепить..
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #12 - 10. Декабря 2012 :: 08:33
Печать  
Для TextBox
Код
Выбрать все
Перем АктивИкс,НашаСтрока;
//=========================
Процедура Видимый()
	Форма.ИдНашРеквизит.Видимость(1);
	Если ПустоеЗначение(АктивИкс) = 0 Тогда
		НашаСтрока = СокрП(АктивИкс.Объект.Text);
	КонецЕсли;
	Сообщить(НашаСтрока);
КонецПроцедуры
//=========================
Процедура НеВидымый()
	Форма.ИдНашРеквизит.Видимость(0);
	Если ПустоеЗначение(АктивИкс) = 0 Тогда
		НашаСтрока = СокрП(АктивИкс.Объект.Text);
	КонецЕсли;
	Сообщить(НашаСтрока);
КонецПроцедуры
//=========================
Процедура ПрисвоитьНовоеЗначение()
	НашаСтрока = "Здравствуй,
	|Мир!";
	АктивИкс.Объект.Text  = НашаСтрока;
КонецПроцедуры
//=========================
Процедура ПриОткрытии()
	Видимый();
КонецПроцедуры
//=========================
Процедура ПослеСозданияФормы()
	АктивИкс = СоздатьОбъект("АктивИкс");

	АктивИкс.УстановитьАтрибут(Форма,"ИдНашРеквизит");
	АктивИкс.СоздатьЭУ("Forms.TextBox.1");
	АктивИкс.Объект.MultiLine = -1;
	АктивИкс.Объект.Text = НашаСтрока;
	АктивИкс.УстановитьФокус();
КонецПроцедуры // ПослеСозданияФормы
//=========================
Процедура ИдНашРеквизит_KeyPress(KeyAscii)
	Символ = Симв(KeyAscii.Value);
	БуферОбмена = СоздатьОбъект("БуферОбмена");
	БуферОбмена.Установить(Символ);
	АктивИкс.Объект.Paste();
КонецПроцедуры
//=========================
Процедура ИдНашРеквизит_KeyUp(KeyCode, Shift)
	Если KeyCode.Value = 13 Тогда
		ПереносКаретки = "
		|";
		БуферОбмена = СоздатьОбъект("БуферОбмена");
		БуферОбмена.Установить(ПереносКаретки);
		АктивИкс.Объект.Paste();
	КонецЕсли;
КонецПроцедуры //
//=========================
 

  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как установить многострочность у реквизита строка?
Ответ #13 - 10. Декабря 2012 :: 08:36
Печать  
от блин.. про Paste() не увидал.. начал лисапед городить..
Печаль

ЗЫ: только не понял, нафига там объект буфер обмена в коде ?

От жешь, с буфером обмена хитро.
« Последняя редакция: 10. Декабря 2012 :: 10:03 - Eprst »  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #14 - 10. Декабря 2012 :: 09:40
Печать  
АктивИкс = СоздатьОбъект("АктивИкс");

Это из области 1срр? У меня он конфликтует с FormEx'ом
да и подключать библиотеку, из-за одного textBox1 не хочется
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как установить многострочность у реквизита строка?
Ответ #15 - 10. Декабря 2012 :: 09:56
Печать  
Вообще то 1cpp и формекс никак не конфликтуют между собой.

Формекс то у тебя какой хоть версии ? И 1срр какой ?
И порядок загрузки какой у них ?
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Как установить многострочность у реквизита строка?
Ответ #16 - 10. Декабря 2012 :: 10:37
Печать  
kti писал(а) 10. Декабря 2012 :: 05:38:
Цитата:
элемент формы можно сделать видимым даже если слой, которому он принадлежит - скрыт.

Да, это я знаю, просто так было-бы красивее, написал юзер сообщение, добавилась закладка, создались элементы.. а так приходится в цикле все элементы гасить, а нужные проявлять

Цитата:
Т.е. у тебя есть 2 элемента формы типа "многострочная строка".
При активизации закладки ты присваиваешь им значения чата выбранного пользователя из аккумуляторов.
В какой-то момент (или при смене закладки или сразу после изменения) значения чата текущего пользователя записываешь во внутренные аккумуляторы.

Да, именно так! На этой закладке есть кнопка закрыть, с формулой
Код
Выбрать все
Атрибут.Формула="УдалитьЗакладку(" +НоваяЗакладка_ИД + ")"; 


при ее нажатии, слой удаляется, данные записываются (для истории), можно и не записывать..
Когда приходит сообщение, закладка создается (но не открывается), и заголовок моргает (через      ФормаРасш.ПодсветкаЗакладки(i, 0)Подмигивание

Цитата:
Собственно, слои, как таковые, даже и не нужны становятся.

в принципе, да. Можно просто кнопки наставить и управлять видимостью.



НАФИГА управлять видимостью?
Точнее даже не так - ЗАБЕЙ на множество реквизитов формы.
Тебе нужен ровно один набор для "вкладки чата" (я так понимаю, хочешь сделать что-то типо как в Квипе?).
Все, что дальше требуется - это по событию "ПриВыбореЗакладки" ассоциировать этот набор с новым текущим пользователем чата.
Собственно - лог и текущее сообщение гоняешь через аккумуляторы (юзай, например, список значений).
Кнопки работают с текущим пользователем (т.е. юзверь нажал кнопку "Хистори" - смотришь в текщую закладку, чтоб определить текщего пользователя и открываешь его историю; нажал юзверь кнопку "Отправить сообщение" - опять же, смотришь кто сейчас текущий пользователь и отправляешь сообщение ему).
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Как установить многострочность у реквизита строка?
Ответ #17 - 10. Декабря 2012 :: 10:50
Печать  
Код
Выбрать все
Перем ТекЮзер;
Перем сзЛог, сзСообщение;

Процедура ПриВыбореЗакладки(Номер,Значение)
    сзЛог.Установить(ТекЮзер, ТекстЛога);
    сзСообщение.Установить(ТекЮзер, ТекстСообщения);

    ТекЮзер = Значение;
    ТекстЛога = сзЛог.Получить(ТекЮзер);
    ТекстСообщения = сзСообщения.Получить(ТекЮзер);
КонецПроцедуры

Процедура ЗакрытьВкладку()
    сзЗакладки = Форма.Закладки;
    НомерЗакладки = сзЗакладки.НайтиЗначение(ТекЮзер);
    Если НомерЗакладки > 0 Тогда //паранойа
	  сзЗакладки.УдалитьЗначение(НомерЗакладки);
	  // если нужно - удаляем лог и сообщение из аккумуляторов
	  Если сзЗакладки.РазмерСписка() = 0 Тогда
		Форма.Закрыть();
	  Иначе
		НомерЗакладки = Макс(1, НомерЗакладки - 1);
		сзЗакладки.ТекущаяСтрока(НомерЗакладки);
		ПриВыбореЗакладки(НомерЗакладки, сзЗакладки.ПолучитьЗначение(НомерЗакладки));
	  КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Процедура ОтправитьСообщение() // обработчик кнопки Отправить
    ОтправитьСообщениеПользователю(ТекЮзер, ТекстСообщения);
    ТекстЛога = ТекстЛога + "
    |>> " + ТекстСообщения;
КонецПроцедуры 

  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #18 - 10. Декабря 2012 :: 13:13
Печать  
Да, так будет проще (использовать один набор элементов), придется переделывать обработку.. а то я уже нагородил огород (20 memo, 20 кнопок) все в цикле включается/выключается..

Если я правильно понял: ТекстЛога и ТекстСообщения - это и есть поля ввода (типа многострочный)?
Наверное все-равно в процудуре ПриВыбореЗакладки(Номер,Значение) придется их каждый раз включать, а иначе как они появятся.. Нерешительный

Для полноты картины у вас не хватает ДобавитьЗакладку(ТекЮзер, ТекстСообщения);
буду осиливать, спасибо
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Как установить многострочность у реквизита строка?
Ответ #19 - 11. Декабря 2012 :: 02:34
Печать  
kti писал(а) 10. Декабря 2012 :: 13:13:
Если я правильно понял: ТекстЛога и ТекстСообщения - это и есть поля ввода (типа многострочный)?

Да, это элементы формы (поле ввода, тип - строка, многострочная)

Цитата:
Наверное все-равно в процудуре ПриВыбореЗакладки(Номер,Значение) придется их каждый раз включать, а иначе как они появятся.. Нерешительный

А что мешает держать их ВСЕГДА видимыми? Или я тебя не понимаю.


Цитата:
Для полноты картины у вас не хватает ДобавитьЗакладку(ТекЮзер, ТекстСообщения);

Ну, я тебе дал мысль для развития. Полного кода от меня ты все-равно не получишь, хотя бы потому, что я не знаю всей полноты задачи.

  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #20 - 11. Декабря 2012 :: 05:30
Печать  
Цитата:
А что мешает держать их ВСЕГДА видимыми? Или я тебя не понимаю.

Все правильно, в Вашем варианте они всегда видимые, у меня еще есть первая закладка (со списком пользователей)
Обработку переделал, пока все устраивает, спасибо за идею  Очень довольный

Попутный вопросик (не относящийся к теме), как лучше обмениваться информацией между базами. Т.е. хочу чтобы одна база опрашивала сервер на предмет новых сообщений, а обработка у каждого юзера эти данные обрабатывала (т.е. выводила).
Опрос будет где-то раз в секунду, через файловый обмен как-то не камильфо, OLE тоже
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как установить многострочность у реквизита строка?
Ответ #21 - 11. Декабря 2012 :: 05:34
Печать  
Смотри в сторону нетаинет
(там же есть пример чата)
http://www.rikcenter.ru/downloads.php
  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #22 - 12. Декабря 2012 :: 02:51
Печать  
Цитата:
Смотри в сторону нетаинет

в принципе то что нужно, спасибо
только не пойму, библиотека бесплатна?
и как она будет работать если IP сервера и клиента совпадают? (на терминале)
насколько она стабильна, кто-нибудь юзал?
чат с пользователями сайта, будет работать сутками, и не хотелось-бы наблюдать вылеты 1с
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #23 - 12. Декабря 2012 :: 03:26
Печать  
Компонента бесплатна.
Внутри одного IP оно работает точно так же, как и все остальные - путём разделения по номеру порта. Разводить порты - это уже твоя головная боль.
Стабильность нормальная. У нас круглосуточно работал робот обмена, и не помню чтобы он вылетал из-за компоненты.
  
Наверх
 
IP записан
 
kti
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 06. Декабря 2012
Re: Как установить многострочность у реквизита строка?
Ответ #24 - 12. Декабря 2012 :: 06:23
Печать  
Понял, спасибо, будем реализовывать..
только я не понял, какие могут быть заморочки с портом
создаем сервер
СоздатьСервер(<НомерПорта>);

потом работа сервера с клиентом происходит по этому порту
у клиента порта вообще нет, он его находит как-то сам (по ИдСоединения)
или я что-то непонимаю  Нерешительный

еще один момент: процедуры обработки должны быть в глобальном модуле, т.е. полностью внешний отчет не получится сделать? (хотя бы на стороне клиента)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Как установить многострочность у реквизита строка?
Ответ #25 - 12. Декабря 2012 :: 06:45
Печать  
делай доп глобальник - будут в глобальнике
  
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #26 - 12. Декабря 2012 :: 14:01
Печать  
Если сервер у тебя только один - то никаких заморочек. Если же каждый клиент чата является IP-сервером (а это вполне нормально), то надо каждому порты как-то назначать.
  
Наверх
 
IP записан
 
Leonid
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Местоположение: Nikopol (Ukraine)
Зарегистрирован: 05. Мая 2019
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #27 - 05. Мая 2019 :: 19:29
Печать  
Здравствуйте.
Допиливаю конфу для 1С7.7 ТиС 032 для медучреждения. Есть документы, содержащие реквизиты типа Строка с длиной 300 -500 символов. Это типа результаты исследований. Ввод текста (точнее его варианты на выбор) в эти реквизиты делаю через элементы справочника. В этом механизме все в порядке и работает как надо. Но в в дальнейшем, когда уже выбран вариант текста, пытаюсь его получить в отдельном окне для его возможного редактирования через:

Код
Выбрать все
Процедура ВводПоля(РеквизитДокумента)   // РеквизитДокумента передается в процедуру
    Перем Инф;
    Инф= РеквизитДокумента;
    Если ВвестиСтроку(Инф, "Введите значение ", 999, 1,) = 1 Тогда
        РеквизитДокумента = Инф;
    Иначе
        Возврат;
    КонецЕсли;
КонецПроцедуры 


Но в этом окне текст все равно в одну строку и работать с такой длиной очень неудобно, также как и в окне ввода реквизита на форме.
Подскажите, как получить многострочное отображение содержимого реквизита на форме.
  
Наверх
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1537
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #28 - 06. Мая 2019 :: 06:47
Печать  
Вместо ВвестиСтроку сделать обработку с тестовым реквизитом на форме с установленным флагом многострочности.
  

FormEx developer
Наверх
www  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #29 - 06. Мая 2019 :: 08:24
Печать  
Сделай так:

Код
Выбрать все
ВвестиСтроку(Инф, "Введите значение ", 0, 1,) 



  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Leonid
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Местоположение: Nikopol (Ukraine)
Зарегистрирован: 05. Мая 2019
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #30 - 25. Мая 2019 :: 09:22
Печать  
АЛьФ писал(а) 06. Мая 2019 :: 06:47:
Вместо ВвестиСтроку сделать обработку с тестовым реквизитом на форме с установленным флагом многострочности.
А можно разъяснить чем отличается реквизит в форме с установленным флагом многстрочности и такой же реквизит только в обработке?
  
Наверх
IP записан
 
Leonid
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Местоположение: Nikopol (Ukraine)
Зарегистрирован: 05. Мая 2019
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #31 - 25. Мая 2019 :: 09:25
Печать  
alyuev писал(а) 06. Мая 2019 :: 08:24:
Сделай так:

Код
Выбрать все
ВвестиСтроку(Инф, "Введите значение ", 0, 1,) 




К сожалению так не сработало.  Хоть и реквизит формы имеет флаг многострочности. Все также в окне текст в одну длинную строку и выходит за размеры окна ввода.
  
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #32 - 29. Мая 2019 :: 08:48
Печать  
Сделал простую форму с модулем:
Код
Выбрать все
Процедура ИзмМногостр(мнТекст) Экспорт
	Стр=мнТекст;
	Если ВвестиСтроку(Стр,"Введите новый текст",0,1)=1 Тогда //Вместо 0 корректно срабатывает и число длины
		мнТекст=Стр;
	КонецЕсли;
КонецПроцедуры

//*******************************************
Процедура Сформировать()
	ИзмМногостр(мойТекст);
КонецПроцедуры 



На форме - текстовый реквизит "мойТекст". Экспериментировал как с установленным признаком многострочности, так и без. Нормально дает ввести многострочный текст.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #33 - 28. Июня 2019 :: 07:38
Печать  
alyuev писал(а) 29. Мая 2019 :: 08:48:
Сделал простую форму с модулем:
Код
Выбрать все
Процедура ИзмМногостр(мнТекст) Экспорт
	Стр=мнТекст;
	Если ВвестиСтроку(Стр,"Введите новый текст",0,1)=1 Тогда //Вместо 0 корректно срабатывает и число длины
		мнТекст=Стр;
	КонецЕсли;
КонецПроцедуры

//*******************************************
Процедура Сформировать()
	ИзмМногостр(мойТекст);
КонецПроцедуры 



На форме - текстовый реквизит "мойТекст". Экспериментировал как с установленным признаком многострочности, так и без. Нормально дает ввести многострочный текст.


Насколько я понял не работает не многострочность, а автоперенос при многострочности. Так?
Тогда задачу нужно ставить правильно. Только тогда получается правильный ответ  Улыбка
  
Наверх
ICQ  
IP записан
 
Leonid
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Местоположение: Nikopol (Ukraine)
Зарегистрирован: 05. Мая 2019
Пол: Мужской
Re: Как установить многострочность у реквизита строка?
Ответ #34 - 15. Сентября 2019 :: 09:28
Печать  
[/quote]Насколько я понял не работает не многострочность, а автоперенос при многострочности. Так?
Тогда задачу нужно ставить правильно. Только тогда получается правильный ответ  Улыбка [/quote]
Да, так и есть. Именно нужен автоперенос текста в размере окна.  Улыбка
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать