К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

ТиС 7.7 Как скрыть от просмотра некоторые элементы справочника Склады

Гость
0 - 14.01.2014 - 06:11
Складов много из них многие давно не используются, пользователям стало не удобно )).
Скрыть элементы справочника в форме списка не проблема,

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

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



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

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

...
и дальше сформировать свой списочек нужных складов, подсунуть пользователю для выбора, и кинуть выбранное значение в реквизит Склад
Гость
2 - 14.01.2014 - 06:33
Спасибо, Но вопрос то в том, как не менять всю конфигу из-за этого, это же придется менять процентов 70 всех форм, "склад" есть почти везде ((
Гость
3 - 14.01.2014 - 06:35
Может есть варианты c расширениями типа FormEx ?
Гость
4 - 14.01.2014 - 07:38
А сделать справочник склады многоуровневым и спрятать ненужные склады в какую-то папку? Так не проканает?
Гость
5 - 14.01.2014 - 07:49
Хм.. интересная идея, надо поэксперементировать, есть опасность как-бы с выгрузками чтонить не случилось.
Гость
6 - 14.01.2014 - 08:05
(5)Идея интересна тем, что сделав в справочнике более одного уровня ты автоматически отключишь быстрый выбор во всех формах :-)
Гость
7 - 14.01.2014 - 08:18
Дарю мысль. Безвоздмездно, т.е., даром ;) У справочника "Склады" есть реквизит "тип склада", обычно (для типовых) - значение перечисления. Так вот, в форму списка замастрячить отбор по списку, как посоветовано в (1). Не только в форме для выбора, но и в "обычной" форме можно. Но условие выбора изменить: "если (ТипСклада" = НужныйТип) И (ПустоеЗначение(ТипСклада)=1) Тогда..."
После чего простенькой обормоточкой у нужных складов очистить этот признак (присвоить ПустоеЗначение("Перечисление")).
Гость
8 - 14.01.2014 - 08:44
7-VZ >А вы уверенны, что в многопользовательском режиме это:
Цитата:
Сообщение от VZ Посмотреть сообщение
У справочника "Склады" есть реквизит "тип склада", обычно (для типовых) - значение перечисления. Так вот, в форму списка замастрячить отбор по списку, как посоветовано в (1). Не только в форме для выбора, но и в "обычной" форме можно. Но условие выбора изменить: "если (ТипСклада" = НужныйТип) И (ПустоеЗначение(ТипСклада)=1) Тогда..."
После чего простенькой обормоточкой у нужных складов очистить этот признак (присвоить ПустоеЗначение("Перечисление")).
будет функциклировать корректно?
Гость
9 - 14.01.2014 - 09:06
Цитата:
Сообщение от Sasha Посмотреть сообщение
(5)Идея интересна тем, что сделав в справочнике более одного уровня ты автоматически отключишь быстрый выбор во всех формах :-)
Да, круто !), можно просто сделать справочник склады многоуровневым и не делать никакие группы, ядро просто начинает везде открывать форму списка, игноря галочку Быстрый выбор и соответственно там то уже мой отбор пашет. Как вариант может и пойдет для меня, а вот для пользователей хрен знает, наверное будут "негодовать" ))
Гость
10 - 14.01.2014 - 09:13
Цитата:
Сообщение от VZ Посмотреть сообщение
Дарю мысль. Безвоздмездно, т.е., даром ;) У справочника "Склады" есть реквизит "тип склада", обычно (для типовых) - значение перечисления. Так вот, в форму списка замастрячить отбор по списку, как посоветовано в (1). Не только в форме для выбора, но и в "обычной" форме можно. Но условие выбора изменить: "если (ТипСклада" = НужныйТип) И (ПустоеЗначение(ТипСклада)=1) Тогда..." После чего простенькой обормоточкой у нужных складов очистить этот признак (присвоить ПустоеЗначение("Перечисление")).
Если честно не понял мысль, "Не только в форме для выбора, но и в "обычной" форме можно." Когда стоит галка в реквизите на форме "Быстрый выбор" никакая форма не открывается, появляется ниспадающее меню со списком всех элементов справочника.
Гость
11 - 14.01.2014 - 09:18
8-0X0 > Внимательно слушаю, по каким причинам в "многопользовательском режиме" не будет корректно работать отбор... ?
Гость
12 - 14.01.2014 - 09:57
10-ilyich_ > Мысль следующая: при открытии формы (и не только "для выбора") форма имеет возможность получить список каких-то опций (Форма.Параметр). И далее им распорядится по какому-то алгоритму. Например, включить отбор:
Если ПустоеЗначение(Форма.Параметр)=0 Тогда
Если ТипЗначенияСтр(Форма.Параметр) = "Перечисление" Тогда
ОтборСклада = Форма.Параметр;
УстановитьОтбор("ТипСклада",ОтборСклада);
Форма.ТипСклада.Видимость(0);
КонецЕсли;

Тогда в форме будут видны только те записи, у которых реквизит ТипСклада соответствует определенному значению перечисления. Хорошо при формировании документов реализации.
Однако принцип отбора можно расширить. Например, для "общей" формы списка можно задать условие "не выводить ненужные записи". И критерием "ненужности" задать условие ПустоеЗначение(ТипСклада)=1. Применить метод УстановитьОтбор() здесь не выйдет, но можно выводить Список значений. Как это предлагает Ирли БЁрд. Правда, этот механизм хорошо работает именно для одноуровнего справочника.
Таким образом, при открытии формы "не для выбора" (напр., для оприходования ТМЦ), юзер не будет видеть записи, у которых ТипСклада является пустым значением.
Гость
13 - 14.01.2014 - 10:11
открывать форму с ТЗ, которая заполняется при открытии только тем, что нужно?
Гость
14 - 14.01.2014 - 10:39
+12 Только я бы сделал по другому: для формы, предназначенной для выбора включил бы механизм отбора через установку отбора (и наверняка в типовой так и сделано). А для общей формы - через формирование списка. Только вот если отсутствует Форма.Параметр, то список формировать критерием ПустоеЗначение(ТипСклада)=0. Чтоб не лазать по всей конфе, и переделывать вызов формы. Не нужно пустой работы.
А там, где Форма.Параметр передается, надо просто однократно проследить, чтоб все это правильно отрабатывало в процедурах ПриОткрытии() и ПриПовторномОткрытии().
Гость
15 - 14.01.2014 - 11:46
VZ, пример: Открываешь форму документа Перемещение там есть два реквизита касающихся склада для выбора пользователем, склад и склад получатель, на форме в клацаешь по полю ввода например Склад, по умолчанию в типовой
Гость
16 - 14.01.2014 - 11:48
не открывается форма списка никакая, выпадет ниспадающее меню т.е. список значений, какие параметры куда передаваться то будут в какой момент, в каком модуле писать то что ты предлогаешь ?
Гость
17 - 14.01.2014 - 11:50
сори случайно разбил сообщение ))
Гость
18 - 14.01.2014 - 11:51
когда из одной формы открываешь другую форму тогда можно играться с параметрами, а когда форма не открывается потому-что стоит галочка "Быстрый выбор" фиг вам получается помоему
Гость
19 - 14.01.2014 - 11:58
Если галочку снять то будет открываться форма списка, причем ты можешь указать какая форма, "Выбора" например, да пофиг какая, в форме списка при открытии можно установить Отбор, но везде галочки снимать не вариант можешь и пропустить где то, но это можно обойти если добавить уровень в справочнике, тогда ядро отключает Быстрый выбор но галка остается, при этом открывается форма списка справочника, в которой ПриОткрытии можно задать Отбор. Это у меня пока один рабочий вариант как сделать это изменение во всей конфе, изменив только однин модуль формы списка спр склады.
Гость
20 - 14.01.2014 - 12:12
но есть два минуса:
1) не хотелось бы делать справочник склады многоуровневым (пока не знаю к чему может привести и где вылезти)
2) пользователи могут быть недовольны выбором из формы списка он все-таки более медленный чем "Быстрый выбор" )))
Гость
21 - 14.01.2014 - 12:17
Цитата:
Сообщение от Helen1986 Посмотреть сообщение
открывать форму с ТЗ, которая заполняется при открытии только тем, что нужно?
Нет, в данном случае это не вариант, можно и форму списка справочника открыть без "гемороя".
Гость
22 - 14.01.2014 - 12:24
Как капризная барышня, это не хочу, так не буду. Уж если многоуровневым сделать не хочешь, то о чем вообще разговор. И какой может быть "медленный" выбор из списка складов, их что у Вас 20000 ?
Гость
23 - 14.01.2014 - 12:29
ПриНачалеВыбораЗначения сделать вызов глВыборСклада, поправить то надо от 3-7 документов, в зависимости от предприятия, все равно ТИС правленная, а работы на 15 минут. Зато в глВыборСклада можно сделать что хочешь
Гость
24 - 14.01.2014 - 12:42
USSR да причем тут капризы, просто хочется как можно удобнее чтобы было юзерам, благо время есть еще для раздумий немного.)
25 - 14.01.2014 - 20:03
Справочник складов можно сделоать многоуровневым. в рамках самой ТИС - пройдет нормально
Гость
26 - 14.01.2014 - 20:40
чтобы не менять конфигурацию, можно пройтись по базе и везде старые склады заменить на один элемент, после чего лишние удалить
Гость
27 - 15.01.2014 - 08:51
Еще может проканать такой метод. В названиях нужных складов сделайте начальный пробел. Тогда они будут выводится первыми в списке выбора. А ненужные склады будут внизу списка...
Гость
28 - 15.01.2014 - 08:55
Цитата:
Сообщение от wowick Посмотреть сообщение
Еще может проканать такой метод. В названиях нужных складов сделайте начальный пробел. Тогда они будут выводится первыми в списке выбора. А ненужные склады будут внизу списка...
такой вариант уже живет в базе ))
Гость
29 - 15.01.2014 - 09:25
У ненужных элементов поставь впереди "яяя" и положи в папку "ЯЯЯ не нуно"
Гость
30 - 15.01.2014 - 09:25
А нужные не трогать пробелами впереди
Гость
31 - 15.01.2014 - 09:37
"яяя" не эстетично. лучше добавить "я - не нужный склад" и в папку "явно не потребуется"


К списку вопросов






Copyright ©, Все права защищены