Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   ТиС 7.7 Как скрыть от просмотра некоторые элементы справочника Склады (http://forums.kuban.ru/f1040/tis_7_7_kak_skryt-_ot_prosmotra_nekotorye_elementy_spravochnika_sklady-5268465.html)

eilyich 14.01.2014 06:11

ТиС 7.7 Как скрыть от просмотра некоторые элементы справочника Склады
 
Складов много из них многие давно не используются, пользователям стало не удобно )).
Скрыть элементы справочника в форме списка не проблема,

(у нас есть реквизит "НеПоказывать" по нему отбираю)
Процедура ПриОткрытии()
УстановитьОтбор("НеПоказывать",0);
КонецПроцедуры

но в ТиСе практически во всех формах выбор реквизита Склад настроен как "Быстрый выбор".
При этом соответственно отбор указанный в форме списка справочника не учитывается, как это разрулить можно?

EarlyBird 14.01.2014 06:21

добавь обработчик ПриНачалеВыбораЗначения(Элем)
в каждую форму, где есть выбор склада

там пишешь ветку:
Если Элем = "Склад" Тогда
СтандартнаяОбработка = 0;

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

eilyich 14.01.2014 06:33

Спасибо, Но вопрос то в том, как не менять всю конфигу из-за этого, это же придется менять процентов 70 всех форм, "склад" есть почти везде ((

eilyich 14.01.2014 06:35

Может есть варианты c расширениями типа FormEx ?

wowick 14.01.2014 07:38

А сделать справочник склады многоуровневым и спрятать ненужные склады в какую-то папку? Так не проканает?

eilyich 14.01.2014 07:49

Хм.. интересная идея, надо поэксперементировать, есть опасность как-бы с выгрузками чтонить не случилось.

Sasha 14.01.2014 08:05

(5)Идея интересна тем, что сделав в справочнике более одного уровня ты автоматически отключишь быстрый выбор во всех формах :-)

VZ 14.01.2014 08:18

Дарю мысль. Безвоздмездно, т.е., даром ;) У справочника "Склады" есть реквизит "тип склада", обычно (для типовых) - значение перечисления. Так вот, в форму списка замастрячить отбор по списку, как посоветовано в (1). Не только в форме для выбора, но и в "обычной" форме можно. Но условие выбора изменить: "если (ТипСклада" = НужныйТип) И [b](ПустоеЗначение(ТипСклада)=1)[/b] Тогда..."
После чего простенькой обормоточкой у нужных складов очистить этот признак (присвоить ПустоеЗначение("Перечисление")).

0X0 14.01.2014 08:44

7-VZ >А вы уверенны, что в многопользовательском режиме это:[quote=VZ;33698957]У справочника "Склады" есть реквизит "тип склада", обычно (для типовых) - значение перечисления. Так вот, в форму списка замастрячить отбор по списку, как посоветовано в (1). Не только в форме для выбора, но и в "обычной" форме можно. Но условие выбора изменить: "если (ТипСклада" = НужныйТип) И (ПустоеЗначение(ТипСклада)=1) Тогда..."
После чего простенькой обормоточкой у нужных складов очистить этот признак (присвоить ПустоеЗначение("Перечисление")).[/quote]будет функциклировать корректно?

eilyich 14.01.2014 09:06

[quote=Sasha;33698850] (5)Идея интересна тем, что сделав в справочнике более одного уровня ты автоматически отключишь быстрый выбор во всех формах :-) [/quote]
Да, круто !), можно просто сделать справочник склады многоуровневым и не делать никакие группы, ядро просто начинает везде открывать форму списка, игноря галочку Быстрый выбор и соответственно там то уже мой отбор пашет. Как вариант может и пойдет для меня, а вот для пользователей хрен знает, наверное будут "негодовать" ))

eilyich 14.01.2014 09:13

[quote=VZ;33698957] Дарю мысль. Безвоздмездно, т.е., даром ;) У справочника "Склады" есть реквизит "тип склада", обычно (для типовых) - значение перечисления. Так вот, в форму списка замастрячить отбор по списку, как посоветовано в (1). Не только в форме для выбора, но и в "обычной" форме можно. Но условие выбора изменить: "если (ТипСклада" = НужныйТип) И (ПустоеЗначение(ТипСклада)=1) Тогда..." После чего простенькой обормоточкой у нужных складов очистить этот признак (присвоить ПустоеЗначение("Перечисление")). [/quote]

Если честно не понял мысль, "Не только в форме для выбора, но и в "обычной" форме можно." Когда стоит галка в реквизите на форме "Быстрый выбор" никакая форма не открывается, появляется ниспадающее меню со списком всех элементов справочника.

VZ 14.01.2014 09:18

8-0X0 > Внимательно слушаю, по каким причинам в "многопользовательском режиме" не будет корректно работать отбор... ?

VZ 14.01.2014 09:57

10-ilyich_ > Мысль следующая: при открытии формы (и не только "для выбора") форма имеет возможность получить список каких-то опций (Форма.Параметр). И далее им распорядится по какому-то алгоритму. Например, включить отбор:
[em]Если ПустоеЗначение(Форма.Параметр)=0 Тогда
Если ТипЗначенияСтр(Форма.Параметр) = "Перечисление" Тогда
ОтборСклада = Форма.Параметр;
УстановитьОтбор("ТипСклада",ОтборСклада);
Форма.ТипСклада.Видимость(0);
КонецЕсли;[/em]
Тогда в форме будут видны только те записи, у которых реквизит ТипСклада соответствует определенному значению перечисления. Хорошо при формировании документов реализации.
Однако принцип отбора можно расширить. Например, для "общей" формы списка можно задать условие "не выводить ненужные записи". И критерием "ненужности" задать условие ПустоеЗначение(ТипСклада)=1. Применить метод УстановитьОтбор() здесь не выйдет, но можно выводить Список значений. Как это предлагает Ирли БЁрд. Правда, этот механизм хорошо работает именно для одноуровнего справочника.
Таким образом, при открытии формы "не для выбора" (напр., для оприходования ТМЦ), юзер не будет видеть записи, у которых ТипСклада является пустым значением.

Helen1986 14.01.2014 10:11

открывать форму с ТЗ, которая заполняется при открытии только тем, что нужно?

VZ 14.01.2014 10:39

+12 Только я бы сделал по другому: для формы, предназначенной для выбора включил бы механизм отбора через установку отбора (и наверняка в типовой так и сделано). А для общей формы - через формирование списка. Только вот если отсутствует Форма.Параметр, то список формировать критерием ПустоеЗначение(ТипСклада)=0. Чтоб не лазать по всей конфе, и переделывать вызов формы. Не нужно пустой работы.
А там, где Форма.Параметр передается, надо просто однократно проследить, чтоб все это правильно отрабатывало в процедурах ПриОткрытии() и ПриПовторномОткрытии().

eilyich 14.01.2014 11:46

VZ, пример: Открываешь форму документа Перемещение там есть два реквизита касающихся склада для выбора пользователем, склад и склад получатель, на форме в клацаешь по полю ввода например Склад, по умолчанию в типовой

eilyich 14.01.2014 11:48

не открывается форма списка никакая, выпадет ниспадающее меню т.е. список значений, какие параметры куда передаваться то будут в какой момент, в каком модуле писать то что ты предлогаешь ?

eilyich 14.01.2014 11:50

сори случайно разбил сообщение ))

eilyich 14.01.2014 11:51

когда из одной формы открываешь другую форму тогда можно играться с параметрами, а когда форма не открывается потому-что стоит галочка "Быстрый выбор" фиг вам получается помоему

eilyich 14.01.2014 11:58

Если галочку снять то будет открываться форма списка, причем ты можешь указать какая форма, "Выбора" например, да пофиг какая, в форме списка при открытии можно установить Отбор, но везде галочки снимать не вариант можешь и пропустить где то, но это можно обойти если добавить уровень в справочнике, тогда ядро отключает Быстрый выбор но галка остается, при этом открывается форма списка справочника, в которой ПриОткрытии можно задать Отбор. Это у меня пока один рабочий вариант как сделать это изменение во всей конфе, изменив только однин модуль формы списка спр склады.

eilyich 14.01.2014 12:12

но есть два минуса:
1) не хотелось бы делать справочник склады многоуровневым (пока не знаю к чему может привести и где вылезти)
2) пользователи могут быть недовольны выбором из формы списка он все-таки более медленный чем "Быстрый выбор" )))

eilyich 14.01.2014 12:17

[quote=Helen1986;33700489] открывать форму с ТЗ, которая заполняется при открытии только тем, что нужно? [/quote]
Нет, в данном случае это не вариант, можно и форму списка справочника открыть без "гемороя".

USSR 14.01.2014 12:24

Как капризная барышня, это не хочу, так не буду. Уж если многоуровневым сделать не хочешь, то о чем вообще разговор. И какой может быть "медленный" выбор из списка складов, их что у Вас 20000 ?

USSR 14.01.2014 12:29

ПриНачалеВыбораЗначения сделать вызов глВыборСклада, поправить то надо от 3-7 документов, в зависимости от предприятия, все равно ТИС правленная, а работы на 15 минут. Зато в глВыборСклада можно сделать что хочешь

eilyich 14.01.2014 12:42

USSR да причем тут капризы, просто хочется как можно удобнее чтобы было юзерам, благо время есть еще для раздумий немного.)

Чучундер 14.01.2014 20:03

Справочник складов можно сделоать многоуровневым. в рамках самой ТИС - пройдет нормально

Управление торговлей 11 14.01.2014 20:40

чтобы не менять конфигурацию, можно пройтись по базе и везде старые склады заменить на один элемент, после чего лишние удалить

wowick 15.01.2014 08:51

Еще может проканать такой метод. В названиях нужных складов сделайте начальный пробел. Тогда они будут выводится первыми в списке выбора. А ненужные склады будут внизу списка...

eilyich 15.01.2014 08:55

[quote=wowick;33714522] Еще может проканать такой метод. В названиях нужных складов сделайте начальный пробел. Тогда они будут выводится первыми в списке выбора. А ненужные склады будут внизу списка... [/quote]
такой вариант уже живет в базе ))

МимохожийОднако 15.01.2014 09:25

У ненужных элементов поставь впереди "яяя" и положи в папку "ЯЯЯ не нуно"

МимохожийОднако 15.01.2014 09:25

А нужные не трогать пробелами впереди

Управление торговлей 11 15.01.2014 09:37

"яяя" не эстетично. лучше добавить "я - не нужный склад" и в папку "явно не потребуется"


Текущее время: 18:16. Часовой пояс GMT +3.