Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Определение типа группового контекста

v7: Определение типа группового контекста
Я
   1snik_d
 
18.08.20 - 12:03
Всем привет. Есть в 7.7 такая вещь как "ГрупповойКонтекст". Он может быть у формы, а может быть у модуля объекта. Есть ли какой-нибудь способ различить эти 2 вида контекста, потому что функция ТипЗначенияСтр() просто возвращает "ГрупповойКонтекст"?
   Злопчинский
 
1 - 18.08.20 - 12:05
есть
   1snik_d
 
2 - 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...
ща... комп включу
   1snik_d
 
5 - 18.08.20 - 12:09
(3) Ну ладно, модуль проведения ))
   HawkEye
 
6 - 18.08.20 - 12:12
(0) зачем?
   big
 
7 - 18.08.20 - 12:16
Попытка
   п = ГрупКонтекст.НомерДок;
Исключение
   Сообщить("Это точно не документ");
КонецПопытки

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.