|
Отбор в подборе номенклатуры + вопрос по сегментам | ☑ | ||
---|---|---|---|---|
0
vasmedv
15.04.15
✎
11:51
|
УТ 11.1.2.6
В номенклатуре есть позиции которые помечены Пометкой удаления. Их нельзя удалять или переносить в новую папку, потому что Бухгалтера не разрешают. Продавцам нужно, чтобы при подборе номенклатуры эти удаленные позиции не показывались. Но отбора почему-то в форме подбора вообще нет. Отбор есть только в форме списка справочника Номенклатура. Я ищу оптимальный способ решения задачи. Либо править все формы подбора (а их несколько как я понял), добавляя отбор в каждую. Либо создать сегмент номенклатуры в который добавлять все не удаленные товары, но тогда его надо постоянно обновлять при добавлении новой номенклатуры. |
|||
1
vasmedv
17.04.15
✎
09:17
|
Пока сделал так. Перед записью элемента номенклатуры вставил:
НашСегмент=Справочники.СегментыНоменклатуры.НовыеНеУдаленные; Если не ЗначениеЗаполнено(НашСегмент.СпособФормирования) Тогда НашСегментОбъект=НашСегмент.ПолучитьОбъект(); НашСегментОбъект.СпособФормирования=Перечисления.СпособыФормированияСегментов.ФормироватьВручную; НашСегментОбъект.ИмяШаблонаСКД="ОсновнаяСхема"; НашСегментОбъект.ДатаСоздания=ТекущаяДата(); НашСегментОбъект.Записать(); СегментыВызовСервера.Сформировать(НашСегмент); КонецЕсли; Если ЭтоНовый() И Не ЭтоГруппа Тогда Если не ПометкаУдаления Тогда //НоваяЗапись= РегистрыСведений.НоменклатураСегмента.СоздатьМенеджерЗаписи(); НаборЗаписей = РегистрыСведений.НоменклатураСегмента.СоздатьНаборЗаписей(); СсылкаНового = ПолучитьСсылкуНового(); Если не ЗначениеЗаполнено(СсылкаНового) Тогда СсылкаНового = Справочники.Номенклатура.ПолучитьСсылку(); УстановитьСсылкуНового(СсылкаНового); КонецЕсли; НаборЗаписей.Отбор.Номенклатура.Установить(СсылкаНового); НаборЗаписей.Отбор.Сегмент.Установить(Справочники.СегментыНоменклатуры.НовыеНеУдаленные); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Номенклатура = СсылкаНового; НоваяЗапись.Сегмент = Справочники.СегментыНоменклатуры.НовыеНеУдаленные; //НоваяЗапись.Характеристика = ?; НаборЗаписей.Записать(); КонецЕсли; Иначе Если ПометкаУдаления Тогда НаборЗаписей = РегистрыСведений.НоменклатураСегмента.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(Ссылка); НаборЗаписей.Отбор.Сегмент.Установить(Справочники.СегментыНоменклатуры.НовыеНеУдаленные); // НаборЗаписей.Прочитать(); // НаборЗаписей.Очистить(); НаборЗаписей.Записать(); ИначеЕсли не ПометкаУдаления Тогда НаборЗаписей = РегистрыСведений.НоменклатураСегмента.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(Ссылка); НаборЗаписей.Отбор.Сегмент.Установить(Справочники.СегментыНоменклатуры.НовыеНеУдаленные); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество()=0 Тогда НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Номенклатура = Ссылка; НоваяЗапись.Сегмент = Справочники.СегментыНоменклатуры.НовыеНеУдаленные; НаборЗаписей.Записать(); КонецЕсли; КонецЕсли; КонецЕсли; |
|||
2
vasmedv
17.04.15
✎
09:18
|
Справочники.СегментыНоменклатуры.НовыеНеУдаленные - предопределенный сегмент ном-ры.
|
|||
3
EugeniaK
17.04.15
✎
09:21
|
(0) Что-то не могу понять смысла кода.
А в чем проблема стандартно настроить сегмент на признак "НЕ ПометкаУдаления"? |
|||
4
EugeniaK
17.04.15
✎
09:31
|
Как вариант, добавьте группу доступа "Удаленные", пропишите ее всем помеченным на удаление.
И закройте ее для менеджеров через настройки RLS. Обновлять можно раз в месяц и людям не нужно каждый раз сегмент вручную указывать. |
|||
5
vasmedv
17.04.15
✎
09:42
|
(3) Вы имеете ввиду динамически формируемый сегмент?
|
|||
6
vasmedv
17.04.15
✎
09:46
|
Динамически формируемый нельзя выбрать в подборе, а если выбрать через настройку отбора, то элементы номенклатуры вообще не отображаются
|
|||
7
EugeniaK
17.04.15
✎
09:49
|
(5) Нет. Я имею в виду "Периодически обновлять". Пусть обновляется пару раз в день и раз в час автоматически.
|
|||
8
vasmedv
17.04.15
✎
09:51
|
У них файловая база. обработки регламентных заданий вообще нет. кроме того за час можно создать много новых элементов и они не будут видеться
|
|||
9
EugeniaK
17.04.15
✎
13:55
|
(8) Регламентные задания отлично работают в файловой версии.
Их не может не быть, иначе УТ11 просто не сможет работать корректно. Это всего лишь отбор, его всегда можно снять. Не думаю, что они каждый день добавляют сотни позиций номенклатуры. Ну нельзя лепить на каждый чих десятки строк в типовую конфигурация. Просто нельзя по определению. Вы ее потом вообще обновить не сможете после полугода таких доработок. |
|||
10
vasmedv
20.04.15
✎
07:04
|
Попробовал через группы доступа. В группе доступа сделал ограничение доступа "Все разрешены кроме 1-го значения": "Номенклатура бухгалтерии".
Но номенклатура с этой группой доступа номенклатуры все равно отображается. Единственное ее нельзя редактировать. А надо чтобы не отображалась. |
|||
11
Cyberhawk
20.04.15
✎
08:15
|
(0)
"Но отбора почему-то в форме подбора вообще нет" Покажи на картинке, где ты отбор ищешь |
|||
12
vasmedv
20.04.15
✎
11:06
|
||||
13
vasmedv
20.04.15
✎
11:12
|
Пока решил добавить реквизит формы "НеУдаленные".
Сделать Автоматическое сохранение данных формы в настройках. Отметить сохранение этого реквизита. Добавить код: &НаКлиенте Процедура НеУдаленныеПриИзменении(Элемент) Если НеУдаленные Тогда Для каждого элемОтбора Из СписокНоменклатура.Отбор.Элементы Цикл Если Тип(элемОтбора)=Тип("ЭлементОтбораКомпоновкиДанных") и элемОтбора.ЛевоеЗначение= Новый ПолеКомпоновкиДанных("ПометкаУдаления") Тогда ЭлементОтбора=элемОтбора; КонецЕсли; КонецЦикла; Если ЭлементОтбора=Неопределено Тогда ЭлементОтбора=СписокНоменклатура.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); КонецЕсли; ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПометкаУдаления"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Ложь; ЭлементОтбора.Использование = Истина; Иначе Для каждого элемОтбора Из СписокНоменклатура.Отбор.Элементы Цикл Если Тип(элемОтбора)=Тип("ЭлементОтбораКомпоновкиДанных") и элемОтбора.ЛевоеЗначение= Новый ПолеКомпоновкиДанных("ПометкаУдаления") Тогда элемОтбора.Использование = Ложь; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры При открытии добавить : НеУдаленныеПриИзменении(1); Все. И так для всех форм подбора. Пока сделал изменения в 4-х формах. |
|||
14
Cyberhawk
20.04.15
✎
14:39
|
Посмотрел у себя в 11.1.6.26 - да, команда "Настроить список" по умолчанию выключена (смотрел у обработки "ПодборТоваровВДокументПродажи").
У всех форм подбора вызывается при открытии ПодборТоваровКлиентСервер.УстановитьТекстИнформационнойНадписи(ЭтаФорма); поэтому можно вклиниться туда один раз с проверкой на нужные формы подбора, чем изменять процедуру в каждой форме. Или просто включить команду "Настроить список" в команды формы - пользователи (продвинутые) тогда уже сами смогут себе настроить отборы. |
|||
15
D_E_S_131
20.04.15
✎
15:01
|
"потому что Бухгалтера не разрешают." — может стоит разобраться с "природой" этого запрета? Наверняка вопрос только в разовой настройке счетов учета номенклатуры.
|
|||
16
DexterMorgan
20.04.15
✎
15:29
|
(14) Забавно, что пользователь, умеет пользоваться командой настроить список, считается продвинутым =)
|
|||
17
DexterMorgan
20.04.15
✎
15:30
|
(14) что пользователь, который*
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |