|
Выбор/создание элемента справочника из формы списка. Подскажите, куда копать? | ☑ | ||
---|---|---|---|---|
0
Zhuravlik
08.04.13
✎
17:31
|
Добрый день. Конфа самописная на 8.1.
Делаю загрузку контрагентов из Excell. При этом в экселе контрагент может быть описан как-угодно (но одной строкой). В эту строку входит полное наименование, и реквизиты (Адрес юр. лица, физ. лица, телефоны и т.п) я пробовал разбивать строку на реквизиты, но это где проходит, где - убого, где вообще нечитаемо. Причем строка поиска может различаться (информативно не меняется, различия в сокращениях, точках, запятых т.е. был <"ООО" ЗАЗ, юр. адр.: такой-то> стал <"ООО" ЗАЗ юридический адр.: такой-то>) В итоге хочу чтобы пользователь сам вводил нового контрагента со всеми реквизитами, но так чтобы впоследствии этот контрагент уже подтягивался при загрузке файла. Хочу сделать так: в контрагентах добавляю атрибут "СтрокаПоиска", с галкой доп. упорядочивание. При загрузке файла делаю поиск по этому атрибуту с значением строки из экселя. Если Контрагент не найден, открываю форму списка контрагентов, куда передаю эту строку. В форме списка нужно при создании нового элемента указывать ему реквизит "СтрокаПоиска". В форме элемента в ПриОткрытии() я разбиваю эту строку на реквизиты, и пользователь уже их сам редактирует, как надо. Проблема в том, что я в 8 новичек, что сделать - знаю, а как - вопрос. И вот такие сейчас проблемы: 1) Как в форме списка отловить создание нового элемента, и установить ему значение реквизита? 2) Как в форме списка понять, что введенный элемент был записан, и выбрать его, закрыв саму форму? 3) Когда я в обработке открываю форму списка для ввода контра как получить ссылку на созданный/выбранный элемент? |
|||
1
Zhuravlik
08.04.13
✎
17:38
|
+ В форме списка, на закладке "реквизиты" добавил "СтрокаЗагрузки", вызываю на открытие так:
Список = Справочники.Контрагенты.ПолучитьФорму("ФормаСписка_Загрузка"); Список.СтрокаЗагрузки = стр; Список.ОткрытьМодально(); Код формы списка: Процедура ВводКонтрагента() спрКонтрагенты = Справочники.Контрагенты.СоздатьЭлемент(); спрКонтрагенты.СтрокаВыгрузки = СтрокаЗагрузки; спрКонтрагенты.ПолучитьФорму("ФормаЭлемента").ОткрытьМодально(); КонецПроцедуры Процедура ПриОткрытии() РежимВыбора = Истина; ЗакрыватьПриВыборе = Истина; ВводКонтрагента(); КонецПроцедуры Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) ОповеститьОВыборе(ЗначениеВыбора); КонецПроцедур |
|||
2
Zhuravlik
08.04.13
✎
17:41
|
+ Но это я в ПриОТкрытии() создаю. И коряво получается, что открывается модально форма списка, потом - форма элемента.
А по инсерту, как мне открыть форму нового элемента, чтобы у него СтрокаВыгрузки = СтрокаЗагрузки? |
|||
3
Maxus43
08.04.13
✎
17:43
|
>>Проблема в том, что я в 8 новичек, что сделать - знаю, а как - вопрос
у меня после (0) проблема с пониманием что делать, а не как делать |
|||
4
Zhuravlik
08.04.13
✎
17:47
|
(3) Наверное не следовало мне свою задачу пытаться описать, эт я зря. Просто обычно когда задаешь вопрос, обычно спрашивают "Что ваяешь"? Ну, я сразу и написал.
Ну может по вопросам кто-нибудь подскажет? 1) Как в форме списка отловить создание нового элемента, и установить ему значение реквизита? 2) Как в форме списка понять, что введенный элемент был записан, и выбрать его, закрыв саму форму? 3) Когда я в обработке открываю форму списка для ввода контра как получить ссылку на созданный/выбранный элемент? |
|||
5
Dionis Sergeevich
08.04.13
✎
18:13
|
Подписки на события
|
|||
6
MKZM
08.04.13
✎
19:16
|
В форме списка
Процедура СправочникСписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, ЭтоГруппа) Отказ=Истина; ТекНоменклатура = Справочники.Контрагенты.ДобавитьНовогоКонтрагента(ЭтаФорма); КонецПроцедуры А в менеджере Функция ДобавитьНовогоКонтрагента(ФормаВладелец="") Экспорт Разные строчки КонецФункции |
|||
7
Zhuravlik
08.04.13
✎
19:22
|
(6) Не найду предопределенной "ПередНачаломДобавления", у меня 8.1, вы не путаете?
|
|||
8
MKZM
08.04.13
✎
19:23
|
Может. Посмотрю.
|
|||
9
MKZM
08.04.13
✎
19:24
|
Под рукой нет 8 и 1. Не смогу посмотреть.
|
|||
10
Zhuravlik
08.04.13
✎
19:25
|
(8)(9) Нет-нет, это я стормозил. Это предопределенная для табличного поля, а я искал в свойствах формы списка, спасибо за совет.
|
|||
11
Zhuravlik
08.04.13
✎
19:48
|
(6) Получилось! Как надо. А как программно вызвать событие добавления новой строки?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |