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

Работа с формами справочника

Автор gaur7, 10 июл 2017, 21:48

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

gaur7

Имеется справочник - ЕдиницыИзмерения.
В этом справочнике есть: форма элемента и произвольная форма
В произвольной получаю список значений, с помощью выгрузки с сервера в табличную часть формы (реквизиты списка значений - name и guid)
а вот теперь вопрос: как можно в форме элемента сделать так, чтоб при нажатие кнопки (заполнить) оно находило соответствие из произвольной формы - по наименованию и автоматически заполнялось.
тоесть вбиваю в строчку наименование: килограмм
нажимаю кнопку заполнить, и в строчке name подбирает соответствие по данному наименованию.
либо более простой вариант реализации, нажимая кнопку заполнить, открывается список произвольной формы и самому выбрать соответствие
помогите пожалуйста, не знаю даже с чего начать :^454^:

Golickoff

Формы обычные, или управляемые?
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

gaur7


Golickoff

Как вариант, можно попробовать поместить список во временное хранилище, адрес хранилища поместить в структуру и передать её в качестве параметра открытия формы элемента из произвольной формы.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

gaur7

Golickoff, мне тут подсказали - из формы элемента открыть произвольную форму со свойством Выбор=истина. При выборе, закрывать форму, ловить в первой.
Ток я не понимаю, как это реализовать. Вы не поможете?

Golickoff

Почитайте ответы в этой ветке. Возможно, внесёт ясность.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

gaur7

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

Golickoff

Сегодняшний гармоничный аспект Луны в Водолее к Юпитеру в Весах ослабляет мою экстрасенсорику, поэтому код придётся показать.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

gaur7

Golickoff, хорошо
форма элемента
----------------------------------------------------------------------------------------------------
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
      Объект.Код = Параметры.Код;
      Объект.Наименование = Параметры.Наименование;
      Объект.НаименованиеПолное = Параметры.НаименованиеПолное;
      Объект.МеждународноеСокращение = Параметры.МеждународноеСокращение;
   КонецЕсли;        
   
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьПоДаннымВЕТИС(Команда)
      
    Форма = ПолучитьФорму("Справочник.КлассификаторЕдиницИзмерения.Форма.ФормаПодбораИзКлассификатораВЕТИС", );
     Форма.Открыть();   
   
КонецПроцедуры
------------------------------------------------------------------------------------------------------

произвольная форма выглядит так
её код
-----------------------------------------------------------------------------------------------------
Перем Прокси;

&НаКлиенте
Процедура Заполнить(Команда)
   
   ЗаполнитьНаСервере();
   
КонецПроцедуры

Процедура ЗаполнитьНаСервере()
   
   Прокси = ОбменВЕТИС.ПолучитьПроксиDictionary();
   
   ListOptions = ОбменВЕТИС.ПолучитьListOptionsИзПрокси(Прокси);
   ListOptions.count = 4;
   Смещение = 0;
   //СписокЕдиницИзмерения.Очистить();
   Пока Истина Цикл
      ListOptions.offset = Смещение;   
      СписокВетис = Прокси.GetUnitList(ListOptions);
      Если ТипЗнч(СписокВетис) <> Тип("ОбъектXDTO") Тогда Прервать; КонецЕсли;
      Если СписокВетис.count = 0 Тогда Прервать; КонецЕсли;
      Для Каждого стр из СписокВетис.unit Цикл
         стр1 = СписокЕдиницИзмерения.Добавить();
         ЗаполнитьЗначенияСвойств(стр1, стр);
         стр1.ЕдиницаИзмерения = ОбменВЕТИС.ПолучитьОбъект1сПоGUID(стр1.GUID);
      КонецЦикла;
      Если СписокВетис.count + Смещение >= СписокВетис.total Тогда Прервать; КонецЕсли;
      Смещение = Смещение + ListOptions.Count;
   КонецЦикла;
   
КонецПроцедуры   

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   
   
КонецПроцедуры
------------------------------------------------------------------------------------------------------
Результат!
При открытие справочника, открывается форма элемента
Нажимаю кнопку: заполнить по данным ветис - открывается произвольная форма
Ну на этом всё! Мне необходимо, чтоб открыв эту произвольную форму и выбрав определённый элемент
У меня после заполнялись поля в элементе формы: name и guid

Golickoff

Голова, доза, проба... Чёт подозрительно.
Форма = ПолучитьФорму("Справочник.КлассификаторЕдиницИзмерения.Форма.ФормаПодбораИзКлассификатораВЕТИС", );
Форма.Открыть();

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

На произвольной форме добавляем жёлтую кнопку с синонимом "Выбрать", которая будет закрывать форму с передачей текущих данных.Процедура КнопкаНашаКнопкаНажатие(Команда)
    Форма.Закрыть(ЗначенияКоторыеНужноПередать);
КонецПроцедуры;

Если использование модальности не устраивает, воспользуйтесь рефакторингом.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Теги:

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

Рейтинг@Mail.ru

Поиск