По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(14) Serge_ASB,
Программно.
Вывести поле выбора Контрагента.
Вывести поле выбора (поле ввода), и обрабатывать его - установить "Связь по владельцу" с полем Контрагент. Есть контрагент - в список попадут только его договора. Нет - предложит выбор (если в поле тип данных будет - "ДоговораКонтрганета", из-за подчиненности справочника "ДоговораКонтрагентов - справочнику "Контрагенты").
(15) Serge_ASB,
Если Контрагент не выбран - какие же договора (кто это будет - "этот контрагент") попадут в отбор?
Программно.
Вывести поле выбора Контрагента.
Вывести поле выбора (поле ввода), и обрабатывать его - установить "Связь по владельцу" с полем Контрагент. Есть контрагент - в список попадут только его договора. Нет - предложит выбор (если в поле тип данных будет - "ДоговораКонтрганета", из-за подчиненности справочника "ДоговораКонтрагентов - справочнику "Контрагенты").
(15) Serge_ASB,
Если Контрагент не выбран, то установить для поля Договор отбор по договорам с этим контрагентом.
Если Контрагент не выбран - какие же договора (кто это будет - "этот контрагент") попадут в отбор?
(16) AlexO,
связь по владельцу пробовал установить (вкладка Наборы Данных). В форме не реагирует. Есть инфо, что срабатывает ожидаемо в управляемых формах. У меня - неуправляемые.
Думаю, что помог бы совет, как найти в параметрах отбора соответствующее левому "Контрагент" правое значение.
И это правое значение использовать для Поля Договор как Владелец.
А вот как это все реализовать?
Где в этих параметрах отбора СКД отловить "при начале выбора"?
связь по владельцу пробовал установить (вкладка Наборы Данных). В форме не реагирует. Есть инфо, что срабатывает ожидаемо в управляемых формах. У меня - неуправляемые.
Думаю, что помог бы совет, как найти в параметрах отбора соответствующее левому "Контрагент" правое значение.
И это правое значение использовать для Поля Договор как Владелец.
А вот как это все реализовать?
Где в этих параметрах отбора СКД отловить "при начале выбора"?
(17) Serge_ASB,
Надо делать свое поле на форме отчета, а не в НаборДанных. И привязывать его к программно же Параметрам из НаборДанных.
Не надейтесь )) Что за инфо? Там все также, как и здесь, по отношению к СКД - ничего не изменилось.
связь по владельцу пробовал установить (вкладка Наборы Данных)
Надо делать свое поле на форме отчета, а не в НаборДанных. И привязывать его к программно же Параметрам из НаборДанных.
Есть инфо, что срабатывает ожидаемо в управляемых формах.
Не надейтесь )) Что за инфо? Там все также, как и здесь, по отношению к СКД - ничего не изменилось.
(17) Serge_ASB,
Форма есть, добавляем новые поля (Договор и т.д.), обрабатываем их события программно с привязкой к Параметрам и Настройкам СКД (значения из поля - в СКД, установки из СКД - в поле).
У Договор - выставлен Владелец Контрагент.
И это правое значение использовать для Поля Договор как Владелец.
Форма есть, добавляем новые поля (Договор и т.д.), обрабатываем их события программно с привязкой к Параметрам и Настройкам СКД (значения из поля - в СКД, установки из СКД - в поле).
У Договор - выставлен Владелец Контрагент.
Прикрепленные файлы:
ПОступлениеПоГТДЗаПериодНов_Договор.erf
(21) AlexO,
"вколхозил" таким вот образом.
3 поля: Организация, Контрагент, Договор".
Договор зависит от Контрагента.
В принципе, Контрагент (список значений) может определяться организацией...
Обрабатывается изменение состояния поля, боавляется (изменяется) отбор.
Вроде работает. Буду тестить "на кошках"
"вколхозил" таким вот образом.
3 поля: Организация, Контрагент, Договор".
Договор зависит от Контрагента.
В принципе, Контрагент (список значений) может определяться организацией...
Обрабатывается изменение состояния поля, боавляется (изменяется) отбор.
Вроде работает. Буду тестить "на кошках"
Прикрепленные файлы:
(23) Serge_ASB,
Вместо
можно проще:
Вместо
Процедура ИзменитьОтбор(ЭлементСтруктуры, СоответствиеПоискаОтбора = Неопределено, СоответствиеНовогоОтбора,ИмяПоля,ЗначениеПоля) Экспорт
Если ТипЗнч(ЭлементСтруктуры) = Тип("КомпоновщикНастроекКомпоновкиДанных") Тогда
Отбор = ЭлементСтруктуры.Настройки.Отбор;
Иначе
Отбор = ЭлементСтруктуры;
КонецЕсли;
и т.д....
Показатьможно проще:
// найдем в Настройках:
ПараметрКонтрагент = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Контрагент"));
ПараметрКонтрагент.Значение = Элемент.Значение; // зададим значение из поля ввода Контрагент
ПараметрКонтрагент.Использование = Истина; //разрешим использование
// внесем измененные настройки в схему компоновки:
Настройки = КомпоновщикНастроек.Настройки;
(24) AlexO,
здорово. Попробую.
Кстати. а как сделать, чтобы панель настроек, сдвинутая в правую часть отчета, по флажку отображалась/сворачивалась?
Вернее, чтобы поле табличного документа (Результат) выходило на ширину формы?
Не совсем понял про привязки: про привязки панели настроек - да, получается, а вот про "основную информационную часть" - пока нет.
здорово. Попробую.
Кстати. а как сделать, чтобы панель настроек, сдвинутая в правую часть отчета, по флажку отображалась/сворачивалась?
Вернее, чтобы поле табличного документа (Результат) выходило на ширину формы?
Не совсем понял про привязки: про привязки панели настроек - да, получается, а вот про "основную информационную часть" - пока нет.
Прикрепленные файлы:
Скажите, как в неуправляемой форме отчета установить отбор по владельцу для поля Договор (владельцем является Контрагент, присутствующий в этой же форме)?
Если Контрагент не выбран, то установить для поля Договор отбор по договорам с этим контрагентом.
Если Контрагент не выбран, то установить для поля Договор отбор по договорам с этим контрагентом.
как найти в параметрах отбора соответствующее левому "Контрагент" правое значение.
Никак, в СКД нельзя непрограммно обрабатывать поля на вкладках отборов и прочего.
Где в этих параметрах отбора СКД отловить "при начале выбора"?
Нигде, у полей НаборДанных нет обрабатываемых событий; события обрабатываются только у отдельных (не Набор СКД, выведенный на форму, и прочее) полей на форме.
Может кому поможет. У меня была ситуация когда нужен был отбор со следующими значениями по умолчанию:
1.Вид сравнения в группе
2.Правое значение группа справочника
-Вид сравнения в группе установил в настройках скд (см. рисунок ВСписке.jpg)
-Правое значение установил программно в процедуре ПриСозданииНаСервере()
ЕлементОтбора = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить(0);
ПолеОтбора = Новый ПолеКомпоновкиДанных("Контрагент");
ЕлементОтбора.ЛевоеЗначение = ПолеОтбора;
ЕлементОтбора.Использование = Истина;
ЕлементОтбора.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("00-000784").Ссылка;
1.Вид сравнения в группе
2.Правое значение группа справочника
-Вид сравнения в группе установил в настройках скд (см. рисунок ВСписке.jpg)
-Правое значение установил программно в процедуре ПриСозданииНаСервере()
ЕлементОтбора = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить(0);
ПолеОтбора = Новый ПолеКомпоновкиДанных("Контрагент");
ЕлементОтбора.ЛевоеЗначение = ПолеОтбора;
ЕлементОтбора.Использование = Истина;
ЕлементОтбора.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("00-000784").Ссылка;
Прикрепленные файлы:
(26) просто не утерпела
вот это: Справочники.Контрагенты.НайтиПоКоду("00-000784").Ссылка зачем???
Зачем разыменование ссылка? НайтиПоКоду уже возвращает ссылку, по хорошему ты пишешь Ссылка.Ссылка, что дает дополнительный запрос к базе, причем совершенно не нужный.
вот это: Справочники.Контрагенты.НайтиПоКоду("00-000784").Ссылка зачем???
Зачем разыменование ссылка? НайтиПоКоду уже возвращает ссылку, по хорошему ты пишешь Ссылка.Ссылка, что дает дополнительный запрос к базе, причем совершенно не нужный.
Я устанавливаю параметры так:
ПолеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода");
Если ПолеПараметра <> Неопределено Тогда
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"), ?(КонецПериода = '00010101', Дата("39991001"), КонецДня(КонецПериода)));
КонецЕсли;
Программно установить отбор в СКД на весь отчет можно вот так:
А как установить отбор в конкретной группировке?
Код |
---|
НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Организация")).Поле;
НовыйЭлементОтбора.ПравоеЗначение = Организация;
Показать полностью |
А как установить отбор в конкретной группировке?
Короче вот так:
Код |
---|
НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Структура[0].Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Организация")).Поле;
НовыйЭлементОтбора.ПравоеЗначение = Организация;
Показать полностью |
У меня вот так
Что значит "отбор в группировке" или "отбор в поле" я не понял
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("СкладНедокомплект").Значение = Константы.ОсновнойСкладКомплектующих.Получить();
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("СкладНедокомплект").Использование = Истина;
Что значит "отбор в группировке" или "отбор в поле" я не понял
ошибку вываливает :(
{Форма.ФормаОтчета(194)}: Значение не является значением объектного типа (Значение)
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Магазин").Значение = Константы.Магазин.Получить();
{Форма.ФормаОтчета(194)}: Значение не является значением объектного типа (Значение)
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Магазин").Значение = Константы.Магазин.Получить();
не совсем так... я тут докопался и сделал половину дела
теперь бы мне запретить пользователю убирать галочку "Использование" или вообще запретить изменение данной строки
Настройки = КомпоновщикНастроек.Настройки;
ЭлементОтбора = Настройки.Отбор.Элементы.Получить(1);
ЭлементОтбора.ПравоеЗначение = Константы.Магазин.Получить();
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
теперь бы мне запретить пользователю убирать галочку "Использование" или вообще запретить изменение данной строки
(11) Зачем он тебе вообще в отборе если его менять нельзя? Просто запрети вывод в отбор.
Если ты все таки хочешь извращаться, то доступ можно запретить только на самих(ой) форме к этому элементу формы. Например при активизации строки запрещать доступ к ячейке со значением.
Если ты все таки хочешь извращаться, то доступ можно запретить только на самих(ой) форме к этому элементу формы. Например при активизации строки запрещать доступ к ячейке со значением.
нужно именно так потому что одному пользователю это можно смотреть, а другому нет, в общем я обошел проблему следующим образом
1. при открытии вставил код ()
2. пользователь может менять все, как захочет, но....волшебная кнопка "Сформировать" перед основной процедурой опять выполняет код (9)
тема для меня закрыта, спасибо, буду рад более оригинальным решениям
1. при открытии вставил код ()
2. пользователь может менять все, как захочет, но....волшебная кнопка "Сформировать" перед основной процедурой опять выполняет код (9)
тема для меня закрыта, спасибо, буду рад более оригинальным решениям
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот