|
БП 3.0. Как правильно ветвить выполнение кода для разных организаций. | ☑ | ||
---|---|---|---|---|
0
Deon
23.07.14
✎
16:19
|
Есть БП 3.0, в которой ведется учет по нескольким организациям.
И случилось так, что для одной организации документ должен проводиться по одному алгоритму, для другой - по другому. Как грамотно в коде указывать это условие? Штатно всякие различия между организациями живут в регистре учетной политики. Разумно ли добавлять туда свой ресурс и в ветвлении обращаться к нему? |
|||
1
Deon
23.07.14
✎
16:32
|
Да не может быть, чтобы ни у кого не было идей
|
|||
2
Borteg
23.07.14
✎
16:35
|
Если Тогда
|
|||
3
Aloex
23.07.14
✎
16:36
|
go to
|
|||
4
Deon
23.07.14
✎
16:39
|
Вброс хиловат даже для начала )
|
|||
5
Borteg
23.07.14
✎
16:42
|
(4) ты уже достаточно вбросил
что хочешь услышать то? обычно условие чем не подходит? или надо изрыгнуть мега регистр организация/поле чтото там считывать и исходя из этого выполнять куски кода? |
|||
6
acsent
23.07.14
✎
16:44
|
Скорее всего эта настройка уже есть
|
|||
7
YFedor
23.07.14
✎
16:52
|
(0) Тут ведь все зависит от того, что за условие.
Я писал в строковом реквизите организации строки типа Параметр1=Значение1;Параметр2 = Значение2; Брал эту строку в нужных местах и анализировал |
|||
8
Deon
23.07.14
✎
17:06
|
(7) А потом каждый раз разбирал эту строку? А если Значение должно быть ссылкой?
|
|||
9
Лефмихалыч
23.07.14
✎
17:10
|
я бы в отдельную базу вынес бы к херам эту особенную организацию, а данные бы конвертацией сливал
|
|||
10
Лефмихалыч
23.07.14
✎
17:10
|
иначе натурально греха необерешься
|
|||
11
Deon
23.07.14
✎
17:10
|
Давайте придумаю конкретную задачу:
Если у пользователя стоит основная организация "ООО Контора", то приветствовать его сообщением "Привет" Если у пользователя стоит основная организация "ООО Корпорация", то приветствовать его сообщением "Здравствуйте" |
|||
12
Deon
23.07.14
✎
17:10
|
(9) (10) Это да, это жестоко.
|
|||
13
Лефмихалыч
23.07.14
✎
17:11
|
(11) это другая задача - тут текст приветствия нужно в свойства организации добавить и все. Тебе же нужно, чтобы пользователи ООО Контора получали сообщение "Привет", а пользователей ООО КОрпорация через клавиатуру током херачило
|
|||
14
Deon
23.07.14
✎
17:12
|
(13) "в свойства организации" - это в доп.свойства или в реквизит справочника?
|
|||
15
Borteg
23.07.14
✎
17:15
|
НастройкаВРег = ВРег("ОсновнаяОрганизация");
ЗначениеНастройки = ХранилищеОбщихНастроек.Загрузить(НастройкаВРег,,, Неопределено); Организация = ?(ЗначениеНастройки = Неопределено, Справочники.Организации.ПустаяСсылка(), ЗначениеНастройки); Если Организация.МойРеквизит = 1 Тогда иначе КонецЕсли; В упрощенном варианте я бы както так может быть сделал. Можно регистр прикрепить. |
|||
16
Borteg
23.07.14
✎
17:17
|
(15) а если организации 2
то вообще можно просто для основной организации проводить по 1 алгоритму для другой по другому НастройкаВРег = ВРег("ОсновнаяОрганизация"); ЗначениеНастройки = ХранилищеОбщихНастроек.Загрузить(НастройкаВРег,,, Неопределено); Организация = ?(ЗначениеНастройки = Неопределено, Справочники.Организации.ПустаяСсылка(), ЗначениеНастройки); Если Документ.организация = Организация Тогда |
|||
17
Лефмихалыч
23.07.14
✎
17:18
|
(14) я бы допсвойства использовал. Ради такой херни метаданные портить - моветон
|
|||
18
bolobol
23.07.14
✎
17:19
|
Подписка на выполнение кода и там уже стереть на%ер всё, что сделал неправдный 1С код и вписать свой для любимой организации.
|
|||
19
bolobol
23.07.14
✎
17:20
|
Портить типовуху - зло! Каждое обновление это будет доказывать ежемесячно.
|
|||
20
Лефмихалыч
23.07.14
✎
17:20
|
а вообще, если по-разному проводятся, может быть это просто разные документы?
Ну или уж точно - это абсолютно разные виды операций |
|||
21
Deon
23.07.14
✎
17:22
|
(17) Обращение к допсвойствам из кода тоже не очень красивое. Все равно надо его имя в коде писать. А это имя любой пользователь поменять может
|
|||
22
Deon
23.07.14
✎
17:23
|
(19) Ну а как же мне сказать "Привет", не портя типовую. А не поздороваться - не вежливо
|
|||
23
Лефмихалыч
23.07.14
✎
17:38
|
(22) настоящий самурай типовой код не трогает
|
|||
24
YFedor
23.07.14
✎
17:40
|
(8) У меня есть свой общий модуль, в котором по переданной организации выдается структура со значениями параметров.
Все равно типовой код ломать, поэтому и общий модуль добавить не проблема, а уже в проведении: параметрыОрганизации_ = МойОбщийМодуль.ПолучитьПараметрыОрганизации(Организация); хреначитьПоОсобому_ = Ложь; Если параметрыОрганизации_.Свойство("ХреначитьПоОсобому") Тогда Если параметрыОрганизации_.ХреначитьПоОсобому Тогда хреначитьПоОсобому_ = Истина; Если хреначитьПоОсобому_ Тогда ХреначитьПоОсобому(); Иначе ХреначитьКакОбычно(); КонецЕсли;//хреначитьПоОсобому_ |
|||
25
YFedor
23.07.14
✎
17:41
|
+(24) два КонецЕсли забыл
|
|||
26
bolobol
23.07.14
✎
17:42
|
Даже сказать "привет" можно не портя типовую. Запустить 1С с обработкой при старте
|
|||
27
Deon
23.07.14
✎
17:43
|
(26) Это костыли
|
|||
28
Лефмихалыч
23.07.14
✎
17:44
|
(27) нет, костыли - это типовой код ломать
|
|||
29
Deon
23.07.14
✎
17:44
|
(25) Очень хорошо, спасибо. А как выглядит код модуля "МойОбщийМодуль"?
|
|||
30
Deon
23.07.14
✎
17:45
|
(28) Не ломать, а дорабатывать с учетом предстоящих обновлений.
|
|||
31
Deon
23.07.14
✎
17:46
|
(26) (28) Да хрен с ними, с костылями. А как в этой обработке грамотно реализовать ветвление?
|
|||
32
VRednaia
23.07.14
✎
17:58
|
(31) что (24) оказалось слишком длинным для чтения?
|
|||
33
f_vadim
23.07.14
✎
18:03
|
(31) во. придмал такой велосипед на костылях.
В типовой добавить одну строку, типа если свойство не заполнено - пляшем по типовому коду, если заполнено - выполнить(код_из_свойства). В свойстве хранить код проведения :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |