|
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
|
Всё заработало, всех благодарю, есть правда косячок, окошки документов мелькают, однако даже так, скорость закрытия просрочек многократно возросла.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |