| 
    
        
     
     | 
    
    
  | 
v7: Выполнение процедур документа из другого документа. | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Enlighted    
     22.02.17 
            ✎
    22:07 
 | 
         
        Добрый день люди.
 
        Есть задача: требуется в документе сформировать список просроченных документов (A), а затем весь этот список дружно оплатить и закрыть. Закрываются и оплачиваются они все другим документом(Х), который вызывает документ(У) расчёт процентов. Причем на каждый просроченный документ нужно создать по одному документу (X) соответственно и по одному документу (У). Сначала возникла идея создавать документ (Х) из документа (А) со списком и запускать его процедуры в ОткрытьФормуМодально(...,Х,0) но выяснилось что таким образом невозможно запустить процедуры документа (Х). Затем появилась идея закинуть куски кода (Х) и (У) в код документа (А), но она отпала потому что если понадобится откорректировать какое то из этих закрытий, то их потом не найти. Да и эти закрытия в журнале документов потом нужны на каждый просроченный документ. Может кто подскажет как реализовать множественное создание документов и запуск их внутренних процедур, без участия пользователя? Приветствуются ссылки на костыли и велосипеды. Грабли в конструкции не подойдут.  | 
|||
| 
    1
    
        Enlighted    
     22.02.17 
            ✎
    22:10 
 | 
         
        (0) Извиняюсь в третьей строке (А) следует не читать.     
         | 
|||
| 
    2
    
        Злопчинский    
     22.02.17 
            ✎
    23:01 
 | 
         
        конт ="";
 
        ОткрытьФорму(КакойТоТекущийДокумент,конт); Конт.КакаяТоПроцедура(парам1,Парам2);  | 
|||
| 
    3
    
        Enlighted    
     22.02.17 
            ✎
    23:16 
 | 
         
        (2) Форма откроется, а документ то создастся?     
         | 
|||
| 
    4
    
        Enlighted    
     22.02.17 
            ✎
    23:58 
 | 
         
        (2) Тут же вопрос а как передать номер документа который надо закрыть, если при вызове ОткрытьФорму, управление передаётся новому документу.     
         | 
|||
| 
    5
    
        Злопчинский    
     23.02.17 
            ✎
    01:53 
 | 
         
        (3) почитай в СП про ОткрытьФорму - или сам создавайдокумент и передавай его ссылку или вызывай открытьФорму в режиме ввода нового.
 
        Конт.Форма.Закрыть(); //но тут будут траблы ибо при закрытии задастся вопрос о записи изменений а они скорее всего будут... самый правильный вариант - формы не трогать, все создавать программно. ПОВТОРЯЕМЫЕ КУСКИ КОДА вынести в отдельные процедуры - чтобы менять водном месте. (и эти процедуры будут отрабатывать и при интерактивном манипулировании документом и при программно если ты это вставишь в программный код) также посмотри в формексе возможность выполненяи процедур документа  | 
|||
| 
    6
    
        Злопчинский    
     23.02.17 
            ✎
    01:57 
 | 
         
        (4) > если при вызове ОткрытьФорму, управление передаётся новому документу.
 
        - утверждение неверное. управление передается ПОСЛЕ открытия формы.  | 
|||
| 
    7
    
        Злопчинский    
     23.02.17 
            ✎
    02:00 
 | 
         
        (0) > со списком и запускать его процедуры в ОткрытьФормуМодально(...,Х,0) но выяснилось что таким образом невозможно запустить процедуры документа (Х).
 
        - утверждение неверное. формируй список параметров, передавай его в ОткрытьФормуМодально, в проуедцре ПриОткрытии - анализируй переданные параметры и делай что надо (посмотреть можно в типовых) например Процедура ПриОткрытии() ЧтоДелать = Форма.Параметр.Получить("КОМАНДА"); Если ЧтоДелать = "НапечататьСЧФ" Тогда ПечатьСЧФ(); CnfnecDjpdhfnf(0); Возврат; КонецЕслИ;  | 
|||
| 
    8
    
        Enlighted    
     23.02.17 
            ✎
    09:57 
 | 
         
        (7) Лабагадарю сейчас буду пробовать. А при закрытии документа вызванным открыть форму, управление обратно возвратится в документ из которого была вызвана форма?     
         | 
|||
| 
    9
    
        Злопчинский    
     23.02.17 
            ✎
    10:01 
 | 
         
        (8) если модально то да 
        И если открывать немодально то тоже  | 
|||
| 
    10
    
        bodri    
     23.02.17 
            ✎
    10:37 
 | 
         
        Если документ (Х) автоматически создает документ (У), тогда документы (А) заполняем в таблицу обработки (или документа), заполняем документы (Х), проводим, а они на основании себя делают документы (У)     
         | 
|||
| 
    11
    
        Enlighted    
     24.02.17 
            ✎
    01:00 
 | 
         
        Фигня какая-то, вызываю:
 
        ОткрытьФормуМодально("Документы.ЗБ",НомерЗБ,1); в вызываемом документе стоит это: АтрибутВызоваФормы = Форма.Параметр; Если ПустоеЗначение(АтрибутВызоваФормы) = 0 Тогда сообщить("апчхи"); КонецЕсли; Даже не чихает!  | 
|||
| 
    12
    
        Злопчинский    
     24.02.17 
            ✎
    01:05 
 | 
         
        (11) номер трибэ содержит пустое значение     
         | 
|||
| 
    13
    
        Злопчинский    
     24.02.17 
            ✎
    01:10 
 | 
         
        (11) опять же в каком месте это стоит? Если ты открываешь форму нового документа то смотри порядок вызова предопределённых процедур     
         | 
|||
| 
    14
    
        Enlighted    
     24.02.17 
            ✎
    01:16 
 | 
         
        НомерЗБ не пустой, условие стоит в процедуре ПриОткрытии     
         | 
|||
| 
    15
    
        rt0107    
     24.02.17 
            ✎
    01:20 
 | 
         
        ОткрытьФормуМодально() - изначальное зло, если чо. Включая поток исполнения. За разъяснениями - к более сведущим, но заставить их работать адекватно - тот ещё танец.     
         | 
|||
| 
    16
    
        Злопчинский    
     24.02.17 
            ✎
    01:30 
 | 
         
        (14) на ввод нового код перенести попробуй 
        Хотя и так должен работать  | 
|||
| 
    17
    
        Злопчинский    
     24.02.17 
            ✎
    01:32 
 | 
         
        (15) не знаю, 
        Всегда открыть форму модель но работало нормально как задумывадось  | 
|||
| 
    18
    
        Enlighted    
     24.02.17 
            ✎
    01:36 
 | 
         
        экспериментальным путём выяснил что ОткрытьФормуМодально не отрабатывает. Форма не открывается вообще. Хотя в параметрах указано верное название типа документа.     
         | 
|||
| 
    19
    
        Enlighted    
     24.02.17 
            ✎
    01:56 
 | 
         
        Ухты во какую ошибку выдало:
 
        {Документ.АвтоЗакрытиеПросрочек.Форма.Модуль(88)}: Неудачная попытка создания объекта (Документы.ВозвратСсуды)  | 
|||
| 
    20
    
        rt0107    
     24.02.17 
            ✎
    02:05 
 | 
         
        (19) ДокументЫЫЫЫ     
         | 
|||
| 
    21
    
        Enlighted    
     24.02.17 
            ✎
    02:13 
 | 
         
        убрал, ошибка ушла, однако форма документа не открывается всё равно     
         | 
|||
| 
    22
    
        Enlighted    
     24.02.17 
            ✎
    02:16 
 | 
         
        О всё заработало, как обычно элементарная невнимательность.     
         | 
|||
| 
    23
    
        Enlighted    
     24.02.17 
            ✎
    12:03 
 | 
         
        Извиняюсь еще раз, в СП сказано только это:
 
        ОткрытьФормуМодально(<?>,,) Синтаксис: ОткрытьФормуМодально(<Документ>,<КонтекстФормы>,<РежимПросмотра>) Назначение: Функция ОткрытьФормуМодально позволяет открыть модальную форму документа, справочника, журнала документов и других форм, используемых в системе 1С:Предприятие. Синтаксис и описание см. метод ОткрытьФорму. Однако <РежимПросмотра> - никак не влияет на видиомсть формы ставлю 1 её невидно ставлю 0 её всёравно невидно.  | 
|||
| 
    24
    
        Enlighted    
     24.02.17 
            ✎
    12:03 
 | 
         
        По синтаксису ОткрытьФорму в СП вообще ничего нет. Прям ничего     
         | 
|||
| 
    25
    
        Злопчинский    
     24.02.17 
            ✎
    12:04 
 | 
         
        (23) флажок это режим открытия формы, а не регулирования видимости     
         | 
|||
| 
    26
    
        Злопчинский    
     24.02.17 
            ✎
    12:05 
 | 
         
        Непонятно, сейчас работает или нет?     
         | 
|||
| 
    27
    
        Злопчинский    
     24.02.17 
            ✎
    12:09 
 | 
         
        Если у тебя форма не открывается значит у тебя стоит статус возврата(0)     
         | 
|||
| 
    28
    
        Enlighted    
     24.02.17 
            ✎
    12:12 
 | 
         
        работает только наполовину, открывается форма документа (Х) и она невидима, в принципе меня это устраивает, но из него открывается форма документа (У) и она уже видимая, а этого мне не надо.     
         | 
|||
| 
    29
    
        Злопчинский    
     24.02.17 
            ✎
    12:13 
 | 
         
        (28) невидимаяиформа потому что у тебя не отработала до конца приоткрытии     
         | 
|||
| 
    30
    
        Enlighted    
     24.02.17 
            ✎
    12:14 
 | 
         
        (25) режим открытия формы - этого в СП не нашёл.
 
        (29) Тогда я и в документе (У) всё закончу в приоткрытии, и будет как надо.  | 
|||
| 
    31
    
        Enlighted    
     24.02.17 
            ✎
    21:51 
 | 
         
        Всё заработало, всех благодарю, есть правда косячок, окошки документов мелькают, однако даже так, скорость закрытия просрочек многократно возросла.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |