|
v7: Определение типа группового контекста | ☑ | ||
---|---|---|---|---|
0
1snik_d
18.08.20
✎
12:03
|
Всем привет. Есть в 7.7 такая вещь как "ГрупповойКонтекст". Он может быть у формы, а может быть у модуля объекта. Есть ли какой-нибудь способ различить эти 2 вида контекста, потому что функция ТипЗначенияСтр() просто возвращает "ГрупповойКонтекст"?
|
|||
1
Злопчинский
18.08.20
✎
12:05
|
есть
|
|||
2
1snik_d
18.08.20
✎
12:06
|
(1) А конкретнее?
|
|||
3
Злопчинский
18.08.20
✎
12:07
|
(0) и не надо в 77 тянуть 8-ые принципы. 77 - это не 8-ка. в 77 - свой устав.
нет в 77 "модуля объекта". |
|||
4
Злопчинский
18.08.20
✎
12:08
|
(2) отрекись от богомерзкой 8-ки, признай православную 77...
ща... комп включу |
|||
5
1snik_d
18.08.20
✎
12:09
|
(3) Ну ладно, модуль проведения ))
|
|||
6
HawkEye
18.08.20
✎
12:12
|
(0) зачем?
|
|||
7
big
18.08.20
✎
12:16
|
Попытка
п = ГрупКонтекст.НомерДок; Исключение Сообщить("Это точно не документ"); КонецПопытки Попытка п = ГрупКонтекст.Владелец; Исключение Сообщить("Это точно не справочник"); КонецПопытки |
|||
8
1snik_d
18.08.20
✎
12:21
|
(7) А без попыток, нет там какого-нибудь специального реквизита?
|
|||
9
1snik_d
18.08.20
✎
12:22
|
(6) Нужно модифицированность() анализировать, а она есть только в контексте формы
|
|||
10
Злопчинский
18.08.20
✎
12:23
|
//******************************************************************************
// Функция глВернутьТипКонтекста(Знач Конт) Экспорт ТипКонтекста="ТаблицаЗначенийСписокЗначенийСправочник.ФормаСпискаДокументЖурналОтчет"; Попытка А=Конт.КоличествоКолонок(); Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"ТаблицаЗначений",""); КонецПопытки; Попытка А=Конт.РазмерСписка(); Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"СписокЗначений",""); КонецПопытки; Попытка А=Конт.ТекущийЭлемент(); Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"Справочник",""); КонецПопытки; Попытка А=Конт.ИерархическийСписок(); Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,".ФормаСписка",""); КонецПопытки; Попытка А=Конт.Проведен(); Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"Документ",""); КонецПопытки; Попытка А=Конт.ТекущийДокумент; Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"Журнал",""); КонецПопытки; Попытка Конт.РасположениеФайла(А,А); Исключение ТипКонтекста=СтрЗаменить(ТипКонтекста,"Отчет",""); КонецПопытки; Возврат ТипКонтекста; КонецФункции //глВернутьТипКонтекста() |
|||
11
Злопчинский
18.08.20
✎
12:25
|
в Модуль проведения снаружи можно передать параметр, причем ШТАТНО
|
|||
12
Злопчинский
18.08.20
✎
12:27
|
Провести(<?>,);
Синтаксис: Провести(<Режим>,<Знач>) Назначение: Выполнить проведение документа. Возвращает: 1 - если проведение документа выполнено, 0 - иначе. Параметры: <Режим> - необязательный параметр. Число: 0 - проводить документ без сдвига ТА; 1 - проводить непроведенный документ реальным временем (со сдвигом ТА); 2 - перепроводить проведенный документ реальным временем (со сдвигом ТА); 3 - проводить любой (непроведенный, проведенный) документ реальным временем (со сдвигом ТА). Значение по умолчанию - 0. <Знач> - выражение произвольного типа, которое передается при запуске предопределенной процедуры ОбработкаПроведения (необязателен, по умолчанию - пусто). Замечание: Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения. Если этот метод применяется в Модуле формы документа непосредственно к документу локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой ''#Провести''. В этом случае, если параметр <Режим> опущен, то документ проводится в режиме, соответствующем установкам системы меню Сервис-Параметры. |
|||
13
big
18.08.20
✎
12:27
|
(9) Можно распарсить ИД объекта из ЗначениеВСтрокуВнутр(Объект). ;)
|
|||
14
Злопчинский
18.08.20
✎
12:29
|
И если модуль проведения написан так, что нужно в нем понимать откуда проводится - из формы или без формы - я бы очень сильно подумал над таким архитектурным решением... А тио потом начинаются "..ничего не пончимаююю.. когда пользователь прводит документ - все нормально. когда ночью восстановлегние ГП - деление на ноль.."
|
|||
15
1snik_d
18.08.20
✎
13:15
|
(14) Да не, просто при проведении интерактивном нужно вызывать обработку с вводом дополнительных параметров
|
|||
16
Sserj
18.08.20
✎
13:36
|
(15) НЕЛЬЗЯ ТАК ДЕЛАТЬ.
Пока кто-то там заполняет дополнительный параметр 100 человек вокруг сидят и курят глядя на ошибки ожидания завершения транзакции. |
|||
17
Злопчинский
18.08.20
✎
13:40
|
(15) ты чо, в дуба рухнал?!
|
|||
18
Злопчинский
18.08.20
✎
13:40
|
это допустимо только в условиях а) когда работает только один человек в базе и не предусмотрено "бесчеловечного" проведения документов.
|
|||
19
HawkEye
18.08.20
✎
13:58
|
(9) модифицированность в модуле проведения?! зачем???
|
|||
20
Злопчинский
18.08.20
✎
15:32
|
(19) ну так известно же зачем. по вопросу скорее чел из мира 8-ки. там мозгов не надо - ставь галочки. ну и как следствие КАК задачу поставили - так и будет делать.. ;-)
|
|||
21
Kigo_Kigo
18.08.20
✎
15:42
|
(15) А сделать это до проведения нельзя, тем более интерактивном?
И веселуха будет с групповым проведением и да все что должно быть заполнено и не вычесляется/получается программным путем, должно быть заполнено до проведения, и еще само проведение должно быть как можно коротким и однозначным |
|||
22
trdm
18.08.20
✎
16:19
|
(16) (17) хватит подрывать производство вазелина!
|
|||
23
Злопчинский
18.08.20
✎
16:51
|
(22) зато проктологам работы прибавится!!!
|
|||
24
1snik_d
18.08.20
✎
17:07
|
(18) Так и есть
|
|||
25
1snik_d
18.08.20
✎
17:07
|
(16) Это я знаю
|
|||
26
Злопчинский
18.08.20
✎
17:30
|
(24) тут вопрос. что если дома не сдерживать себя в пердеже, то и в обществе оконфузиться можно. а если хуже - то и обосраться у всех на виду...
|
|||
27
Калиостро
19.08.20
✎
11:02
|
(0) При интерактивном проведении сначала формируй список параметров хоть с диалоговыми окнами, хоть с долгими расчетами.
А потом в команде Провести их передавай в модуль документа, как в (12) и (21) тебе написали. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |