Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отчет по товарам на складах: заблокировать возможность изменения отбора по складам          
Constantus Подменю пользователя
сообщение 15.06.17, 14:30
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Имеется ведомость по товарам на складах. Отчет сформирован на база универсального отчета. В первоначальных настройках стоит:

УниверсальныйОтчет.ДобавитьОтбор("Склад",Истина);


В результате на форме отчета проявляется возможность отбора по складам. Также стоит в начале галочка, которая регулирует применение по отбору.
В случае отсутствия нажатия галочки, отбор проходит по всем складам...

Как можно заморозить эту галочку, чтобы Пользователь не мог изменять эту галочку, чтобы она всегда была активна?


DrLivsi Подменю пользователя
сообщение 15.06.17, 14:47
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 148
Из: Киев
Спасибо сказали: 19 раз
Рейтинг: 0

Constantus @ Сегодня, 15:30 * ,

Я делаю в процедуре СформироватьОтчет()

Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
    
    УниверсальныйОтчет.ПостроительОтчета.Отбор.Добавить("Склад", "Склад", "Склад");
    УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Использование = Истина;
    УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Видсравнения = ВидСравнения.Равно;
    УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Значение      = Склад;

КонецПроцедуры


Перед установкой нужно еще проверить не установлен ли уже отбор.

Constantus Подменю пользователя
сообщение 15.06.17, 14:54
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

DrLivsi @ Сегодня, 17:40 * ,
Цитата(DrLivsi @ 15.06.17, 17:40) *
Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
    
    УниверсальныйОтчет.ПостроительОтчета.Отбор.Добавить("Склад", "Склад", "Склад");
    УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Использование = Истина;
    УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Видсравнения = ВидСравнения.Равно;
    УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Значение      = Склад;

КонецПроцедуры



Возможно я не правильно объяснил.
УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Использование = Истина;

Активирует галочку применения отбора по данному параметру.
Достаточно применить
УниверсальныйОтчет.ДобавитьОтбор("Склад",Истина);


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

Типа как я делал на отбор на список справочника:

    ЭтаФорма.Отбор.Наименование.Использование=Истина;
    ЭлементыФормы.СправочникСписок.Значение.Отбор.Наименование.ВидСравнения = ВидСравнения.ВСписке;
    ЭлементыФормы.СправочникСписок.НастройкаОтбора.Наименование.Доступность = Ложь;
    ЭтаФорма.Отбор.Наименование.Значение = СписокДокументов;


Т.е. пользователь мог наслаждаться только "предопределенным" списком и не мог отменить применения фильтра по Наименованию...

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

Vidocq05 Подменю пользователя
сообщение 15.06.17, 15:21
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Constantus @ Сегодня, 15:54 * ,
Например
На таб.поле повесить событие "ПередОкончаниемРедакимрования"
Проверять редактируемые данные (и если нужно - откуда вызывается форма) и если все сходится уходить в Отказ

Flexy Подменю пользователя
сообщение 15.06.17, 15:59
Сообщение #5

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Разберитесь с RLS. То, что вы сейчас пытаетесь сделать это костыли. Отбор тут не при чем.
Рулите доступность колонки вкл / выкл отбор или ловите событие ПриИзмененииФлажка в форме настроек универсального отчета.

DrLivsi Подменю пользователя
сообщение 15.06.17, 16:14
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 148
Из: Киев
Спасибо сказали: 19 раз
Рейтинг: 0

Constantus @ Сегодня, 15:54 * ,

Процедура СформироватьОтчет вызывается каждый раз при нажатии на кнопку "Сформировать" и что-бы пользователь с этой галочкой не делал в отборе, она все равно станет в истину перед формированием отчета:
УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Использование = Истина;

Спасибо сказали: Constantus,

sava1 Подменю пользователя
сообщение 15.06.17, 16:24
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

УниверсальнійОтчет надо курочить - Форму настройки - передавать параметры, а в форме анализировать, запрещать отбор.

Flexy Подменю пользователя
сообщение 15.06.17, 16:26
Сообщение #8

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(DrLivsi @ 15.06.17, 16:14) *
Процедура СформироватьОтчет вызывается каждый раз при нажатии на кнопку "Сформировать" и что-бы пользователь с этой галочкой не делал в отборе, она все равно станет в истину перед формированием отчета:
УниверсальныйОтчет.ПостроительОтчета.Отбор.Склад.Использование = Истина;

Если юзер в видах сравнения выставит не равно и поле склад будет пустым, то сформирует по всем складам.

Сообщение отредактировал Flexy - 15.06.17, 16:26

Vofka Подменю пользователя
сообщение 15.06.17, 16:26
Сообщение #9

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(Flexy @ 15.06.17, 16:59) *
Разберитесь с RLS. То, что вы сейчас пытаетесь сделать это костыли. Отбор тут не при чем.

Начинается faceoff.gif .
Конечно, нужно разобраться с RLS, переписать кучу мест, решая задачу "надо сделать так, чтобы Вася в этом отчете мог смотреть товары только по этому складу". Или в УТП изначально есть ограничения по складам? Если есть, то подскажите, как настроить.

Constantus Подменю пользователя
сообщение 15.06.17, 16:34
Сообщение #10

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

DrLivsi @ Сегодня, 19:14 * ,


Благодарю... не правильно первоначально использовал подсказку... Вроде сработало...

Vofka @ Сегодня, 19:26 * ,


Да уж... РЛС та еще штука... У меня есть по умолчанию только Организация и Контрагенты... В УТ для Казахстана есть побольше настроек, там в РЛС стоят и склады и кассы... Но моя попытка настроить роли под новые ограничения чуть катастрофой не обернулась...

Flexy @ Сегодня, 19:26 * ,


При данном раскладе (коде) при нажатии "Сформировать" отбор становится "Равно"

ЭлементыФормы.СправочникСписок.Значение.Отбор.Наименование.ВидСравнения = ВидСравнения.ВСписке;

DrLivsi Подменю пользователя
сообщение 15.06.17, 16:35
Сообщение #11

Завсегдатай
****
Группа: Пользователи
Сообщений: 148
Из: Киев
Спасибо сказали: 19 раз
Рейтинг: 0

Flexy @ Сегодня, 16:59 * ,
Я же написал выше код, там не только галка устанавливается, а и вид сравнения и значение.
Только перед этим кодом нужно делать проверку, что-бы не задваивать.

Constantus Подменю пользователя
сообщение 15.06.17, 16:39
Сообщение #12

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Цитата(Flexy @ 15.06.17, 19:26) *
Если юзер в видах сравнения выставит не равно и поле склад будет пустым, то сформирует по всем складам.



Да... Вы правы...

Цитата(DrLivsi @ 15.06.17, 19:35) *
Я же написал выше код, там не только галка устанавливается, а и вид сравнения и значение.
Только перед этим кодом нужно делать проверку, что-бы не задваивать.



Если отказаться от вида сравнения, что правильно в идеале, то офшоры открываются...

Действительно задваиваются, как проверить?

Flexy Подменю пользователя
сообщение 15.06.17, 16:39
Сообщение #13

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(Vofka @ 15.06.17, 16:26) *
Или в УТП изначально есть ограничения по складам?

Я уже писал давно решение. По моему, кстати даже для этого автора. Там решение 1 РС + 1 запрос. Все. Конечно, если есть желание переписать овер дофига форм, то вперед smile.gif

Constantus Подменю пользователя
сообщение 15.06.17, 16:43
Сообщение #14

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Цитата(Flexy @ 15.06.17, 19:39) *
Я уже писал давно решение. По моему, кстати даже для этого автора. Там решение 1 РС + 1 запрос. Все. Конечно, если есть желание переписать овер дофига форм, то вперед



А есть ссылка на это решение? icon_beer17.gif

Flexy Подменю пользователя
сообщение 15.06.17, 16:45
Сообщение #15

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(Constantus @ 15.06.17, 16:34) *
При данном раскладе (коде) при нажатии "Сформировать" отбор становится "Равно"

ЭлементыФормы.СправочникСписок.Значение.Отбор.Наименование.ВидСравнения = ВидСравнения.ВСписке;

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

Сообщение отредактировал Flexy - 15.06.17, 16:47

Constantus Подменю пользователя
сообщение 03.07.17, 11:14
Сообщение #16

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Продолжаем диалог.

В универсальном отчете вставил код

Процедура ТабличноеПолеОтбор1ВидСравненияНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    
        Элемент.СписокВыбора.Очистить();
    
    СписокВыбора  = Элемент.СписокВыбора;
    СписокВыбора.Добавить(ВидСравнения.Равно);
    СписокВыбора.Добавить(ВидСравнения.ВСписке);
    СписокВыбора.Добавить(ВидСравнения.ВСпискеПоИерархии);
    
КонецПроцедуры


Действительно, при открытии формы настройки Вид сравнения установился согласно указанному в коде списка. Т.е. проблема "Не" как бы решилась. Но...
Когда я в отбор добавил другое поле отбора по кол-ву, стоимости или другим именно числовым значениям, то список соответственно остался "моим", т.е. там нету отборов вида сравнения, характерных для числовых значений (Больше, меньше, больше или равно, по периоду и т.д.). Значит этот список "ВидСравнения" формируется где-то еще и меняется в зависимости от типа поля отбора.

Кто-нить знает где найти формирование списка "ВидаСравнения" при открытии формы настроек универсального значения? Или может есть смысл проверить тип поля отбора и в зависимости от типа выводить нужный список? Если да, то как?


Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 11:11
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!