Не показывать закупочную цену в номенклатуре

Декоративное изображение

Для получения доступа к форуму необходимо авторизоваться
или зарегистрироваться на сайте.

Пользователь ПП
RSS
Добрый день! Подскажите, пожалуйста, можно ли как-то в Альфа-Авто: Автосервис+Автозапчасти. Редакция 4.1 закрыть в номенклатуре у продавцов закупочную цену, так как компьютеры стоят в торговом зале и у клиентов есть возможность увидеть всю находящуюся в них информацию, а закупочную цену они видеть не должны.
Декоративное изображение 124
Интересующийся
1-й вариант. Можно просто не регистрировать закупочные цены. Правда один черт могут увидеть себестоимость в партиях.
2-й вариант. Пользоваться только формой подбора.
Пользователь ПП
Нет, ни один из вариантов, к сожалению, не подходит...
Интересующийся
Тогда только кодинг, благо там пару строк.
Пользователь ПП
Ясно, спасибо.
Пользователь ПП
Цитата
Евгений Шульц пишет:
Тогда только кодинг, благо там пару строк.

Можно ли посмотреть на эти пару строк?
Интересующийся
Дело в том что у меня несколько конфигураций на обслуживании
Сейчас попробую примерно показать
Нужно найти строчку
| РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура И Контрагент"+?(ЦеныКонтрагентов,"<>","=")+"&Контрагент) КАК ЦеныСрезПоследних
В процедуре ОбновитьИнформацию
И поменять ее на
| РегистрСведений.Цены.СрезПоследних(&НаДату,Номенклатура=&Номенклатура и ТипЦен<>&ЗакупочныйТипцен И Контрагент"+?(ЦеныКонтрагентов,"<>","=")+"&Контрагент) КАК ЦеныСрезПоследних
и посоле запроса добавить
Запрос.УстановитьПараметр("ЗакупочныйТипцен",обПраво("ОсновнойТипЦенЗакупки"));
Как то так.
Интересующийся
Подниму забытую темку...

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

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


Сильно прошу не пинать, я только учусь ;) но данное решение работает, осталось еще убрать отображение цен в меню Перейти, пока не нашел как, но обязательно найду :)
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С