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

Передача ссылки на справочник в поле ввода

Автор ramzes, 27 сен 2011, 10:29

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

ramzes

Подскажите, пожалуйста, реально ли вообще передать в поле формы ссылку на элемент справочника, т.е чтобы после автоматического-программного заполнения поля ввода можно было нажать на (...) и выбрать другое значение из справочника???

has

А тип какой у реквизита поля ввода?

ramzes

Составной (СправочникСсылка+Строка)

has

Если хочешь установить тип поля ввода, то просто присваиваешь ему пустую ссылку, например

Реквизит1 = СПравочники.СотрудникиОрганизаций.ПустаяСсылка();

Тогда откроется форма списка справочника Сотрудники. Я правильно понял? Если нет, то поясни подробней.

ramzes

Да я так и делаю, но поле изначально пустое и значение выбираем ручками из справочника. А мне надо чтобы значение заполнилось автоматически и потом чтобы еще была возможность его поменять , нажав на (...) и выбрать опять же ручками.

has

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

ramzes

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

Процедура АвтоШифр(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   Запрос =Новый Запрос;
    Запрос.Текст= " ВЫБРАТЬ
    |ИзделияПоШифрамЗатратСрезПоследних.ШифрЗатрат.Код как ШифЗат
    | Из
    | РегистрСведений.ИзделияПоШифрамЗатрат.СрезПоследних КАК ИзделияПоШифрамЗатратСрезПоследних
    | ГДЕ
    |  ИзделияПоШифрамЗатратСрезПоследних.Номенклатура.КодДсе=&КодДсе";
Запрос.УстановитьПараметр("КодДСе",ВыбранноеЗначение.Изделие.КодДСе);
    Результат = Запрос.Выполнить().Выбрать();
     Если Результат.Следующий()> 0 Тогда
       ЭлементыФормы.ШифрЗатрат.Значение=Результат.ШифЗат;
              Иначе   
        ШифрЗатрат=Справочники.ШифрыЗатрат.ПустаяСсылка();
       КонецЕсли;
  КонецПроцедуры

has

Судя по запросу, если запись в регистре есть, то ты получаешь код шифра затрат. Т.е. ты получаешь значение с типом строка, а хочешь чтобы вдруг стало значение с типом СправочникСсылка. Тогда может в запросе получать ссылку?

Запрос =Новый Запрос;
   Запрос.Текст= "ВЫБРАТЬ
   |ИзделияПоШифрамЗатратСрезПоследних.ШифрЗатрат как ШифЗат
   | Из
   | РегистрСведений.ИзделияПоШифрамЗатрат.СрезПоследних КАК ИзделияПоШифрамЗатратСрезПоследних
   | ГДЕ
   |  ИзделияПоШифрамЗатратСрезПоследних.Номенклатура.КодДсе=&КодДсе";

ramzes

Ой спасибо Вам))) и по этой ссылке, если я правильно понимаю, можно   получить только поле Код или Наименование справочника? и никаких других?

has

По этой ссылке можно получить любой реквизит справочника. Тут опять смотря что и для чего тебе нужно.

Теги:

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

Рейтинг@Mail.ru

Поиск