Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как передать дополнительные параметры с формы в СКД ?

Как передать дополнительные параметры с формы в СКД ?
Я
   vv2304
 
06.08.19 - 08:22
УФ.
Создан отчет на СКД. Создана форма настроек куда вынесены реквизиты отчета.
Здесь скрин  https://s8.hostingkartinok.com/uploads/images/2019/08/efa4a1dd111932ebf8e4bc68dc7f65ec.jpg
Щелкаю по настройкам, скрин здесь  https://s8.hostingkartinok.com/uploads/images/2019/08/284476ca39a7b051c61b725f654d8610.jpg
Вылетает ошибка "{ОбщийМодуль.ОбщегоНазначенияКлиентСервер.Модуль(338)}: Итератор для значения не определен
    Для Каждого Элемент Из Источник Цикл"
Скрин ошибки  https://s8.hostingkartinok.com/uploads/images/2019/08/03c3da7f62bcd2619bbd5b3aca847bd4.jpg

Не могу понять :(
 
 
   vv2304
 
1 - 06.08.19 - 08:24
Отладчиком в модуле формы проверяю, все заполненные реквизиты отчета видны и заполнены. На скрине убрал
А в модуле объекта в процедуре ПриКомпоновкеРезультата
их ни одного нет, у всех "". Все реквизиты-строка неогр.длины.
   Пробел
 
2 - 06.08.19 - 08:38
Вопроса не понял, но я бы попробовал перенести все реквизиты отчета в параметры СКД, а дальше через КомпоновщикНастроек...
   vv2304
 
3 - 06.08.19 - 08:45
(2) Реквизит "ПутьКБазе" - это для интерактивного выбора на форме расположения каталога базы.
Логин и пароль - тоже вводятся интерактивно.
   vv2304
 
4 - 06.08.19 - 08:48
Логин можно, а вот пароль с учетом тогоа, что он должен вводиться именно как пароль ?
Ну и путь к другой базе нужно выбирать.
Поэтом эти реквизиты сделал реквизитами отчета.
Но как их разместить на форме отчета, созданного на СКД ?
Пробовал обычную форму добавить, там орет, что настройки не переданы.
   Mankubus
 
5 - 06.08.19 - 08:54
делаешь реквизиты отчета. размешаешь их на форме.
в процедуре ПриКомпоновкеРезультата передаешь их в СКД
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Имя", Значение)
   vv2304
 
6 - 06.08.19 - 08:56
(5) При таком варианте при нажатии кнопки "Настройка" вылетает
{ОбщаяФорма.ФормаНастроекОтчета.Форма(34)}: Не передан служебный параметр "НастройкиОтчета".
        ВызватьИсключение НСтр("ru = 'Не передан служебный параметр ""НастройкиОтчета"".'");
   vv2304
 
7 - 06.08.19 - 09:10
Получается,что надо создавать обе формы, и настройи и обычную. Форма настроек не заполняется, весь код в модуле основной формы: выбор баз, логины и пароли.
А в модуле объекта все это подхватится.
Т.е. основная засада была в том, что надо  было создать ДВЕ формы.
   МаксимНижегородец
 
8 - 06.08.19 - 09:18
(7) Всегда делается так: На основную форму ОТЧЕТА помещаются самые нужные параметры отчета (их обычно немного, на пример Период, Организация, Склад). А в настройки заходят для более тонкой настройки отчета (если такая требуется). (5) Тут правильно.
   Sasha_H
 
9 - 06.08.19 - 09:35
(5)
Дополню немножко:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    УстановитьНовоеЗначениеПараметраДанных("Парам1", ПолучитьЗначениеПараметраДанных("Парам1_1"));
    УстановитьНовоеЗначениеПараметраДанных("Парам2", ПолучитьЗначениеПараметраДанных("Парам2_1"));
    
КонецПроцедуры

Функция ПолучитьЗначениеПараметраДанных(ИмяПараметра)
    
    ПараметрДанных                 = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
    ПараметрДанныхПользовательский = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
    
    Возврат ПараметрДанныхПользовательский.Значение;
КонецФункции

Процедура УстановитьНовоеЗначениеПараметраДанных(ИмяПараметра, НовоеЗначение)
    
    ПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
    ПараметрДанных.Значение.ЗагрузитьЗначения(НовоеЗначение);
    ПараметрДанных.Использование = Истина;
    
КонецПроцедуры


Учитывается пользовательское изменение параметра.
   Sasha_H
 
10 - 06.08.19 - 09:39
Это как пример, где вариатор ЗагрузитьЗначения используется только для СпискаЗначений. Поэтому комбинаторика в случае разных типов будет сложней.
   Sasha_H
 
11 - 06.08.19 - 09:42
(9) В моем случае я решал, пользователь в параметры скд передавал Список разных артикулов причем там была еще обработка этого я скрыл так как кода много. ТОесть пользователь мог скопировать колонку из ексель и вбабахать в параметр, а скд в свою очередь выдать результат с отбором.

Просто разъяснил причину связанности установки параметра в СКД за счет другого параметра СКД.
   vv2304
 
12 - 06.08.19 - 15:13
Не, не пойдет, мне же нужно еще и сохранять варианты отчета.
   vv2304
 
13 - 06.08.19 - 16:29
Люди, так как тогда сохранять варианты если параметры - это реквизиты отчета ?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.