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

Открытие формы по кнопке и заполнения реквизита

Автор АлексейП, 13 июн 2018, 18:19

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

АлексейП

Здравствуйте. Есть кнопка на одном документе и есть элемент во втором документе "поле вода" Тип-ПеречисленияСсылка. В перечислении три значения. Значит такая ситуация. Нажимаю на кнопку первого документа открывается форма второго документа и в элементе "поле вода" должно стоять нужное мне значение. Написал событие на кнопку, форма открывается нужного значения в поле нет. Поле пустое.
Процедура Кнопка1Нажатие(Элемент)

ФормаЗаписи = ПолучитьФорму("Документ.ПаспортЖивотного.ФормаОбъекта");
Структура = Новый Структура;
Структура.Вставить("Самец", Перечисления.Пол);
ОткрытьФорму("Документ.ПаспортЖивотного.ФормаОбъекта", Структура);

КонецПроцедуры         


Как решить задачу и в чем моя ошибка. Я новичок.

pavl_vs

АлексейП, наверно нужно прописать событие для формы, типа ПриОткрытии().
А для чего строка "ФормаЗаписи=Получить..."?

АлексейП

Цитата: pavl_vs от 13 июн 2018, 20:28
АлексейП, наверно нужно прописать событие для формы, типа ПриОткрытии().
А для чего строка "ФормаЗаписи=Получить..."?
Слово "наверно", веет НЕУВЕРЕННОСТЬЮ. А что будет при открытии? 
Я уже нашел ответ:

ПРИ НАЖАТИИ КНОПКИ...
ПараметрыЗаполнения = Новый Структура;
ПараметрыЗаполнения.Вставить("Пол", ПредопределенноеЗначение("Перечисление.Пол.Самец"));

ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ПараметрыЗаполнения);

фНовыйДокумент = ПолучитьФорму("Документ.ПаспортЖивотного.ФормаОбъекта", ПараметрыФормы, ЭтаФорма);
фНовыйДокумент.Открыть();


Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
      ДанныеЗаполнения.Свойство("Пол", Пол);
   КонецЕсли;
КонецПроцедуры



Все работает..:) источник https://1c-programmer-blog.ru/programmirovanie/kak-otkryt-formu-s-zapolneniem.html

AIFrame

Можно и без обработкизаполнения обойтись.
У тебя всего один ревизит.

фНовыйДокумент = ПолучитьФорму("Документ.ПаспортЖивотного.ФормаОбъекта", ПараметрыФормы, ЭтаФорма);
фНовыйДокумент.Пол = Перечисления.Пол.Самец;
фНовыйДокумент.Открыть();


Добавлено: 14 июн 2018, 12:18


Цитата: АлексейП от 13 июн 2018, 21:09ДанныеЗаполнения.Свойство("Пол", Пол);
Еще один момент - это функция. Она возвращает истину, если такое свойство в структуре есть.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
      Если ДанныеЗаполнения.Свойство("Пол", Пол) Тогда
        Пол = ДанныеЗаполнения.Пол;
      КонецЕсли;
   КонецЕсли;
КонецПроцедуры

А работает оно у тебя, потому что ты не выставил СтандартнаяОбработка = ложь. Т.е., передав структуру, конфа сама ее распарсила и подставила из свойств значения в объект. Достаточно было
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

КонецПроцедуры


АлексейП

Достаточно было
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

КонецПроцедуры



Пустая процедура с параметрами?

AIFrame


АлексейП

Цитата: AIFrame от 14 июн 2018, 12:47Можно и без нее.
В качестве бонуса подскажите. В пользовательском режиме, при открытии документа открывается форма списка, а после уже форма документа. Как программно открыть форму документа минуя форму списка?


Добавлено: 14 июн 2018, 13:15


Цитата: AIFrame от 14 июн 2018, 12:15У тебя всего один ревизит.

Переделал так и без ОбработкиЗаполнения
Процедура Кнопка1Нажатие(Элемент)
НовыйДокумент = ПолучитьФорму("Документ.ПаспортЖивотного.ФормаОбъекта", ,ЭтаФорма);
НовыйДокумент.Пол = Перечисления.Пол.Самец;
НовыйДокумент.Открыть();

КонецПроцедуры

AIFrame

Цитата: АлексейП от 14 июн 2018, 12:51при открытии документа открывается форма списка, а после уже форма документа.
Шта?
Если у тебя кнопка открывает список - тебе список и откроется. Если у тебя кнопка открывает документ, то ты форму документа по ссылке на этот документ и открываешь.

АлексейП

Цитата: AIFrame от 14 июн 2018, 16:22
Цитата: АлексейП от 14 июн 2018, 12:51при открытии документа открывается форма списка, а после уже форма документа.
Шта?
Если у тебя кнопка открывает список - тебе список и откроется.
Не поняли. Кнопка тут не причем. Когда вы заходите в 1С Предприятие. Вы пользователь. Заходите в подсистему скажем хозяйственная деятельность. Там много всего. Среди них есть надпись Поступление. Открываете документ? Куда вы попадаете в первую очередь? В список документов, где в таблице перечислены все документы созданные согласно дате. Так вот мне не нужен этот список документов. При нажатии на поступлении я должен переместится на основную форму документа.

AIFrame

Цитата: АлексейП от 14 июн 2018, 16:34Среди них есть надпись Поступление
Которая открывает список поступлений.


Цитата: АлексейП от 14 июн 2018, 16:34При нажатии на поступлении я должен переместится на основную форму документа.
Какого документа, если ты его не выбрал?

Теги:

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

Рейтинг@Mail.ru

Поиск