Как добавить кнопку "Ввести на основании" на форму обработки #596303


#0 by mvgfirst
Создал обработку. Добавил в нее табличную часть. В табличной части добавил реквизит с типом "ДокументССылка". На форму обработки добавил Табличное поле отображающее эту самую табличную часть. Хочу добавить панель с кнопками выше табличного поля. Не могу понять как добавить кнопку "Ввести на основании" аналогичную одноименной кнопке в форме списка документом. Порылся в типовых... похожего решения не обнаружил.... Прошу помощи, советом или может даже готовым решением.
#1 by Капитан О
если не появляется при автозаполнении командной панели, то рисовать свою придётся
#2 by mvgfirst
Не появится... это же табличная форма на обработке.
#3 by Капитан О
конфигуратор придуман как раз для конфигурирования
#4 by mvgfirst
Намек слишком утончен что бы я мог понять.... :(
#5 by Капитан О
передаю открытым текстом: сделай свою кнопку
#6 by mvgfirst
Это понятно. Каким образом? Писать самому функционал поиска в метаданных документов вводимых на основании текущего?
#7 by mvgfirst
Кто нибудь делал такую кнопку? Поделитесь алгоритмом.
#8 by BuHu
ты свой журнал документов что ли рисуешь или что ?
#9 by BuHu
какой там алгоритм , проверяешь позиционирования на строке в таблице , проверяешь что в строке есть документ на основании которого собираешься вводить новый , создаешь новый документ нужного типа , заполняешь по основанию .
#10 by mvgfirst
Ну не журнал, обработка выводит список документов двигающих определенный товар. И вот пользователь желает из этого списка переходить на журнал (это я нашел как сделать) и вводить на основании. Как раз прикол в том что я не знаю какого типа документ будет вводить на основании пользователь. В стандартном функционале при нажатии на эту кнопку выводится список документов которые могут быть введены на основании данного. Получатся нужно через перебор метаданных создавать свой список и выводить рядом с кнопкой?
#11 by Reset
У своего табличного поля ставишь тип значение документ-список (нужный из) Над полем добавляешь панель интсрументов с источником действий - твоим таб полем. Далее или включаешь автозаполнение, или добавляешь кнопку с действием "ввести на основании"
#12 by Reset
+ на список наклыдваешь отбор. P.S. Все эти действия - для того, что самому не рисовать кнопку.
#13 by Reset
Если отбор не хочется, то похоже на "Получатся нужно через перебор метаданных создавать свой список и выводить рядом с кнопкой"
#14 by Reset
Ну, не рядом, а здесь из кнопки красивое подменю
#15 by Reset
а сделать*
#16 by BuHu
вроде как у документа есть "является основанием для..." -вывести список выбора
#17 by Reset
Наоборот, "ВводитсяНаОсновании" есть - в метаданных. Ну ТС про это знает)
#18 by mvgfirst
Ну понятно, я так и думал. Что ж... займусь "изобразительным творчеством".
#19 by Reset
Да ладно, чего там,  простой цикл :)
#20 by BuHu
мне почему то кажется что и имеет место быть
#21 by Reset
неа
#22 by BuHu
не оно?
#23 by Reset
Нет.
#24 by BuHu
а что это? или эти данные нигде не хранятся ?
#25 by Reset
Хранятся, но во ВводитсяНаОсновании, в тех объектах, которые там перечислены. Это форма для удобства так сделана.
#26 by mvgfirst
В СП нашел только "ВводитсяНаОсновании" свойство метаданных документа: Использование: Только чтение. Описание: Тип: КоллекцияЗначенийСвойстваОбъектаМетаданных. Коллекция объектов конфигурации, данные которых могут являться основанием для ввода нового объекта базы данных этого типа. Доступность: Сервер, толстый клиент, внешнее соединение.
#27 by Reset
+ Это логично, зачем связи хранить дважды.
#28 by mvgfirst
Т.е. перебор всех документов и анализ свойства "ВводитсяНаОсновании" для каждого из них. Ищем там свой документ - и если поиск удался ... добавляем в список?! Прикольно. Вопрос - неужели это ранее никто не реализовывал? И в типовых нигде нет?
#29 by Reset
"Ищем там свой документ - и если поиск удался ... добавляем в список?!" Да. Сделай таки ради меня не список, а красивое меню) Панель.Кнопки.КнопкаПодменюВвестиНаОсновании.Кнопки.Добавить; :)
#30 by mvgfirst
Ну это уж полюбому :) Придеццо делать теперь именно так )))
#31 by mvgfirst
Учитывая что в таблице в которой у меня хранятся документы, будут содержаться документы разного вида, придется этот цикл по заполнению выполнять в событии "ПриАктивизацииСтроки". Отсюда вопрос - не будет ли визуальных эффектов связанных с переформированием данного списка при смене строки?
#32 by mvgfirst
Имеются ввиду - нежелательные визуальные эффекты, такие как мерцания кнопки или еще что в этом духе. Или правильнее составить список вводимых на основании для каждого вида документа которые будет в этой таблице, и хранить его в качестве кеша, а уж оттуда подгружать при смене вида документа. Почему спрашиваю - насколько целесообразно заморачиватся с такого рода кешированием.... или достаточно будет просто переформировывать список, каждый раз при смене строки пробегая по всем метаданным.
#33 by Reset
Мне кажется, заметно не будет (визуально), ну кроме как на совсем медленных компьютерах. Никаких обращений к БД тут нет, а перформируемое подменю "невидимо"
#34 by Reset
Обработчик на каждый пункт подменю один и тот же, в котором по имени кнопки можно получать требуемое имя метаданных (для создания на основании)
#35 by Reset
Ну да, получается некотjрая возьня, зато кнопка будет как родная :-) (особенно если картинку ей установить такую же)
#36 by Baximilian
Есть у меня вопрос, не проще ли создать свой журнал документов? Засунуть туда все документы которые тебе надо и все, будете тебе кнопка.
#37 by Reset
На журнал отбор придется ставить, у него не все документы предполагаются в таблице
#38 by Reset
+ А если отбор не простой, придется типа ссылка в делать, а это тормоза.
#39 by Baximilian
а постоянное беганье по метаданным, это легко? да и если у него такие отборы, он их все равно выполняет только в запросе когда список строит, не так ли?
#40 by Reset
Гарантированно не тормозящий вариант - повесить подменю на правый клик (тогда придется меня рисвоать только при нажатии). Но придется учить ее (правую кнопку) нажимать. Многие не умеют ;)
#41 by mvgfirst
Вот про журнал и отбор, не совсем понимаю. Как это мне поможет. Вернее понимаю как журнал поможет вывести кнопку... но как это будет работать в контексте моей задачи... Объясню - есть серийный номер. Он првязан к какому-то товара. При вводе серийного номера пользователем, обработка выбирает все документы в которых использовался этот товар с этим серийным номером. И выводит их в табличную часть на обработке. Каким боком тут можно использовать журнал?! Я шото недоганяю... приведите пример пожалуйста... может и вправду есть более элегантное решение.
#42 by Baximilian
Ну тут тебе еще и критерий отбора надо будет сделать, и все заработает.
#43 by mvgfirst
Ага, кажись доганяю. С помощью запроса получаю список документов которые нужно вывести в журнал. Потом в журнале добавляю отбор у которого ставлю условие "В списке" и указываю список документов который нужен. И получаю журнал только с нужными ме документами.
#44 by Baximilian
хотя может я и не прав, в документах используется только товар или и серийный номер?
#45 by mvgfirst
Ну что же... идея рабочая... только вот как форму журнала разместить на форме моей обработки. Т.к. если пользователь введет часть серийного номера - то в обработки выводится список товаров которые содержат этот фрагмент серийного номера, а потом уже при перемещении по этому списку отображается перечень документом для каждого товара.
#46 by Baximilian
ну это ты предложил точно работающий вариант.
#47 by Reset
Это я ее предложил в . Разве документ-список заменить на журнал )
#48 by mvgfirst
Это типовая конфигурация УТП В документах есть две табличные части Товары и СерийныеНомера. Связаны по полю "Ключ связи". При этом серийные номера - это подчиненный справочник у справочника номенклатура. Но сложность заключается в том что если ведется учет по характеристикам - то соответствие конкретного серийного номера можно выловить только из документа.
#49 by mvgfirst
Т.е. я правильно понял, я могу положить на форму обработки табличное поле любого журнала, так?
#50 by Baximilian
да, так как ДокументСписок, там можно выбрать ЖурналСписок, или как то так
#51 by Reset
конечно, тип значения у табличного поля установить нужный из ЖурналДокументовСписок, далее по тексту)
#52 by Baximilian
ЖурналДокументовСписок вот, подсмотрел)
#53 by mvgfirst
Фигасе! Вот жеж... век живи век учись. Все класно, идея очень даже мне нравится. Есть только одно но - для этого придется добавлять объект типа журнал в конфигурацию. Что лишает обработку универсальности. Изначально эта обработка планировалась как "Дополнительная внешняя форма" подключаемая через всем-известный функционал типовых конфигураций.
#54 by Reset
Это если не подойдет ни один из существующих. Кроме того, хотел бы еще раз сказать что отбор типа "ссылка в списке" может существенно тормозить, если список ссылок достаточно большой. Потестируй.
#55 by mvgfirst
Мне кажется "ссылка в списке" на вид документа - должна полюбому попасть в какой-то из индексов. Тормозить не должна. Да и по одному товару не может быть "огромного действительно влияющего на скорость" списка документов.
#56 by mvgfirst
Посмотрел существующие журналы, больше всего подходит Журнал "Складские документы". Т.к. в нем есть все документы которые часто используются в бизнес-процессах покупки и продажи товара. Но вот смущает что табличная часть "Серийные номера" существует еще и в других документах (которые не включены в журнал складские документы) таких как например "Авансовый отчет". Т.е. получается если недайбог кто-то что-то купить по авансовому отчету да еще с серийным номером - в журнале я не смогу отбразить этот документ. Вот и получается что, если делать обработку "для людей" что бы могли использовать все кому надо (например скачав с Инфостарта) - журнал не подходит. Получается выход один? Рисовать собственные кнопки?
#57 by mvgfirst
Хотя Журнал - в 100500 раз более "красивое" решение. Т.к. пользователь сам сможет настроить список нужных ему полей, да и работать будет как с журналом... без каких либо ограничений связанных с тем что я что-то упустил или недодумал в процессе разработки "своих кнопок".
#58 by mvgfirst
Еще вопрос, если я наложу на журнал отбор, как запретить пользователю его снять, не запревщая при этом добавлять свои отборы в дополнение к уже установленному?
#59 by Reset
Отбор по ссылку интерактивно не снимается.
#60 by Reset
по ссылке*
#61 by mvgfirst
Вообщем пока сделал так: Добавил на форму обработки табличное поле, и командную панель. В командной панели ИсточникДанных = ТабличноеПоле. Автозаполнение = Истина. В методе "ПриАктивизацииСтроки" списка товаров написал:
#62 by mvgfirst
В качестве источника данных использовал ЖурналДокументов.СкладскиеДокументы
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С