Убрать тип цены "закупочная" в УТ

13.09.11

Задачи пользователя - Адаптация типовых решений

Появилась задача: убрать всем кассирам и менеджерам возможность видеть тип цены "закупочная" при выборе товара в справочнике Номенклатура...
Попробовал найти готовое решение на просторах интернета, но безуспешно...
Поэтому пришлось ковыряться самому(правда не без помощи подсказок знающих людей).
Не судите строго в 8.1 программировать только учусь...

Ну так вот задача казалось бы простая, да вот решение нигде не обсуждалось(по крайней мере я не нашел)...

Выкладываю для тех, кто в программировании также как и я не силен, но надо...

Заходим в конфигураторе в Справочник Номенклатура ->ФормаСписка(тоже самое надо сделать будет и в ФормаВыбора)->процедура ПередОткрытием.

Ищем код:

// восстанавливаем выделенные элементы у СписокЦенОстатков
СписокПомеченныхЭлементовТиповЦен = ВосстановитьЗначение("Справочники.Номенклатура.ФормаСписка.СписокПомеченныхЭлементовТиповЦен");
УправлениеЗапасами.ОбновитьСписокТиповЦен(СписокЦенОстатков, СписокПомеченныхЭлементовТиповЦен);

Далее добавляем следующее:

Если НЕ РольДоступна("ПолныеПрава") Тогда
  СписокЦенОстатков.Удалить(СписокЦенОстатков.Индекс(СписокЦенОстатков.Найти("Закупочная", "Наименование")));
КонецЕсли;

 

Тоже самое проделываем для ФормаВыбора.

 

после этого у всех пользователей у которых нет роли "ПолныеПрава", Тип цены "закупочная" в выборе типов цен в справочнике Номенклатура пропадет.

 

P.S.: Это действие не закрывает получение закупочных цен через отчеты, поэтому для "умных пользователей"  необходимо дорабатывать еще и отчеты, в моем случае касиры работают только в интерфейсе кассира, да и уровень "делаем только то что показали"

P.S.2: Не забывайте перед любыми действиями с конфигурацией делать копию, поскольку ответственность за работоспособность базы лежит только на Вас.

Удачи в работе.

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4448    9    4    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    2952    4    0    

19

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1281    dimanich70    6    

13

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    1991    13    avmartynov    10    

43

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2071    21    progmaster    7    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4670 13.09.11 12:27 Сейчас в теме
(0) Использовать RLS не предлагать?
3. dva1c 68 14.09.11 07:00 Сейчас в теме
Это решение имеет право на жизнь. Аналогичным способом я поступил в ЗиУП, для того, чтобы табельщик подразделения видел только свое подразделение.
(1) RLS надо курить, а это не быстро :D
WhiteShadow; +1 Ответить
2. WhiteShadow 75 13.09.11 12:51 Сейчас в теме
Я пока еще учусь, и насколько хватает моего понимания, - там надо будет править все роли кроме Полных прав?
находил решение на каком то форуме через RLS, - там надо вводить ограничение на чтение в ролях... проделал как все было описано ничего у меня не получилось... :( я понимаю что это из-за моего не знания, но все же через кодинг конфы получилось лучше, да и быстрее...
4. alex_2k 14.09.11 13:15 Сейчас в теме
Вообще делается намного проще.
Открываешь роль которой надо запретить доступ к ценам.
открываешь регистр сведений ЦеныНоменклатуры, ставишь только одну галку "Чтение",
добавляешь запись в "Ограничения доступа к данным", поля слева не указываешь, в поле ограничение пишешь
ГДЕ ТипЦен.Код <> "00001" (укажи свой код элемента справочника, к которому закрыть доступ).
Собственно все. У меня все работает, человек с этой ролью не видит закупочных цен вообще нигде.
s_tagil@mail.ru; m_o; legrey; IDija; krein; WhiteShadow; artemka; +7 Ответить
18. websamson 306 05.03.14 10:22 Сейчас в теме
(4) alex_2k,
4. alex_2k 14.09.2011 13:15
Вообще делается намного проще.
Открываешь роль которой надо запретить доступ к ценам.
открываешь регистр сведений ЦеныНоменклатуры, ставишь только одну галку "Чтение",
добавляешь запись в "Ограничения доступа к данным", поля слева не указываешь, в поле ограничение пишешь
ГДЕ ТипЦен.Код <> "00001" (укажи свой код элемента справочника, к которому закрыть доступ).
Собственно все. У меня все работает, человек с этой ролью не видит закупочных цен вообще нигде.

Если так делаешь, то пользователь с ограниченной ролью не может запускать отчеты в которых есть запрос, содержащий вложенный запрос к РС "Цены номенклатуры" (например, Печать прайс-листа в УПП 1.3). Не помогает ключевое слово "РАЗРЕШЕННЫЕ", т.к. "Ключевое слово РАЗРЕШЕННЫЕ доступно только у первого запроса".
У кого-нибудь есть еще варианты решения, кроме "чистки" базы с запретом просмотра закупочной цены?
Может, RLS-ом это как-то правильно можно решить?
KillHunter; +1 Ответить
19. KillHunter 7 05.03.14 12:13 Сейчас в теме
(18) websamson,
4. alex_2k 14.09.2011 13:15
Вообще делается намного проще.
Открываешь роль которой надо запретить доступ к ценам.
открываешь регистр сведений ЦеныНоменклатуры, ставишь только одну галку "Чтение",
добавляешь запись в "Ограничения доступа к данным", поля слева не указываешь, в поле ограничение пишешь
ГДЕ ТипЦен.Код <> "00001" (укажи свой код элемента справочника, к которому закрыть доступ).
Собственно все. У меня все работает, человек с этой ролью не видит закупочных цен вообще нигде.

Если так делаешь, то пользователь с ограниченной ролью не может запускать отчеты в которых есть запрос, содержащий вложенный запрос к РС "Цены номенклатуры" (например, Печать прайс-листа в УПП 1.3). Не помогает ключевое слово "РАЗРЕШЕННЫЕ", т.к. "Ключевое слово РАЗРЕШЕННЫЕ доступно только у первого запроса".
У кого-нибудь есть еще варианты решения, кроме "чистки" базы с запретом просмотра закупочной цены?
Может, RLS-ом это как-то правильно можно решить?

я тоже долго думал над решением этой проблемы и манулы курил, но в данном случае намного проще организовать через программный код.
5. neuromancer_aza 48 14.09.11 14:44 Сейчас в теме
да, только вот оно будет действовать на обработку подбора номенклатуры? а так костыль нормуль ;)
6. neuromancer_aza 48 14.09.11 15:41 Сейчас в теме
есть вариант получше. Усли у вас УТ10
то можно в общих модулях УправлениеЗапасами.ЗаполнитьСписокТиповЦенДляПолученияОстатков
добавить в конце что-то типа того

	Если НЕ (РольДоступна("ПолныеПрава") или РольДоступна("МенеджерПоЗакупу") или РольДоступна ("СтаршийМенеджерПоПродажам") ) Тогда
		СписокЦенОстатков.Удалить(СписокЦенОстатков.Индекс(СписокЦенОстатков.Найти("Приобретение", "Наименование")));
	КонецЕсли;



тогда она будет действовать везде где оно используется
7. hotey 42 14.09.11 18:32 Сейчас в теме
Решал недавно аналогичную проблему, делал через RLS. Кода получается не много, но действительно пришлось разобраться. Но и результат того стоит.
8. WhiteShadow 75 14.09.11 21:04 Сейчас в теме
alex_2k пишет:

Вообще делается намного проще.
Открываешь роль которой надо запретить доступ к ценам.
открываешь регистр сведений ЦеныНоменклатуры, ставишь только одну галку "Чтение",
добавляешь запись в "Ограничения доступа к данным", поля слева не указываешь, в поле ограничение пишешь
ГДЕ ТипЦен.Код <> "00001" (укажи свой код элемента справочника, к которому закрыть доступ).
Собственно все. У меня все работает, человек с этой ролью не видит закупочных цен вообще нигде.


чесное слово приблизительно тоже самое и пробовал(разница только в том что там наименование юзалось вместо кода), - итог : не получилось.... но я повторюсь это из-за моего недопонимания... :)
9. a-novoselov 1155 15.09.11 08:35 Сейчас в теме
(0) У вас менеджеры по закупу под полными правами работают? У нас нет... как нам быть :cry:
11. WhiteShadow 75 22.09.11 22:50 Сейчас в теме
(9) a-novoselov, прошу прощения отсутствовал неделю :)
условие можно использовать для любых прав, которые требуются...

как уже ответил Вам, neuromancer_aza...

подробнее так :

Если НЕ (РольДоступна("ПолныеПрава") ИЛИ РольДоступна("МенеджерПоЗакупкам")) Тогда
СписокЦенОстатков.Удалить(СписокЦенОстатков.Индекс(СписокЦенОстатков.Найти("Закупочная", "Наименование")));
КонецЕсли;

P.S. не проверял :)
10. neuromancer_aza 48 15.09.11 14:16 Сейчас в теме
a-novoselov пишет:

(0) У вас менеджеры по закупу под полными правами работают? У нас нет... как нам быть :cry:


добавьте еще условие на роль менеджера по закупу.
WhiteShadow; +1 Ответить
12. a-novoselov 1155 23.09.11 07:07 Сейчас в теме
(10)(11) Ну а если еще бухгалтерам нужно закупочные цены видеть и у нас 8 разных ролей для бухгалтеров... Может целесообразнее всетаки делать через "Настройку дополнительных прав пользователей"? Опять же в отчтетах (например какой-нибудь прайс-лист по всем типам цен) лишние пользователи смогут увидеть, или просто через операции->регистры сведений->цены номенклатуры. А для RLS на регистры список ролей не очень-то подходит, проще проверку по регистру "значения доп.прав" делать.
13. WhiteShadow 75 23.09.11 12:52 Сейчас в теме
(12) a-novoselov, для Вас целесообразнее всетаки делать через "Настройку дополнительных прав пользователей"... поэтому с радостью познакомлюсь с Вашим вариантом решения, для повышения уровня знаний :)
14. StasssiK 18.10.11 16:48 Сейчас в теме
Делал типа таково же, но увы не получилось. Попробую вашу
15. EAU1c 08.12.11 12:01 Сейчас в теме
alex_2k пишет:
Вообще делается намного проще. Открываешь роль которой надо запретить доступ к ценам. открываешь регистр сведений ЦеныНоменклатуры, ставишь только одну галку "Чтение", добавляешь запись в "Ограничения доступа к данным", поля слева не указываешь, в поле ограничение пишешь ГДЕ ТипЦен.Код <> "00001" (укажи свой код элемента справочника, к которому закрыть доступ). Собственно все. У меня все работает, человек с этой ролью не видит закупочных цен вообще нигде.
именно так в большинстве случаев если к 81 применительно

    да но и для этого нужно создать и распределить пользователей по ролям
16. alex_2k 08.12.11 12:09 Сейчас в теме
EAU1c пишет:
именно так в большинстве случаев если к 81 применительно

да но и для этого нужно создать и распределить пользователей по ролям


Это применительно и к 8.2 тоже.
А как работать без ролей то? Естественно роли должны быть, куда же без них!
17. 3sf 25.02.13 10:05 Сейчас в теме
Спасибо! Очень пригодилось!
20. SlavonNoskoff 30.11.16 16:31 Сейчас в теме
А у меня вообще так:
{Справочник.Номенклатура.Форма.ФормаСписка(489)}: Ошибка при вызове метода контекста (Индекс)
СписокЦенОстатков.Удалить(СписокЦенОстатков.Индекс(СписокЦенОстатков.Найти("Закупочная", "Наименование")));
по причине:
Несоответствие типов (параметр номер '1')

В чём дело?
21. WhiteShadow 75 02.12.16 12:20 Сейчас в теме
22. Sanario 26 02.12.16 12:26 Сейчас в теме
(20) Как вариант просто в программе называются не "Закупочная", а "Закупочные". Поэтому найти не может
23. makskov 89 20.06.23 21:10 Сейчас в теме
Спасибо, до сих пор актуально, все просто и помогло
Оставьте свое сообщение