Добрый день! Подскажите, пожалуйста, можно ли как-то в Альфа-Авто: Автосервис+Автозапчасти. Редакция 4.1 закрыть в номенклатуре у продавцов закупочную цену, так как компьютеры стоят в торговом зале и у клиентов есть возможность увидеть всю находящуюся в них информацию, а закупочную цену они видеть не должны.
1-й вариант. Можно просто не регистрировать закупочные цены. Правда один черт могут увидеть себестоимость в партиях. 2-й вариант. Пользоваться только формой подбора.
Дело в том что у меня несколько конфигураций на обслуживании Сейчас попробую примерно показать Нужно найти строчку | РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура И Контрагент"+?(ЦеныКонтрагентов,"<>","=")+"&Контрагент) КАК ЦеныСрезПоследних В процедуре ОбновитьИнформацию И поменять ее на | РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура и ТипЦен<>&ЗакупочныйТипцен И Контрагент"+?(ЦеныКонтрагентов,"<>","=")+"&Контрагент) КАК ЦеныСрезПоследних и посоле запроса добавить Запрос.УстановитьПараметр("ЗакупочныйТипцен",обПраво("ОсновнойТипЦенЗакупки")); Как то так.
Все получилось, новое право добавил, но не понимаю что в запросе переделать, чтобы у некоторых пользователей отображалась закупочная цена, а остальных нет. Создал право "ОтображатьЦенуЗакупки". Можете ткнуть пальцем что нужно сделать?
Добрый день. В справочнике номенклатуры в форме элемента есть процедура ЗагрузитьЦены(). В ней потребуется внести изменения в запрос по получению цен согласно нового права.
Решил вопрос по отображению закупочной цены в справочнике для разных пользователей. Расскажу как, может кому-то пригодится, сразу говорю что не претендую на изящность но решение работает. 1. В Планы видов характеристик / ПраваИНастройки внес следующие изменения: - в Предопределенных данных создал новое право ОтображатьЗакупочныеЦены, разместил его в ОбщихПравахДоступа и присвоил код 10101 (думаю в типовой конфигурации нумерация в разделе общих прав доступа не дойдет до этого значения ), присвоил ему тип Булево ; - В макете НастройкиПоУмолчанию добавил соответсвующую запись 2. В модуле ФормаСписка справочника Номенклатура, в процедуре обновить информацию сделал изменения согласно рекомендаций в этой ветке, со своими правками в связи с введением нового права, а именно добавил условие:
Код
// показываем цены
Если обПраво("ОтображатьЗакупочныеЦены")= Ложь тогда
Запрос=Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЦеныСрезПоследних.ТипЦен КАК ТипЦен,
| "+?(ЦеныКонтрагентов,"ЦеныСрезПоследних.Контрагент КАК Контрагент,","")+"
| ВЫБОР КОГДА ЦеныСрезПоследних.ТипЦен.ВВалютеУчета = ИСТИНА
| ТОГДА ЦеныСрезПоследних.Номенклатура.ВалютаУчета
| ИНАЧЕ ЦеныСрезПоследних.ТипЦен.ВалютаЦены
| КОНЕЦ КАК ВалютаЦены,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании КАК ПодразделениеКомпании,
| ЦеныСрезПоследних.Цена КАК Цена,
| 0 КАК ЦенаВРублях
|ИЗ
| РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура и ТипЦен<>&ЗакупочныйТипцен И Контрагент"+?(ЦеныКонтрагентов,"<>","=")+"&Контрагент) КАК ЦеныСрезПоследних
|ГДЕ
| ЦеныСрезПоследних.Цена>0
|УПОРЯДОЧИТЬ ПО
| ЦеныСрезПоследних.ТипЦен,
| "+?(ЦеныКонтрагентов,"ЦеныСрезПоследних.Контрагент,","")+"
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании
|");
Запрос.УстановитьПараметр("ЗакупочныйТипцен",обПраво("ОсновнойТипЦенЗакупки"));
Запрос.УстановитьПараметр("НаДату",ТекущаяДата());
Запрос.УстановитьПараметр("Номенклатура",ЭлементыФормы.Список.ТекущаяСтрока);
Запрос.УстановитьПараметр("Контрагент",Справочники.Контрагенты.ПустаяСсылка());
Иначе
Запрос=Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЦеныСрезПоследних.ТипЦен КАК ТипЦен,
| "+?(ЦеныКонтрагентов,"ЦеныСрезПоследних.Контрагент КАК Контрагент,","")+"
| ВЫБОР КОГДА ЦеныСрезПоследних.ТипЦен.ВВалютеУчета = ИСТИНА
| ТОГДА ЦеныСрезПоследних.Номенклатура.ВалютаУчета
| ИНАЧЕ ЦеныСрезПоследних.ТипЦен.ВалютаЦены
| КОНЕЦ КАК ВалютаЦены,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании КАК ПодразделениеКомпании,
| ЦеныСрезПоследних.Цена КАК Цена,
| 0 КАК ЦенаВРублях
|ИЗ
| РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура И Контрагент"+?(ЦеныКонтрагентов,"<>","=")+"&Контрагент) КАК ЦеныСрезПоследних
|ГДЕ
| ЦеныСрезПоследних.Цена>0
|УПОРЯДОЧИТЬ ПО
| ЦеныСрезПоследних.ТипЦен,
| "+?(ЦеныКонтрагентов,"ЦеныСрезПоследних.Контрагент,","")+"
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании
|");
Запрос.УстановитьПараметр("НаДату",ТекущаяДата());
Запрос.УстановитьПараметр("Номенклатура",ЭлементыФормы.Список.ТекущаяСтрока);
Запрос.УстановитьПараметр("Контрагент",Справочники.Контрагенты.ПустаяСсылка());
КонецЕсли;
Эта настройка упрявляет отображением закупочной цены только в списке номенклатуры, поэтому если открыть карточку номенклатуры и зайти в цены или в цены поставщиков то закупочная цена также будет отображаться, поэтому я сделал аналогичные изменения в процедуре ЗагрузитьЦены в ФормеЭлемента справочника номенклатура:
Код
Процедура ЗагрузитьЦены()
Если обПраво("ОтображатьЗакупочныеЦены")= Ложь тогда
//Загрузка цен, кроме закупочных
Запрос=Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЦеныСрезПоследних.ТипЦен КАК ТипЦен,
| ВЫБОР
| КОГДА ЦеныСрезПоследних.ТипЦен.ВВалютеУчета=ИСТИНА ТОГДА
| ЦеныСрезПоследних.Номенклатура.ВалютаУчета
| ИНАЧЕ
| ЦеныСрезПоследних.ТипЦен.ВалютаЦены
| КОНЕЦ
| КАК ВалютаЦены,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании КАК ПодразделениеКомпании,
| ЦеныСрезПоследних.Цена КАК Цена
|ИЗ
| РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура И ТипЦен<>&ЗакупочныйТипцен И Контрагент=&Контрагент) КАК ЦеныСрезПоследних
|ГДЕ
| ЦеныСрезПоследних.Цена>0
|УПОРЯДОЧИТЬ ПО
| ЦеныСрезПоследних.ТипЦен,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании");
Запрос.УстановитьПараметр("ЗакупочныйТипцен",обПраво("ОсновнойТипЦенЗакупки"));
Запрос.УстановитьПараметр("НаДату",ТекущаяДата());
Запрос.УстановитьПараметр("Номенклатура",Ссылка);
Запрос.УстановитьПараметр("Контрагент",Справочники.Контрагенты.ПустаяСсылка());
Цены=Запрос.Выполнить().Выгрузить();
//Загрузка цен контрагентов, кроме закупочных
Запрос=Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЦеныСрезПоследних.ТипЦен КАК ТипЦен,
| ЦеныСрезПоследних.Контрагент КАК Контрагент,
| ВЫБОР
| КОГДА ЦеныСрезПоследних.ТипЦен.ВВалютеУчета=ИСТИНА ТОГДА
| ЦеныСрезПоследних.Номенклатура.ВалютаУчета
| ИНАЧЕ
| ЦеныСрезПоследних.ТипЦен.ВалютаЦены
| КОНЕЦ
| КАК ВалютаЦены,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании КАК ПодразделениеКомпании,
| ЦеныСрезПоследних.Цена КАК Цена
|ИЗ
| РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура И ТипЦен<>&ЗакупочныйТипцен И Контрагент<>&Контрагент) КАК ЦеныСрезПоследних
|ГДЕ
| ЦеныСрезПоследних.Цена>0
|УПОРЯДОЧИТЬ ПО
| ЦеныСрезПоследних.ТипЦен,
| ЦеныСрезПоследних.Контрагент,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании
|");
Запрос.УстановитьПараметр("ЗакупочныйТипцен",обПраво("ОсновнойТипЦенЗакупки"));
Запрос.УстановитьПараметр("НаДату",ТекущаяДата());
Запрос.УстановитьПараметр("Номенклатура",Ссылка);
Запрос.УстановитьПараметр("Контрагент",Справочники.Контрагенты.ПустаяСсылка());
ЦеныКонтрагентов=Запрос.Выполнить().Выгрузить();
Иначе
//Загрузка ВСЕХ цен
Запрос=Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЦеныСрезПоследних.ТипЦен КАК ТипЦен,
| ВЫБОР
| КОГДА ЦеныСрезПоследних.ТипЦен.ВВалютеУчета=ИСТИНА ТОГДА
| ЦеныСрезПоследних.Номенклатура.ВалютаУчета
| ИНАЧЕ
| ЦеныСрезПоследних.ТипЦен.ВалютаЦены
| КОНЕЦ
| КАК ВалютаЦены,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании КАК ПодразделениеКомпании,
| ЦеныСрезПоследних.Цена КАК Цена
|ИЗ
| РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура И Контрагент=&Контрагент) КАК ЦеныСрезПоследних
|ГДЕ
| ЦеныСрезПоследних.Цена>0
|УПОРЯДОЧИТЬ ПО
| ЦеныСрезПоследних.ТипЦен,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании");
Запрос.УстановитьПараметр("НаДату",ТекущаяДата());
Запрос.УстановитьПараметр("Номенклатура",Ссылка);
Запрос.УстановитьПараметр("Контрагент",Справочники.Контрагенты.ПустаяСсылка());
Цены=Запрос.Выполнить().Выгрузить();
//Загрузка ВСЕХ цен контрагентов
Запрос=Новый Запрос("
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЦеныСрезПоследних.ТипЦен КАК ТипЦен,
| ЦеныСрезПоследних.Контрагент КАК Контрагент,
| ВЫБОР
| КОГДА ЦеныСрезПоследних.ТипЦен.ВВалютеУчета=ИСТИНА ТОГДА
| ЦеныСрезПоследних.Номенклатура.ВалютаУчета
| ИНАЧЕ
| ЦеныСрезПоследних.ТипЦен.ВалютаЦены
| КОНЕЦ
| КАК ВалютаЦены,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании КАК ПодразделениеКомпании,
| ЦеныСрезПоследних.Цена КАК Цена
|ИЗ
| РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура И Контрагент<>&Контрагент) КАК ЦеныСрезПоследних
|ГДЕ
| ЦеныСрезПоследних.Цена>0
|УПОРЯДОЧИТЬ ПО
| ЦеныСрезПоследних.ТипЦен,
| ЦеныСрезПоследних.Контрагент,
| ЦеныСрезПоследних.ХарактеристикаНоменклатуры,
| ЦеныСрезПоследних.ЕдиницаИзмерения,
| ЦеныСрезПоследних.ПодразделениеКомпании
|");
Запрос.УстановитьПараметр("НаДату",ТекущаяДата());
Запрос.УстановитьПараметр("Номенклатура",Ссылка);
Запрос.УстановитьПараметр("Контрагент",Справочники.Контрагенты.ПустаяСсылка());
ЦеныКонтрагентов=Запрос.Выполнить().Выгрузить();
КонецЕсли;
КонецПроцедуры // ЗагрузитьЦены()
Сильно прошу не пинать, я только учусь но данное решение работает, осталось еще убрать отображение цен в меню Перейти, пока не нашел как, но обязательно найду