|
заполнение формы новой группы справочника | ☑ | ||
---|---|---|---|---|
0
Alt321
15.12.21
✎
13:34
|
У меня есть такой код
&НаКлиенте Процедура СоздатьГруппу(Команда) СозданиеГруппы = Новый Структура("Наименование"); СозданиеГруппы.Наименование = Наименование; Если СоздатьГруппуНаСервере(СозданиеГруппы) = 0 Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Наименование не введено"; Сообщение.Сообщить(); Иначе ОткрытьФорму("Справочник.Контрагенты.ФормаГруппы",,ЭтаФорма) КонецЕсли КонецПроцедуры &НаСервере Функция СоздатьГруппуНаСервере(СтруктураСправочника) СправочникКонтрагенты = Справочники.Контрагенты; НоваяГруппа = СправочникКонтрагенты.СоздатьГруппу(); НоваяГруппа.Наименование = СтруктураСправочника.Наименование; Если ЗначениеЗаполнено(НоваяГруппа.Наименование) Тогда НоваяГруппа.Записать(); Возврат 1; Иначе Возврат 0; КонецЕсли; КонецФункции Он программно создаёт группу. Его нужно доработать,то есть нужно открывать форму группы справочника и программно заполнять соответствующие реквизиты. А записывать эту информацию или нет, решит пользователь. Попробовал всё что знаю и у меня не получилось . |
|||
1
Kassern
15.12.21
✎
13:37
|
(0) вы гуглили дальше по списку, который я вам отправлял?
|
|||
2
Alt321
15.12.21
✎
13:43
|
(1) да, сейчас у меня всё создаётся и записывается
Но сейчас задача заключается в том , что у меня 2 формы Одна 1(Моя) в которую записываются значения затем по кнопке создать группу открывается 2 форма(стандартная) и в неё должны переносится значения если это нужно |
|||
3
Kassern
15.12.21
✎
13:47
|
(0) Как вариант.
&НаКлиенте Процедура СоздатьОтчетКомиссионера(Команда) Форма = ПолучитьФорму("Документ.ОтчетКомиссионера.ФормаОбъекта"); ДанныеФормы = Форма.Объект; // Получаем объект формы в переменную ЗаполнитьДокументНаСервере(ДанныеФормы); // Заполняем документ на сервере КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); // копируем наш объект в объект формы и далее открываем ее Форма.Открыть(); КонецПроцедуры &НаСервере Функция ЗаполнитьДокументНаСервере(ДанныеФормы); Док = Документы.ОтчетКомиссионера.СоздатьДокумент(); Док.Дата=ТекущаяДата(); //Заполняем остальные поля ЗначениеВДанныеФормы(Док,ДанныеФормы); // Кладем обратно в объект формы уже созданный документ КонецФункции |
|||
4
Alt321
15.12.21
✎
13:48
|
(3) Спасибо , сейчас буду пробовать
|
|||
5
Alt321
15.12.21
✎
14:29
|
(3) &НаКлиенте
Процедура СоздатьГруппу(Команда) Форма = ПолучитьФорму("Обработка.ВводКонтрагентов.Форма.Форма"); //<-------- ДанныеФормы = Форма.Объект; СоздатьГруппуНаСервере(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервере Функция СоздатьГруппуНаСервере(ДанныеФормы) СправочникКонтр = Справочники.Контрагенты; НоваяГруппа = СправочникКонтр.СоздатьГруппу(); НоваяГруппа.Наименование = ДанныеФормы.Наименование; ЗначениеВДанныеФормы(НоваяГруппа, ДанныеФормы); //ЗначениеВДанныеФормы(ДанныеФормы, НоваяГруппа); КонецФункции Подскажи по коду: В переменную Форма , я должен класть форму стандартную или свою ? Потому что когда я передаю данные на сервер у меня почему-то не отображается что там что-то есть, только пустая строка |
|||
6
Kassern
15.12.21
✎
14:31
|
(5) "ПолучитьФорму("Обработка.ВводКонтрагентов.Форма.Форма")" - тут нужна форма нового объекта. В Вашем случае контрагента
|
|||
7
Alt321
15.12.21
✎
15:33
|
(6)
Похоже я до конца не понял Получить значения на клиенте всё ещё не могу у меня 2 формы: 1(моя) - Обработка.ВводКонтрагентов.Форма.Форма, 2(стандартная) - Справочник.Контрагенты.ФормаГруппы; Мне нужно из моей формы(Там 1 поле Наименование) при нажатии на кнопку открыть форму и перенести наименование во 2 форму. Но в данный момент когда я через дебаггер смотрю, то значения пустые "ДанныеФормы = Форма.Объект;" Код целиком &НаКлиенте Процедура СоздатьГруппу(Команда) Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаГруппы"); ДанныеФормы = Форма.Объект; СоздатьГруппуНаСервере(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервере Функция СоздатьГруппуНаСервере(ДанныеФормы) НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу(); НоваяГруппа.Наименование = ДанныеФормы.Наименование; //<---------- Если я поменяю "ДанныеФормы" на произвольную строку , то всё работает, а если хочу получить наименование с данных формы то там пустые строки ЗначениеВДанныеФормы(НоваяГруппа, ДанныеФормы); КонецФункции |
|||
8
Kassern
15.12.21
✎
15:36
|
(7) Структуру заполняемых полей передайте доп реквезитом:
СоздатьГруппуНаСервере(ДанныеФормы,СтруктураЗаполнения); А для новой группы: ЗаполнитьЗначенияСвойств(НоваяГруппа,СтруктураЗаполнения) |
|||
9
Alt321
15.12.21
✎
15:38
|
(8)
Ок, спасибо |
|||
10
Alt321
15.12.21
✎
16:27
|
&НаКлиенте
Процедура СоздатьГруппу(Команда) СозданиеГруппы = Новый Структура("Наименование"); СозданиеГруппы.Наименование = Наименование; Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаГруппы"); ДанныеФормы = Форма.Объект; СоздатьГруппуНаСервере(ДанныеФормы, СозданиеГруппы); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры &НаСервере Функция СоздатьГруппуНаСервере(ДанныеФормы, СозданиеГруппы) НоваяГруппа = Справочники.Контрагенты.СоздатьГруппу(); НоваяГруппа.Наименование = СозданиеГруппы.Наименование; ЗаполнитьЗначенияСвойств(НоваяГруппа, СозданиеГруппы); КонецФункции (9) ок функция теперь получает реквизит , но в конечном итоге почему-то не отображается во 2 форме заполнение |
|||
11
Kassern
15.12.21
✎
16:35
|
(10) Вы строчку одну забыли...
ЗначениеВДанныеФормы(НоваяГруппа,ДанныеФормы); |
|||
12
Alt321
15.12.21
✎
16:37
|
(11)
Я понял, Спасибо что помог |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |