Консультация № 109403
14.11.2007, 16:34
0.00 руб.
0 4 4
Добрый день!! Подскажите пожалуста, у меня 1С-7 комплексная конфигурация, можна ли сделать чтобы при входе одного пользователя в ТМЦ (справочника или документа) отображались две цены (розница и опт), а когда входит другой пользователь то отображались три цены
(еще закупка)?? Если возможно то где искать причину??

Обсуждение

Неизвестный
14.11.2007, 17:07
общий
это ответ
Здравствуйте, Артем Олександрович!
Процедура ПриОткрытии()
Если ИмяПользователя()="Иванов" Тогда
Форма.ЗакупЦена.Видимость(0);
Иначе
Форма.ЗакупЦена.Видимость(1);
Если НазваниеНабораПрав()="Мл.Бух" Тогда
Предупреждение("Вам нельзя смотреть входную цену")
Неизвестный
14.11.2007, 17:09
общий
это ответ
Здравствуйте, Артем Олександрович!
конечно можно )))

сделай видимость колонок в зависимсти от пользователя
Неизвестный
14.11.2007, 19:12
общий
это ответ
Здравствуйте, Артем Олександрович!

Есть такое решение, могу поделиться.
В справочнике КатегорииЦен добавил реквизит ИспользоватьПродавцам тип Перечисление.ДаНет. В режиме Предприятия типу цен Закупочная определил значение этого реквизита как "Нет".
Далее. В справочнике пользователей продавцам установлен тип цен по умолчанию, отличный от Закупочной. Все документы при изменении типа цен используют обработку ИнформацияОЦенах, а обработку ГрупповоеИзменениеТоварногСоставаДокумента тоже можно использовать, чтобы неявно установить в документе закупочные цены. Чтобы это предотвратить, в указанные обработки я добавил код, который в приложении. Т.е. если пользователю по его набору прав не положено использовать какой-либо тип цен, он его использовать не может.
В форме справочника Товары для продавцов недоступны кнопки "Информация" и "Печать прайса".

<b>следующая часть перенесена в ответ из мини-форума</b>

Возможно, я не понял Вас - если Вы хотите видеть в списке товаров одновременно несколько столбцов с разными ценами, то их (столбцы) нужно просто добавить в форму списка и прописать формулу ЦенаТовара(ТекущийЭлемент(), ТипЦены), а в модуле формы добавить функцию, параметры которой текущий элемент списка и название цены, которую нужно отображать (для каждого типа цен своя колонка):

Функция ЦенаТовара(ТекТовар, ТипЦены)
КатегорияЦен = СоздатьОбъект(Справочник.КатегорииЦен");
КатегорияЦен.НайтиПоНаименованию(ТипЦены);
Если ПустоеЗначение(КатегорияЦен)=0 Тогда
ЭлЦена = глВернутьЦену(ТекТовар, КатегорияЦен);
Если ПустоеЗначение(ЭлЦена)=0 Тогда
Попытка
ВремЕдиница = ЭлЦена.Единица.Получить(ВнКонтекст.ДатаДок);
ВремЦена = ЭлЦена.Цена.Получить(внКонтекст.ДатаДок);
Если ВремЕдиница<>ТекТовар.ЕдиницаПоУмолчанию Тогда
ВремЦена = ?(ВремЕдиница.Коэффициент=0,ВремЦена*ТекТовар.ЕдиницаПоУмолчанию.Коэффициент/1,ВремЦена*ТекТовар.ЕдиницаПоУмолчанию.Коэффициент/ВремЕдиница.Коэффициент);
КонецЕсли;
Возврат СокрЛП(Формат(ВремЦена,глФорматСуммы));
Исключение
Сообщить(ОписаниеОшибки());
Возврат "";
КонецПопытки;
КонецЕсли;
КонецЕсли;
КонецФункции


Успехов!
С уважением, Владимир.<p><fieldset style=‘background-color:#EFEFEF; width:80%; border:#777777 1px solid; padding:10px;‘ class=fieldset><font color=#777777><i>ответ дополнен из мини-форума</i>
-----
</font><font color=#777777 size=1><b>• Отредактировал: <a href=/info/user/10794 target=_blank>Сергей Максименко [Elric]</a></b> (Профессионал)
<b>• Дата редактирования:</b> 19.11.2007, 12:20</font></fieldset>

Приложение:
в обработке Информация о ценах на форме в свойствах поля КатегорияЦен дописал формулу ИзмКатегорияЦен(), в модуле добавил эту процедуру: Процедура ИзмКатегорияЦен() Если НазваниеНабораПрав() = "Продавец" Тогда Если КатегорияЦен.ИспользоватьПродавцам = Нет Тогда КатегорияЦен = ""; Спр = СоздатьОбъект("Справочник.КатегорииЦен"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ИспользоватьПродавцам = Да Тогда КатегорияЦен = Спр.ТекущийЭлемент(); Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры т.е. при выборе "запрещенной" цены, ищется и подставляется ближайшая "разрешенная" цена. Аналогично и в обработке ГрупповоеИзменениетоварногоСоставаДокумента: В процедуре ВыборЗначения() найдите фрагмет обработки выбора типа цен: ИначеЕсли Действие.ТекущаяСтрока()=НомерДействияЗаполнЦеныИзСпр Тогда // ("Заполнить из прайса"); ВыбЗначение = СоздатьОбъект("Справочник.КатегорииЦен"); Если ВыбЗначение.Выбрать("Тип цены",)=1 Тогда ЗначениеВВидеСтроки = ВыбЗначение.Наименование; Значение= ВыбЗначение.ТекущийЭлемент(); Если НазваниеНабораПрав() = "Продавец" Тогда Если ВыбЗначение.ИспользоватьПродавцам = Перечисление.ДаНет.Нет Тогда Предупреждение("У Вас нет прав использовать этот тип цен!"); ВыбЗначение = ""; Возврат; КонецЕсли; КонецЕсли; ... далее по тексту
Неизвестный
15.11.2007, 04:55
общий
это ответ
<font color=blue><b>!!!</b></font>
Здравствуйте, Артем Олександрович!

можно нужно в форме списка, либо ао названию набора прав, интерфейсу, либо просто по именам пользователя отображать нужные колонки, для примера можно форму подбора номенклатуры посмотреть колонку остатков.<p><fieldset style=‘background-color:#EFEFEF; width:80%; border:blue 1px solid; padding:10px;‘ class=fieldset><font color=blue><i>дублирующий ответ</i>
-----
</font><font color=#777777 size=1><b>• Отредактировал: <a href=/info/user/10794 target=_blank>Сергей Максименко [Elric]</a></b> (Профессионал)
<b>• Дата редактирования:</b> 16.11.2007, 11:34</font></fieldset>
Форма ответа