|
v7: Как при открытии строки таб. части указать родителя чтобы справочник открылся уже с нужной | ☑ | ||
---|---|---|---|---|
0
Teh
05.03.18
✎
11:42
|
Добрый день!
Есть документ с табличной частью. В каждой строке табличной части необходимо указать основное средство. Но хочется чтобы папка открывалась сразу машины и оборудование например, а не корень. Как это можно настроить? |
|||
1
Хряк
05.03.18
✎
11:52
|
а программа то откуда узнает, что надо машины и оборудование открыть?
|
|||
2
Torquader
05.03.18
✎
11:52
|
А разве оно автоматом так не делает, если вообще без кода открывать ?
|
|||
3
Torquader
05.03.18
✎
11:53
|
Потом, можно открыть форму, установить текущий элемент в папку, которая нужна - должно открыть то, что нужно.
|
|||
4
Teh
05.03.18
✎
11:54
|
У меня в шапке есть основное средство. В таблице нужно указать из той же папки что и оно.
Спр = СоздатьОбъект("Справочник.ОсновныеСредства"); Спр.НайтиПоКоду(ОС_Шапка.Код); Род=Спр.Родитель; Переменная Род будет содержать родителя. |
|||
5
Teh
05.03.18
✎
11:56
|
(2) стандартно открывает справочник верхний уровень
|
|||
6
Teh
05.03.18
✎
12:00
|
(2) делает, если вручную строку создавать, после того как в предыдущей указано ос. Только у меня строки заполнены процедурой. И при открытии все время в верхний уровень открывает.
|
|||
7
Torquader
05.03.18
✎
12:03
|
// где-то примерно так.
Если ОткрытьФорму(,,Context)=1 Тогда Если Спр.НайтиЭлемент(ЭлементВШапкеФормы)=1 Тогда Context.ТекущийЭлемент=Спр.ТекущийЭлемент(); КонецЕсли; КонецЕсли; |
|||
8
IvaneS
05.03.18
✎
12:03
|
А делай переменную в справочнике пользователя "ЛюбимаяПапкаОС" и по умолчанию фокусируй туда.
Можно при закрытии формы списка ОС запомнить позицию и вернуть при открытии... Последний я часто использовал))) |
|||
9
Ёпрст
05.03.18
✎
12:04
|
(4) в ПриНачалеВыбораЗначения пишешь
Если Ид = "ИмяРеквизитаВТабЧасти" Тогда СтатусВозврата(0); конт = ""; ОткрытьФорму("Справочник.ОсновныеСредства",Конт); Конт.ИспользоватьРодителя(ОснСредствоИзШапки.Родитель,1); КонецЕсли; |
|||
10
Teh
05.03.18
✎
13:48
|
(9) Спасибо, получилось. Остальные варианты слишком сложные для меня показались.
Процедура ПриНачалеВыбораЗначения(Ид) Спр = СоздатьОбъект("Справочник.ОсновныеСредства"); Спр.НайтиПоКоду(ОС_Шапка.Код); Род=Спр.Родитель; Если Ид = "ОС_Новый" Тогда СтатусВозврата(0); конт = ""; ОткрытьФорму("Справочник.ОсновныеСредства",Конт); Конт.ИспользоватьРодителя(Род,1); КонецЕсли; КонецПроцедуры Всем благодарности. |
|||
11
1Сергей
05.03.18
✎
13:50
|
(10) лишняя писанина и потенциальная ошибка
|
|||
12
Teh
05.03.18
✎
13:55
|
(11) У меня до этого была процедура, которая создавала для ОС шапка папку и перемещала его туда. И проверка чтобы при повторном вызове не создавалась еще одна папка. Проверка не срабатывала, пока я не переписала "Род=ОС_Шапка.Родитель" в то что у меня (писанина). Хотя если я открывала это поле и закрывала, видимо в форме перечитывалось значение нового родителя и проверка работала. В общем может и лишняя, главное чтоб сюрпризов не было.
|
|||
13
Teh
05.03.18
✎
14:07
|
Все это делаю для разового разделения основных средств оприходованных на одну карточку (количества больше одного).
Выбираю основное средство, потом выбираю по нему документы прихода и перемещения. Для ос_шапка создаю папку и перемещаю его туда (для визуального удобства). Создаю дубли по количеству на остатке, записываю в ту же папку. Заполняю ими ячейки строк служебного документа (ос_новый) в тех строках где стоит документ прихода. А вот в строках перемещения возможно останется выбирать вручную, вот тогда пригодится открытие в нужной папке. Хотя может еще придумаю как это прописать автоматом. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |