|
Ввод на основании - документ | ☑ | ||
---|---|---|---|---|
0
pro3ri
13.10.15
✎
12:46
|
Добрый день!
Как сделать чтобы документ можно было ввести только вводом на основании, а не по кнопке "добавить"? |
|||
1
Горогуля
13.10.15
✎
12:47
|
никак
|
|||
2
pro3ri
13.10.15
✎
12:48
|
Требуется чтобы один филиал мог вводить документ Предварительная накладная на основании СЧета на оплату, а другой только на оснвании СЧета покупателя
|
|||
3
Горогуля
13.10.15
✎
12:49
|
(2) в чём разница меж этими документами?
|
|||
4
pro3ri
13.10.15
✎
12:49
|
один резервирует товар, другой нет
|
|||
5
Чайник Рассела
13.10.15
✎
12:50
|
только через попытка Исключение.
|
|||
6
Горогуля
13.10.15
✎
12:50
|
вообще, документу пофиг, откуда он взялся
|
|||
7
pro3ri
13.10.15
✎
12:51
|
||||
8
Горогуля
13.10.15
✎
12:51
|
(7) чо там?
|
|||
9
pro3ri
13.10.15
✎
12:52
|
ввод на основании структура
|
|||
10
Горогуля
13.10.15
✎
12:52
|
(9) ну. заполняется по-разному. какая связь с запретом?
|
|||
11
Kondarat
13.10.15
✎
12:53
|
(0) ПередОткрытием проверить наличие основания.
Если его нет - объяснить пользователю, Отказ=Истина; |
|||
12
Чайник Рассела
13.10.15
✎
12:54
|
(7) одному подразделению дай права на заказ, другому на счет
|
|||
13
lera01
13.10.15
✎
12:54
|
Делайте настройку пользователя какую-нибудь, Типа "Вводить предварительную накладную только по счету" и перед открытием проверять как (11) советует. И так же если надо только по заказу - другая настройка и т.д.
|
|||
14
mehfk
13.10.15
✎
12:55
|
(11) Не надо так, надо в обработкезаполнения проверять все что нужно и при необходимости делать вызватьисключение
|
|||
15
pro3ri
13.10.15
✎
13:05
|
Подумал, может проще так: сделать реквизит дока Разрешено открытие, если в ОБаботкаЗаполнения филиал вводит док на основании запрещенного документа, тогда в ОБаботкаЗаполнения Разрешено открытие = ложь и в прощедуре Перед открытием Условие на отказ по этой переменной.
|
|||
16
Kondarat
13.10.15
✎
13:06
|
(14) Почему?
|
|||
17
lera01
13.10.15
✎
13:16
|
(14) А если документ вводить вообще не на основании, то как код из обработки заполнения поможет решить проблему?
|
|||
18
mehfk
13.10.15
✎
13:38
|
(17)
Возникает при вводе документа на основании, а также при выполнении метода Заполнить, при вводе на основании, а также при интерактивном вводе нового. В процедуре-обработчике этого события должен быть описан сам алгоритм заполнения реквизитов документа на основании переданного значения. |
|||
19
Лефмихалыч
13.10.15
✎
14:12
|
в обработке заполнения, если ДанныеЗаполнения не пустые устанавливать какое-нибудь ДополнительныеСвойства.Добавить("ВведенНаОсновании",Истина)
потом перед открытием, если это новый, - проверять наличие свойства в ДополнительныеСвойства |
|||
20
pro3ri
13.10.15
✎
14:25
|
(19) спасибо! Так и реквизита дока создавать не надо!
|
|||
21
pro3ri
13.10.15
✎
14:39
|
Предварительная накладная, модуль объекта:
Процедура ОбработкаЗаполнения(Основание) ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.СчетНаОплатуПокупателю") И Основание.Подразделение.Код = "00001" Тогда ДополнительныеСвойства.Вставить("ВведенНаОсновании",Истина); //Сообщить("Вам запрещено создавать документ Предварительная накладная на основании Счета На Оплату Покупателю"); Предупреждение("Вам запрещено создавать документ Предварительная накладная на основании Счета На Оплату Покупателю, делайте его на основании Счета покупателя!!!"); Модуль формы Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) Если ДополнительныеСвойства.Свойство("ВведенНаОсновании") Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры |
|||
22
mehfk
13.10.15
✎
14:43
|
мало того что копрокод, так еще и нерабочий.
|
|||
23
Лефмихалыч
13.10.15
✎
15:36
|
(21) ты невнимательно прочитал
|
|||
24
pro3ri
14.10.15
✎
08:12
|
(22) все работает, логика такая: одно подразделение делает документы Счет на оплату и Счет покупателя, другое только Счет на оплату. Первое должно вводить док Предварительная накладная только на основании Счета покупателя, второе без ограничений. Все прекрасно работает, хотя Основание.Подразделение.Код = "00001" не есть гуд, но от него же не уйдешь?
|
|||
25
Лефмихалыч
14.10.15
✎
08:26
|
(24) уйдешь. Способов овер 9000.
Например, можно добавить роль без прав, просто, чтобы была сущность в конфигурации, которую можно с пользователем связать. Назвать роль "ВводПредварительнойНакладнойБезОснования". Далее заменить весь твой унылый код про подразделения на проверку Если не РольДоступна() и ОснованиеяНет Тогда // вам нельзя без основания Иначе // вам можно КонецЕсли роль, соответственно, раздать просто всем, кому должно быть можно вводить без основания. |
|||
26
Лефмихалыч
14.10.15
✎
08:27
|
+(25) в текущей твоей реализации изменение штатной структуры всегда будет требовать доработок в конфигурации, а за такой в приличном обществе канделябром могут отоварить
|
|||
27
Лефмихалыч
14.10.15
✎
09:04
|
а, ну, и еще - в 1С используется политика разрешения. То есть запрещено все, что явно не разрешено и, если что-то разрешено хотя бы в одной роли, то оно разрешено для всей ролей.
Таким образом вот эти все, подобные (0) костыли всегда надо разрабатывать путем разрешения по условию, а не запретов по условию. Иначе в долгосрочной перспективе все эти костыли обрушиваются. |
|||
28
pro3ri
14.10.15
✎
09:56
|
(27) благодарю
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |