Нужно в поле ввода вывести реквизит из справочника отличный от наименования
Есть два поля ввода "НоменклатурныйНомерПолеВвода" с типом СправочникСсылка.Номенклатура и "НаименованиеОбъектаПолеВвода" с типом строка. Нужно чтобы при выборе из справочника Номенклатура, НоменклатурныйНомерПолеВвода заполнялось Номером (НоменклатурныйНомер), а НаименованиеОбъектаПолеВвода Наименованием.
НаименованиеОбъектаПолеВвода - заполняется правильно - наименованием, а вот НоменклатурныйНомерПолеВвода вместо номера тоже подставляется наименование
Процедура НоменклатурныйНомерПолеВводаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.НоменклатурныйНомер
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование", ВыбранноеЗначение);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НоменклатурныйНомерПолеВвода = Выборка.НоменклатурныйНомер;
КонецЦикла;
НаименованиеОбъектаПолеВвода = ВыбранноеЗначение;
КонецПроцедуры
ПоказатьНаименованиеОбъектаПолеВвода - заполняется правильно - наименованием, а вот НоменклатурныйНомерПолеВвода вместо номера тоже подставляется наименование
По теме из базы знаний
- Всякие полезности
- Характеристики номенклатуры. Переход на учёт по характеристикам для УТ, УНФ, Розница, КА
- Разработка и сценарное тестирование с Vanessa-ADD. Концепция, теория и сквозной пример создания сценария
- Конфигурация Flowcon
- Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"
Найденные решения
(6)
делаем активной кнопку выбора,
и в процедуре начало выбора обыгрываем программный выбор элемента списка справочника.
По результату выбора, присваиваем в этот реквизит ВыранныйЭлемент.номер.
Тебе все равно, придется строковый тип делать, т.к. номер у справочника, - это строка.
Либо делай коряво, вешай еще одно строковое поле, по аналогии с НаименованиеОбъектаПолеВвода
Выбирать будешь из ссылочного поля, а по результату заполняй в два строковых поля свои данные.
Если тип будет строка, то как тогда выбирать из справочника?
делаем активной кнопку выбора,
и в процедуре начало выбора обыгрываем программный выбор элемента списка справочника.
По результату выбора, присваиваем в этот реквизит ВыранныйЭлемент.номер.
Тебе все равно, придется строковый тип делать, т.к. номер у справочника, - это строка.
Либо делай коряво, вешай еще одно строковое поле, по аналогии с НаименованиеОбъектаПолеВвода
Выбирать будешь из ссылочного поля, а по результату заполняй в два строковых поля свои данные.
(10)
Так работает
Так работает
Процедура НоменклатурныйНомерПолеВводаНачалоВыбора(Элемент, СтандартнаяОбработка)
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",, Элемент);
КонецПроцедуры
Процедура НоменклатурныйНомерПолеВводаОбработкаВыбора(Элемент, ВыбранныйЭлемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
НоменклатурныйНомерПолеВвода = ВыбранныйЭлемент.НоменклатурныйНомер;
НаименованиеОбъектаПолеВвода = ВыбранныйЭлемент.Наименование;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
у тебя же тип, справочник ссылка.
Там не может быть наименование, там ссылка и остается. А визуально ты видишь наименование - потому что представление основное ссылки - это наименование.
Если нужен номер, то и тип должен быть строка
НоменклатурныйНомерПолеВвода вместо номера тоже подставляется наименование
у тебя же тип, справочник ссылка.
Там не может быть наименование, там ссылка и остается. А визуально ты видишь наименование - потому что представление основное ссылки - это наименование.
Если нужен номер, то и тип должен быть строка
(2) Если тип будет строка, то как тогда выбирать из справочника?
Составной тип строка и ссылка выдает ошибку
Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
Номенклатура.Наименование <<?>>= &Наименование
Составной тип строка и ссылка выдает ошибку
Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
Номенклатура.Наименование <<?>>= &Наименование
(6)
делаем активной кнопку выбора,
и в процедуре начало выбора обыгрываем программный выбор элемента списка справочника.
По результату выбора, присваиваем в этот реквизит ВыранныйЭлемент.номер.
Тебе все равно, придется строковый тип делать, т.к. номер у справочника, - это строка.
Либо делай коряво, вешай еще одно строковое поле, по аналогии с НаименованиеОбъектаПолеВвода
Выбирать будешь из ссылочного поля, а по результату заполняй в два строковых поля свои данные.
Если тип будет строка, то как тогда выбирать из справочника?
делаем активной кнопку выбора,
и в процедуре начало выбора обыгрываем программный выбор элемента списка справочника.
По результату выбора, присваиваем в этот реквизит ВыранныйЭлемент.номер.
Тебе все равно, придется строковый тип делать, т.к. номер у справочника, - это строка.
Либо делай коряво, вешай еще одно строковое поле, по аналогии с НаименованиеОбъектаПолеВвода
Выбирать будешь из ссылочного поля, а по результату заполняй в два строковых поля свои данные.
(7)
выбираю элемент справочника, но значение поля ввода не изменяется
выбираю элемент справочника, но значение поля ввода не изменяется
Процедура НоменклатурныйНомерПолеВводаНачалоВыбора(Элемент, СтандартнаяОбработка)
ФормаП = Справочники.Номенклатура.ПолучитьФормуВыбора("ФормаСписка",ЭтаФорма);
ФормаП.Открыть();
КонецПроцедуры
Процедура НоменклатурныйНомерПолеВводаОбработкаВыбора(Элемент, ВыбранныйЭлемент, СтандартнаяОбработка)
НоменклатурныйНомерПолеВвода = ВыбранныйЭлемент.НоменклатурныйНомер;
КонецПроцедуры
Показать
(10)
Так работает
Так работает
Процедура НоменклатурныйНомерПолеВводаНачалоВыбора(Элемент, СтандартнаяОбработка)
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",, Элемент);
КонецПроцедуры
Процедура НоменклатурныйНомерПолеВводаОбработкаВыбора(Элемент, ВыбранныйЭлемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
НоменклатурныйНомерПолеВвода = ВыбранныйЭлемент.НоменклатурныйНомер;
НаименованиеОбъектаПолеВвода = ВыбранныйЭлемент.Наименование;
КонецПроцедуры
Показать
как правильно в (1) замечено вместо ссылки выводится ее представление - нужен номер если поменять представление будет номер вместо наименования номенклатуры везде, если такое поведение не надо и требуется номер только здесь то придется поменять тип у поля ввода - использовать свой реквизит тип строка у которого подменять значение как угодно
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот