|
ОбработкаЗаполнения(<ДанныеЗаполнения>) | ☑ | ||
---|---|---|---|---|
0
Mikhail Volkov
01.04.18
✎
18:05
|
В документе есть реквизит справочник. В структуру <ДанныеЗаполнения> этого справочника можно документ добавить, как?
|
|||
1
RomanYS
01.04.18
✎
19:30
|
Переведи.
|
|||
2
Darych
01.04.18
✎
19:46
|
(1)+1 нажрался-спи
|
|||
3
Zhuravlik
02.04.18
✎
01:48
|
ОбъектСправочника.Заполнить(ДокументИлиСтруктураСДаннымиИлиЧтоУгодно);
|
|||
4
Mikhail Volkov
02.04.18
✎
04:54
|
(3) Но где ДокументИлиСтруктураСДаннымиИлиЧтоУгодно указать? Из документа открывается форма списка справочника с заданными параметрами отбора по документу. В форме списка пользователь не нашел ничего подходящего, создает новый элемент. В этот момент хотелось задать свои <ДанныеЗаполнения>, точнее поправить их. Например, Владелец нового элемента справочника присутствует в <ДанныеЗаполнения>, но если он один. А если задан " в списке", то отсутствует в <ДанныеЗаполнения>.
|
|||
5
Mankubus
02.04.18
✎
06:15
|
(4) в событии ПередНачаломДобавления
|
|||
6
Mikhail Volkov
02.04.18
✎
15:58
|
(5) Спс, в спСписокПередНачаломДобавления() не учитывался случай, когда отбор задан списком. Добавил:
//если отбор установлен, будем заполнять реквизиты Для Каждого ЭлементОтбора Из СписокСправочника.Отбор Цикл Если (Не обЗначениеНеЗаполнено(ЭлементОтбора.Значение)) И (ЭлементОтбора.Использование) Тогда Если ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке Тогда //+МВ 02.04.2018 Если отбор задан списком, то преложим выбрать конкретное заначение ЗначениеИзСписка = ЭлементОтбора.Значение.ВыбратьЭлемент("Выберите из списка значение '" + ?(ПустаяСтрока(ОбъектМетаданных.Реквизиты.Найти(ЭлементОтбора.Имя)), ЭлементОтбора.Имя, ОбъектМетаданных.Реквизиты.Найти(ЭлементОтбора.Имя)) + "'"); Если ЗначениеИзСписка <> Неопределено Тогда ЭлементОтбора.ВидСравнения = ВидСравнения.Равно; ЭлементОтбора.Значение = ЗначениеИзСписка.Значение; КонецЕсли; КонецЕсли; //-МВ ИмяРеквизита = ЭлементОтбора.Имя; Если Найти("Код|Наименование|Владелец",ИмяРеквизита) > 0 Тогда НовыйЭлемент[ИмяРеквизита] = ЭлементОтбора.Значение; НовыйЭлемент.ОбработкаРеквизита(ИмяРеквизита); Иначе Реквизит = ОбъектМетаданных.Реквизиты.Найти(ИмяРеквизита); КонецЕсли; Если Реквизит = Неопределено Тогда Продолжить; КонецЕсли; По сути заменяю в отборе ВидСравнения.ВСписке на Равно, в форме списка справочника, и данные отбора переносятся в создаваемый элемент. Но полноты счастья нужно еще некоторые данные самого документа, которые отсутствуют в отборе. Как перенести ссылку документа, из которого открывается справочник, в создаваемый элемент этого справочника? |
|||
7
Вафель
02.04.18
✎
16:08
|
ВладелецФормы
|
|||
8
Mikhail Volkov
02.04.18
✎
17:51
|
(7) Открываю из списка справочника ЭтаФорма.ВладелецФормы - табличное поле, а из документа - ничего!?
|
|||
9
Mikhail Volkov
03.04.18
✎
07:43
|
+ Открываю справочник из документа ЭтаФорма.ВладелецФормы = Неопределено! Как получить ссылку документа, из которого он открыт?
|
|||
10
Mikhail Volkov
03.04.18
✎
07:55
|
(7) ВладелецФормы - это вроде как для подчиненных справочников?
Из справки: Если у формы есть владелец, то в свойстве ЗакрыватьПриЗакрытииВладельца устанавливается необходимость закрытия данной формы при закрытии формы-владельца. |
|||
11
Mikhail Volkov
03.04.18
✎
11:21
|
Нарыл Трюки 1С http://catalog.mista.ru/public/199307/ там показан способ передачи способ передачи ссылки документа, но только в форму выбора (списка) справочника:
- в форме документа: Процедура ДоверенностьНачалоВыбора(Элемент, СтандартнаяОбработка) Элемент.Подсказка = Элемент.Подсказка + "$Link$" + ЗначениеВСтрокуВнутр(Ссылка); КонецПроцедуры - в форме списка справочника: Процедура ПриОткрытии() Если НЕ спСписокПриОткрытии(ЭтаФорма,,глСтруктураОтбора) Тогда Возврат КонецЕсли; //+МВ 02.04.2018 Автомобиль по ссылке заказ-наряда ЭлементУправления = ЭтаФорма.ВладелецФормы; ТекстПодсказки = ЭлементУправления.Подсказка; ПозицияСсылки = Найти(ТекстПодсказки, "$Link$"); Если ПозицияСсылки > 0 Тогда ЗаказНаряд = ЗначениеИзСтрокиВнутр(Сред(ТекстПодсказки, ПозицияСсылки + 6)); Автомобиль = ЗаказНаряд.Автомобиль; ЭлементУправления.Подсказка = Лев(ТекстПодсказки, ПозицияСсылки - 1); КонецЕсли; //-МВ СправочникСписок.Порядок.Установить("ДатаВыдачи Возр"); ПоказыватьУстаревшие = Ложь; ПоказыватьУстаревшиеПриИзменении(ЭлементыФормы.ПоказыватьУстаревшие); КонецПроцедуры // ПриОткрытии() А в форме самого справочника этот способ не работает... Почему? |
|||
12
Mikhail Volkov
03.04.18
✎
16:46
|
Напрямую в форму справочника не передать ссылку документа, только через форму списка при создании нового элемента справочника?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |