|
Установка доступных значений выбора в параметр отчета | ☑ | ||
---|---|---|---|---|
0
Вова 100кг
04.07.24
✎
10:07
|
Всем привет, 1С УХ. Возник такой вопрос. Есть отчет (внешний), у него есть параметры - организация и период. Список выбора параметра организация должен меняться в момент изменения периода. Добавить значения в список выбора у меня получилось, но они не кликабельные. Форма отчета - общая.
Код добавления в список выбора Элементы.КомпоновщикНастроекПОльзовательскиеНастройкиЭлемент1Значение.СписокВыбора.УстановитьЗначения(Массив). Самое интересное что в модуле отчета ПриОпределенииПараметровВыбора с добавлением в нужную настройку списка выбора - все добавляется. Я просмотрел типовой код и делал по аналогии - но увы, не получилось, может кто-то сталкивался. |
|||
1
Волшебник
04.07.24
✎
10:10
|
>> Список выбора параметра организация должен меняться в момент изменения периода.
Как связаны период и организация? |
|||
2
Вова 100кг
04.07.24
✎
10:11
|
(1), никак не связаны. Просто при изменении параметра "период", должны браться организации из регламента сценария периода МСФО.
|
|||
3
Волшебник
04.07.24
✎
10:12
|
(2) Если никак не связаны, то почему должны? Вы противоречите сами себе.
|
|||
4
Вова 100кг
04.07.24
✎
10:14
|
Я добавил событие при изменении параметра периода. И вытащить нужные организации у меня получилось. Не получается их корректно воткнуть их в список выбора параметра организации. Получается воткнуть только так что бы они отображались и их нельзя выбрать)
|
|||
5
Вова 100кг
04.07.24
✎
10:18
|
(3) я думаю что проблема в том что я не туда закидываю список выбора. Элементы.КомпоновщикНастроекПОльзовательскиеНастройкиЭлемент1Значение.СписокВыбора.УстановитьЗначения(Массив)
Вот сюда закидывается сейчас, а вероятно нужно закидывать в другое место. Я методом научного тыка пробовал - не прокатило. |
|||
6
Вова 100кг
04.07.24
✎
10:23
|
Если будет более понятнее вот код обработчика:
Массив = Новый Массив; Для каждого Регламент Из Регламенты Цикл Организации = JSA_ЗакрытиеМесяцаПовтИсп.ПолучитьСписокОрганизацийРегламентаОтчетностиМСФО(Регламент); Для каждого Организация Из Организации Цикл Если Массив.Найти(Организация) = Неопределено Тогда Массив.Добавить(Организация); КонецЕсли; КонецЦикла; КонецЦикла; Элементы.КомпоновщикНастроекПОльзовательскиеНастройкиЭлемент1Значение.СписокВыбора.Очистить(); Элементы.КомпоновщикНастроекПОльзовательскиеНастройкиЭлемент1Значение.СписокВыбора.УстановитьЗначения(Массив); |
|||
7
Вова 100кг
04.07.24
✎
10:28
|
(6) Прошу прощения, вместо УстановитьЗначения - ЗагрузитьЗначения
|
|||
8
RVN
04.07.24
✎
10:31
|
А если так ?
ЭлементНастройки = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Организация"); Если ЭлементНастройки <> Неопределено Тогда ЭлементПользовательскойНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЭлементНастройки.ИдентификаторПользовательскойНастройки); Если ЭлементПользовательскойНастройки <> Неопределено Тогда ЭлементПользовательскойНастройки.СписокВыбора.Очистить(); ЭлементПользовательскойНастройки.СписокВыбора.ЗагрузитьЗначения(Массив); КонецЕсли; // Если ЭлементПользовательскойНастройки <> Неопределено Тогда КонецЕсли; // Если ЭлементНастройки <> Неопределено Тогда |
|||
9
Вова 100кг
04.07.24
✎
10:37
|
(8), Поле объекта не обнаружено (СписокВыбора)
|
|||
10
youalex
04.07.24
✎
10:51
|
А вот это например
ДоступныйПараметрКомпоновкиДанных (DataCompositionAvailableParameter) ДоступныеЗначения (AvailableValues) Использование: Чтение и запись. |
|||
11
youalex
04.07.24
✎
10:52
|
* если подойдет, то у тебя в топике ответ)
|
|||
12
Вова 100кг
04.07.24
✎
10:52
|
(8), организации которые добавляются - отображаются как уже выбранные в виде <<Пустое значение>>. Это я закидывал и в ЭлементПользовательскойНастройки.Значение и в ЭлементПользовательскойНастройки.Значение.ДоступныеЗначения
|
|||
13
Ногаминебить
04.07.24
✎
10:55
|
(6) Тип значения под отладкой какой у элементов массива?
|
|||
14
Вова 100кг
04.07.24
✎
10:57
|
(13), СправочникСсылка.Организации
|
|||
15
Волшебник
04.07.24
✎
11:02
|
(7) Чтобы не было таких косяков, просто копируйте программный код. Не выдумывайте
|
|||
16
Ногаминебить
04.07.24
✎
11:05
|
(14) Точно? А Организации - это массив или Список значений?
|
|||
17
Вова 100кг
04.07.24
✎
11:11
|
(16), я пробовал и то и то
|
|||
18
Вова 100кг
04.07.24
✎
11:13
|
(15), не могу скопировать программый код, потому что там идет
обращение к разным модулям. Единственная процедура которая запускает все это - она экспортная, но на вход требует Объект отчета - внешний отчет. А у формы общей нет этих данных |
|||
19
Вова 100кг
04.07.24
✎
11:15
|
(16), единственное при СпискеЗначений ругается на сериализацию ЭлементаСпискаЗначений, делал через
Для Каждого Эл из СпискаЗначений Цикл ....Значение.Добавить(Эл); КонецЦикла; |
|||
20
Ногаминебить
04.07.24
✎
11:15
|
В каком смысле то и то? Функция JSA_ЗакрытиеМесяцаПовтИсп.ПолучитьСписокОрганизацийРегламентаОтчетностиМСФО(Регламент) возвращает значение вполне конкретного типа. Этот тип и интересует. Или функция тоже в процессе переписывалась?
Вот на такое поменять пробовал? Если Массив.Найти(Организация.Значение) = Неопределено Тогда Массив.Добавить(Организация.Значение); КонецЕсли; |
|||
21
Вова 100кг
04.07.24
✎
11:16
|
(19), *Эл.Значение
|
|||
22
Вова 100кг
04.07.24
✎
11:17
|
(20), Функцию сам делал, она возвращает массив смотрите (6),
там расписано что после получения идет |
|||
23
Вова 100кг
04.07.24
✎
11:19
|
(20),
Есть код в модуле внешнего отчета, где все хорошо добавляется. Там тоже используется эта функция. Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт Если СвойстваНастройки.ОписаниеТипов = Новый ОписаниеТипов("СправочникСсылка.Организации") Тогда Период = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти("abb1c1b1-911f-477f-9e75-34e8576c9377").Значение; Регламенты = JSA_ЗакрытиеМесяцаПовтИсп.ПолучитьАктуальныеРегламентыМСФОНаПериод(Период.ДатаНачала, Период.ДатаОкончания); Массив = Новый Массив; Если Регламенты <> Неопределено Тогда Для каждого Регламент Из Регламенты Цикл Организации = JSA_ЗакрытиеМесяцаПовтИсп.ПолучитьСписокОрганизацийРегламентаОтчетностиМСФО(Регламент); Для каждого Организация Из Организации Цикл Если Массив.Найти(Организация) = Неопределено Тогда Массив.Добавить(Организация); КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; СвойстваНастройки.ЗначенияДляВыбора.ЗагрузитьЗначения(Массив); КонецЕсли; КонецПроцедуры |
|||
24
RVN
04.07.24
✎
11:23
|
(23) Если у тебя добавляется то в чем проблема-то?
|
|||
25
Ногаминебить
04.07.24
✎
11:25
|
Текст в (12) очень похож на то, что где-то не совпадают типы. Массив из кучи пустых ссылок скорее всего из-за этого. А вот где с типами косяк - это под отладкой по шагам. Тем более кода не так и много. Это конечно всего лишь гипотеза, но других-то пока нет. :)
|
|||
26
Вова 100кг
04.07.24
✎
14:09
|
(25), спустя неделю мучений дошло. Те поля что лежат на форме не питаются от пользовательских настроек. Им отдельно задаются значения. Вот почему нельзя было и выбрать на поле есть данные, а в настройке нету. По итогу путем затаскивания и туда и туда получилось сделать как положено.
Код - ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение.ДатаНачала = ДатаНачала; ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение.ДатаОкончания = ДатаОкончания; ОтчетыСервер.УстановитьДоступныеЗначения(ОтчетОбъект, ЭтаФорма); Если Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[1].Значение.Количество() <> 0 Тогда Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[1].Значение.Очистить(); КонецЕсли; Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.ДоступныеПараметры.Элементы[3].ДоступныеЗначения = СписокЗначений; Если Элементы.КомпоновщикНастроекПользовательскиеНастройкиЭлемент1Значение.СписокВыбора.Количество() <> 0 Тогда Элементы.КомпоновщикНастроекПользовательскиеНастройкиЭлемент1Значение.СписокВыбора.Очистить(); КонецЕсли; Для каждого Эл Из СписокЗначений Цикл Элементы.КомпоновщикНастроекПользовательскиеНастройкиЭлемент1Значение.СписокВыбора.Добавить(Эл.Значение); КонецЦикла; ВСЕМ ОГРОМНОЕ СПАСИБО! |
|||
27
Волшебник
04.07.24
✎
14:15
|
(26) Как? Уже неделя пролетела? Вот время летит...
|
|||
28
Вова 100кг
04.07.24
✎
14:23
|
(27) Ну я же не сразу на форум полез)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |