|
Автоматическое заполнение поля | ☑ | ||
---|---|---|---|---|
0
galimovmaks
13.09.13
✎
12:18
|
Есть документ. на его основании создаю договор. Надо чтобы в поле документа автоматически подставлялось название договора при его создании. прошу помочь.
|
|||
1
Fish
13.09.13
✎
12:19
|
А что не получается?
|
|||
2
galimovmaks
13.09.13
✎
12:22
|
(1) нет. я бы не спрашивал если знал
|
|||
3
Fish
13.09.13
✎
12:56
|
(2) Имелось ввиду что конкретно не получается.
|
|||
4
galimovmaks
13.09.13
✎
13:01
|
(3) в документе есть реквизит договор с типом "Справочники.ДоговорыКонтрагентов". и есть кнопка "Создать договор". нажимаю на кнопку, создается новый договор. наименование пользователь может ввести свое. НУЖНО при нажатии на кнопку ОК в новом договоре, наименование подставлялось в реквизит документа.
|
|||
5
galimovmaks
13.09.13
✎
13:01
|
так понятно что не получается?
|
|||
6
Fish
13.09.13
✎
13:17
|
(5) Цель понятна, непонятно, что конкретно у тебя не получается сделать. Давай код, как делаешь.
|
|||
7
galimovmaks
13.09.13
✎
14:32
|
Процедура СоздатьНовыйДоговор(НовыйДоговор) Экспорт
//Создадим новый договор НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); НовыйДоговор.Владелец = Контрагент; НовыйДоговор.Организация = Организация; НовыйДоговор.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить(); НовыйДоговор.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам; НовыйДоговор.ВидДоговора = ВидДоговора; НовыйДоговор.франТипДоговора = ТипДоговора; НовыйДоговор.Дата = ДатаНачалаДоговора; НовыйДоговор.СрокДействия = ДатаОкончанияДоговора; НовыйДоговор.Номер = Номер; НовыйДоговор.Наименование = "Договор № " + Номер + " от " + Дата; НовыйДоговор.ИЛ_ОсновнойМенеджер = Специалист; ОткрытьЗначение(НовыйДоговор); Если НовыйДоговор.ЭтоНовый() Тогда ДоговорКонтрагента = НовыйДоговор.Наименование; КонецЕсли; КонецПроцедуры |
|||
8
galimovmaks
13.09.13
✎
14:32
|
(6) вот. в модуле объекта документа прописываю
|
|||
9
galimovmaks
13.09.13
✎
14:40
|
(6) но ведь договор создается при нажатии ОК. вот надо этот момент поймать. не пойму как
|
|||
10
Fish
13.09.13
✎
14:46
|
(9) Например, можно открывать форму нового договора не через ОткрытьЗначение(НовыйДоговор);, а через получение и открытие формы. Тогда ей можно задать форму-владельца (твой док). И при записи оповещать о том, что элемент создан.
|
|||
11
Fish
13.09.13
✎
14:48
|
+(10) Хотя может, я не совсем прав и для оповещения необязательно указывать владельца. В общем кури метод Оповестить(<ИмяСобытия>, <Параметр>, <Источник>)
|
|||
12
Красный рассвет
13.09.13
✎
14:50
|
(9) Ищи "перекрестные ссылки"
|
|||
13
Fish
13.09.13
✎
14:50
|
(9) Или так:
Форма (Form) ОповеститьОЗаписиНовогоОбъекта (NotifyWriteNewObject) Синтаксис: ОповеститьОЗаписиНовогоОбъекта(<Объект>) Параметры: <Объект> (обязательный) Тип: Ссылка на объект информационной базы. Добавленный объект. Описание: Посылает оповещение владельцу формы о записи нового объекта и передает ему ссылку на этот объект. Доступность: Толстый клиент. Примечание: Может быть использован, если добавление нового объекта при помощи подчиненной формы необходимо обработать в форме владельце. Пример: ОповеститьОЗаписиНовогоОбъекта(ДобавленнаяСтрока); См. также: Форма, событие ОбработкаЗаписиНовогоОбъекта |
|||
14
galimovmaks
13.09.13
✎
15:10
|
(12) у них только контрагент и общий.
|
|||
15
galimovmaks
16.09.13
✎
07:36
|
(13) вот так написал
Форма=НовыйДоговор.ПолучитьФорму("ФормаЭлемента"); ОткрытьФорму(Форма); Оповестить("ЗакрытьФорму", , Форма); с оповестить что делать? |
|||
16
Мимохожий Однако
16.09.13
✎
07:46
|
Конфигурация типовая?
|
|||
17
galimovmaks
16.09.13
✎
07:51
|
да ут 10.3
|
|||
18
galimovmaks
16.09.13
✎
07:57
|
(16) (13) в модуле формы написал
СоздатьДоговорСервер(НовыйДоговор); ЭтаФорма.ОповеститьОЗаписиНового(НовыйДоговор); ЭтаФорма.Объект.ДоговорКонтрагента = НовыйДоговор.Наименование; работоет, но только если реквизит ДоговорКонтрагента строкового типа (а мне нужно СправочникСсылкаДоговорыКонтрагентов), и в момент открытия формы договора. а если пользователь изменит наименование, тогда новое не запишется. |
|||
19
galimovmaks
16.09.13
✎
08:06
|
(18) работает и без этой строчки ЭтаФорма.ОповеститьОЗаписиНового(НовыйДоговор);
может ктонибудь подскажет как правильно этим методом воспользоваться? |
|||
20
Мимохожий Однако
16.09.13
✎
08:09
|
В конце процедуры после записи элемента справочника Договры попробуй ДоговорКонтрагента = НовыйДоговор.Ссылка;
|
|||
21
galimovmaks
16.09.13
✎
08:39
|
(20) неа. в поле ссылка нет ни какого значения
|
|||
22
cw014
16.09.13
✎
08:42
|
роцедура СоздатьНовыйДоговор(НовыйДоговор) Экспорт
//Создадим новый договор НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); НовыйДоговор.Владелец = Контрагент; НовыйДоговор.Организация = Организация; НовыйДоговор.ВалютаВзаиморасчетов = Константы.ВалютаРегламентированногоУчета.Получить(); НовыйДоговор.ВедениеВзаиморасчетов = Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам; НовыйДоговор.ВидДоговора = ВидДоговора; НовыйДоговор.франТипДоговора = ТипДоговора; НовыйДоговор.Дата = ДатаНачалаДоговора; НовыйДоговор.СрокДействия = ДатаОкончанияДоговора; НовыйДоговор.Номер = Номер; НовыйДоговор.Наименование = "Договор № " + Номер + " от " + Дата; НовыйДоговор.ИЛ_ОсновнойМенеджер = Специалист; НовыйДоговор.ОткрытьФормуМодально("ФормаЭлемента"); Если ЗначениеЗаполнено(НовыйДоговор.Ссылка) Тогда ДоговорКонтрагента = НовыйДоговор.Ссылка; КонецЕсли; КонецПроцедуры P.S. Самый простой вариант - с тебя 300 рублев |
|||
23
Мимохожий Однако
16.09.13
✎
08:48
|
(21)Записать элемент справочника пробовал?
|
|||
24
galimovmaks
16.09.13
✎
08:50
|
(22) ну вот так исправил
Форма = НовыйДоговор.ПолучитьФорму("ФормаЭлемента"); ОткрытьФормуМодально(Форма); Если ЗначениеЗаполнено(НовыйДоговор.Ссылка) Тогда ДоговорКонтрагента = НовыйДоговор.Ссылка; КонецЕсли; по отладчику да, все работает. значение подставляется. а в пользовательском как не было ни чего, так и нет(( |
|||
25
galimovmaks
16.09.13
✎
08:51
|
(23) так пользователь сам должен записывать. вдруг он наименование изменит
|
|||
26
cw014
16.09.13
✎
09:01
|
(24) А элемент на форме "ДоговорКонтрагента" связан с твоей переменной "ДоговорКонтрагента"?
|
|||
27
Мимохожий Однако
16.09.13
✎
09:04
|
Вместо модального открытия окна элемента справочника можно задать вопрос пользователю: "Наименование нового договора?".
Когда введет ответ, тогда создать , сохранить новый договор и привязать к реквизиту документа. |
|||
28
galimovmaks
16.09.13
✎
09:04
|
(26) конечно!
|
|||
29
Мимохожий Однако
16.09.13
✎
09:07
|
(25)Неплохо бы научить пользователя нажимать лупу рядом с полем Договор. Тогда не нужны будут извращения по заполнению наименования в момент создания договора.
|
|||
30
galimovmaks
16.09.13
✎
09:12
|
(27) мне кажется это тоже самое, только диалог возникает и все
|
|||
31
cw014
16.09.13
✎
09:19
|
(28) Значит у тебя где-то очепятка... Или одно из двух...
|
|||
32
galimovmaks
16.09.13
✎
09:22
|
(31) опечатки точно нет. проверил
|
|||
33
galimovmaks
16.09.13
✎
09:24
|
(31) а есть разница, в модуле объекта или модуле формы заполнять реквизит?
|
|||
34
Мимохожий Однако
16.09.13
✎
09:28
|
(33)Разница есть. У объекта может куча форм с одноименными реквизитами, которые связаны с реквизитами под другим именем.
|
|||
35
galimovmaks
16.09.13
✎
09:30
|
(34) (22) все разобрался сделал) спасибо большое за помощь
|
|||
36
galimovmaks
16.09.13
✎
09:33
|
вот как сделал. в модуле формы прописал
&НаСервере Процедура СоздатьДоговорСервер(НовыйДоговор) Документ = РеквизитФормыВЗначение("Объект"); Параметр = Новый Структура("Ключ",Документ.СоздатьНовыйДоговор(НовыйДоговор)); Форма = ПолучитьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента",Параметр,ЭтаФорма); ОткрытьФормуМодально(Форма); Если ЗначениеЗаполнено(НовыйДоговор.Ссылка) Тогда ЭтаФорма.Объект.ДоговорКонтрагента = НовыйДоговор.Ссылка; КонецЕсли; КонецПроцедуры |
|||
37
cw014
16.09.13
✎
09:37
|
(36) А, нуда, Объект.ДоговорКонтрагента = НовыйДоговор.Ссылка;
ЭтаФорма. можешь убрать |
|||
38
galimovmaks
16.09.13
✎
09:45
|
(37) ага, точно. спасибо
|
|||
39
cw014
16.09.13
✎
09:46
|
(38) С тебя 300 рублев :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |