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