1. temi4444 11.01.17 14:11 Сейчас в теме

8.3 Программное изменение типа реквизита в табличной части документа

Добрый день, подскажите как программно изменять тип реквизита в тч документа. Например реквизит составного типа (Спр.Номенклатура и Строка) пользователь вводит наименование с клавиатуры если автоподбор по спр Номеклатура ничего не нашел, то оставлять в поле что ввел пользователь и продолжить редактирование документа дальше
Найденные решения
3. starik-2005 1683 11.01.17 14:16 Сейчас в теме
(2) при начале редактирования смотреть, какого типа элемент в поле, Если строка - ставить ограничение типа по строке, если номенклатура - по номенклатуре. Фактически тип поля не меняется при этом - просто вводимое значение ограничивается тем, что вводится.

С другой стороны, можно обрабатывать событие при вводе текста, а не при окончании ввода. Тогда всегда ограничивать тип справочником, а при вводе текста смотреть, что вводится. Если находится номенклатура - устанавливать ее, если не находится - просто в данные выбора передавать введенный текст.
Остальные ответы
Избранное Подписка Сортировка: Древо
2. temi4444 11.01.17 14:12 Сейчас в теме
Пробую сделать так:
&НаКлиенте
Процедура СоставНоменклатураСсылкаСтрокаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	Элементы.СоставНоменклатураСсылкаСтрока.ОграничениеТипа = Новый ОписаниеТипов("Строка");
КонецПроцедуры


но тогда меняется тип у всей колонки, а нужно чтоб только у текущей строки.
3. starik-2005 1683 11.01.17 14:16 Сейчас в теме
(2) при начале редактирования смотреть, какого типа элемент в поле, Если строка - ставить ограничение типа по строке, если номенклатура - по номенклатуре. Фактически тип поля не меняется при этом - просто вводимое значение ограничивается тем, что вводится.

С другой стороны, можно обрабатывать событие при вводе текста, а не при окончании ввода. Тогда всегда ограничивать тип справочником, а при вводе текста смотреть, что вводится. Если находится номенклатура - устанавливать ее, если не находится - просто в данные выбора передавать введенный текст.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий инженер - программист 1С
Москва
зарплата от 200 000 руб.
Полный день

Ведущий программист 1С
Нижний Новгород
зарплата от 100 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству