Имя: Пароль:
1C
1С v8
Отключить автозаполнение реквизита документа для конкретной роли
0 DenYuliya
 
29.08.14
11:35
добрый день.
Подскажите пожалуйста, "куда копать" в такой ситуации?

Есть документ "Заказ поставщику". У формы документа есть реквизит "Подразделение". При создание нового документа он заполняется автоматически значением, указанным в Настройках пользователя (Подразделение).

Как сказать языком 1С "Если Подразделение = Склад тогда ДокументЗаказПоставщику.подразделение.НеЗаполнять" :)?

Я не могу понять, как именно обратиться к этому "Заполнению". Что мне надо сделать (общий смысл) я понимаю.

Вот есть у меня Общий модуль (дописанный), где ПриЗапуске подразделение получается в запросе.
Пишу:

Если Подразделение[0]=Справочники.Подразделения.НайтиПоНаименованию("Склад") Тогда

"Не заполнять автоматически "Подразделение" в Документе...""
        
КонецЕсли;

Вот как "достучаться" до того, что написано в кавычках?
1 Maxus43
 
29.08.14
12:06
Документ автоматически заполняется "при открытии" формы.
Типа:
    Если ЭтоНовый() Тогда // проверить объект на то, что он еще не внесен в ИБ

        // Заполнить реквизиты значениями по умолчанию.
        ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, "Покупка", ПараметрОбъектКопирования);

    КонецЕсли;
вот после этого тебе надо сделать проверку.
Если Подразделение = Справочники.Подразделения.НайтиПоНаименованию("Склад") Тогда
Подразделение = Справочники.Подразделения.ПустаяСсылка();
КонецЕсли;
2 DenYuliya
 
29.08.14
12:18
(1), вот я так и сделала, слово в слово:

Если
ЭтотОбъект.Подразделение = Справочники.Подразделения.НайтиПоНаименованию("Склад") Тогда         
            ЭтотОбъект.Подразделение =  Справочники.Подразделения.ПустаяСсылка();
КонецЕсли;

Но мне кажется неоптимальным то, что сначала подразделение заполняется, потом очищается. Сделать бы так, чтобы оно вообще не заполнялось.
3 Maxus43
 
29.08.14
12:20
Заполняется там - ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, ...

Чтобы не заполнялось - надо там и менять... Но эта штука универсальная для всех докментов. Ломать лучше один документ, или все?
4 Maxus43
 
29.08.14
12:20
Записи не происходит всё равно, заполнение только в оперативке, так что про оптимальность тут как бы лишнее, при такой постановке задачи
5 DenYuliya
 
29.08.14
12:23
(3) Да конечно лучше один,даже то что лучше, но один только и надо.И как по мне, так в общие модули лучше не лезть лишний раз.
Но я когда так сделала, как сделала, мне начальник насчет  неоптимальности выписал, вот и задумалась.
6 Maxus43
 
29.08.14
12:49
(5) ну тогда лезь м общий модуль, и когда заполняется подразделение делай проверку на Тип документа и подразделения, которое будет проставляться...
7 Maxus43
 
29.08.14
12:50
и при чем тут роль в заголовке темы? не вижу нигде про роли ничего
8 alexei366
 
29.08.14
13:11
Сумашедший дом)))) высказали ей за оптимальность))))

Тогда конечно перепиливай стандартный метод, а ещё круче скопируй его переделай как хош и вызывать будешь так:

//////////////////////////////////
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента_МОЁ(ЭтотОбъект, "Покупка", ПараметрОбъектКопирования);
//////////////////////////////////

А в этой процедуре так сказать для КОНКРЕТНОЙ оптимальности надо будет сделать так!!!

////////////////////////////////////
Если
ЭтотОбъект.Подразделение = Справочники.Подразделения.ПолучитьСсылку(Новый УникальныйИдентификатор("6a09f20a-8de6-11e1-b3e1-001617ec3f2a") Тогда        
            ЭтотОбъект.Подразделение =  Справочники.Подразделения.ПустаяСсылка();
КонецЕсли;
///////////////////////////
9 DenYuliya
 
01.09.14
13:07
(7) , извиняюсь, если не совсем корректно.
Я имела в виду пользователя с ролью Сотрудник склада, у которого подразделение Склад (и связанные с этим права)