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

Хранилище

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

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



> Как передать данные из формы отчёта в параметры запроса? 2 страниц V   1 2 >          
Powerman Подменю пользователя
сообщение 01.07.12, 18:47
Сообщение #1

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

Сделал отчёт, всё работает, но захотелось вынести настройки периода на форму отчёта.

На форму добавил поля ввода НачалоПериода и КонецПериода но вот как передать значения даты в параметры запроса и сформировать запрос из процедуры не могу разобраться (параметры в запросе так же называются НачалоПериода и КонецПериода) . Понял только что стандартной кнопкой «Сформировать» запрос с моими параметрами даты получить не получится, поэтому на стандартную кнопку повесил событие (процедуру) ДействияФормыОсновныеСформировать где и собирался передавать параметры в запрос.

Подскажите, пожалуйста, как реализовать задумку.

Заранее спасибо!

logist Подменю пользователя
сообщение 01.07.12, 19:13
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Не надо никаких дополнительных кнопок.
Параметры передаются так же как и при обычной работе с запросом.
Запрос.УстановитьПараметр("ИмяПараметра", РеквизитФормыСодержащийПараметр);


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

Powerman Подменю пользователя
сообщение 01.07.12, 19:28
Сообщение #3

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

Цитата(logist @ 01.07.12, 20:13) *
Не надо никаких дополнительных кнопок.
Параметры передаются так же как и при обычной работе с запросом.
Запрос.УстановитьПараметр("ИмяПараметра", РеквизитФормыСодержащийПараметр);


Где это прописать?


 i 

Не надо писать большими буквами!
 


Сообщение отредактировал logist - 01.07.12, 21:39

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

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Powerman @ 01.07.12, 20:28) *
Где это прописать?

Там же где создаете запрос, текст запроса, перед Запрос.Выполнить()


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Powerman Подменю пользователя
сообщение 02.07.12, 6:41
Сообщение #5

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

Цитата(logist @ 01.07.12, 22:40) *
Там же где создаете запрос, текст запроса, перед Запрос.Выполнить()


Я отчёт делал через СКД т.е. текста запроса я не вижу, форму отчёта я также делал ручками в модуле формы и объекта ничего не было. Отчёт при этом исправно работал.




 ! 

Правила, п. 13
 


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

Сообщение отредактировал logist - 03.07.12, 8:12

Batchir Подменю пользователя
сообщение 02.07.12, 7:15
Сообщение #6

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

Ну тогда прописывать установку параметров программно.
типа
СхемаКомпоновкиДанных.Параметры["НачалоПериода"].Значение =НачалоДня(НачалоПериода);


или вариант №2 - это поместить на форму таблицу значений, а у неё выбрать доступный тип, который будет содержать параметры компановки.

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

logist Подменю пользователя
сообщение 02.07.12, 12:11
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Powerman @ 02.07.12, 7:41) *
Я отчёт делал через СКД

А сразу об это написать было сложно? И у нас для этого специальный раздел есть http://pro1c.org.ua/index.php?showforum=258

Даже если Вы сами рисовали форму, то в ней должен быть объект "отчет" в котором есть Компоновщик настроек, который содержит "Пользовательские настройки" это и есть таблица настроек параметры из которой попадают в СКД как Параметры указанные в схеме на вкладке на вкладке параметры.
Если в запросе указать необходимые параметры то они автоматически попадут на эту вкладу, и станут доступными пользователю если на вкладке "Настройки" - > Параметры указать в их свойствах "Включать в пользовательские настройки"


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

Powerman Подменю пользователя
сообщение 03.07.12, 6:39
Сообщение #8

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

Цитата(Batchir @ 02.07.12, 8:15) *
Ну тогда прописывать установку параметров программно.
типа
СхемаКомпоновкиДанных.Параметры["НачалоПериода"].Значение =НачалоДня(НачалоПериода);

или вариант №2 - это поместить на форму таблицу значений, а у неё выбрать доступный тип, который будет содержать параметры компановки.


Написал первый вариант, но значения в СКД не записываются.

Что необходимо написать, что бы в СКД записались значения параметров? (для первого варианта решения)


Batchir Подменю пользователя
сообщение 03.07.12, 7:25
Сообщение #9

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

Цитата(Powerman @ 03.07.12, 7:39) *
Написал первый вариант, но значения в СКД не записываются.

Подробнее ... что и где написали.

Powerman Подменю пользователя
сообщение 03.07.12, 8:18
Сообщение #10

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

Цитата(Batchir @ 03.07.12, 8:25) *
Подробнее ... что и где написали.


Понимаю что наверное бред написал но пока к сожалению не могу разобраться с СКД. Дали кучу работы некогда умные книги почитать.

Процедура СформироватьОтчет(Результат = Неопределено, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина, ВнешниеНаборыДанных = Неопределено) Экспорт
    
    // Проверим заполнение обязательных реквизитов
    Если ПроверитьЗаполнениеОбязательныхРеквизитов() Тогда
        Возврат;
    КонецЕсли;
    
    Результат.Очистить();
    
    СхемаКомпоновкиДанных.Параметры["НачалоПериода"].Значение =НачалоДня(НачалоПериода);
    СхемаКомпоновкиДанных.Параметры["КонецПериода"].Значение =НачалоДня(КонецПериода);
    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ДоработатьКомпоновщикПередВыводом(ВнешниеНаборыДанных);
    КомпоновщикНастроек.Восстановить();
    НастройкаКомпоновкиДанных = КомпоновщикНастроек.ПолучитьНастройки();
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
    СтандартныеОтчеты.ВывестиОтчет(ЭтотОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета, ВнешниеНаборыДанных, Истина, НастройкаКомпоновкиДанных);
    
    // Выполним дополнительную обработку Результата отчета
    //ОбработкаРезультатаОтчета(Результат);
КонецПроцедуры

logist Подменю пользователя
сообщение 03.07.12, 8:28
Сообщение #11

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Синтаксис-помощник: ПользовательскиеНастройкиКомпоновкиДанных


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Batchir Подменю пользователя
сообщение 03.07.12, 8:44
Сообщение #12

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

//Получаем схему из макета
    ТекущаяСхемаКомпоновкиДанных = ПолучитьМакет("МояСКД");
    
    //Устанавливаем параметры
    ТекущаяСхемаКомпоновкиДанных.Параметры["НачалоПериода"].Значение =НачалоДня(НачалоПериода);
    ТекущаяСхемаКомпоновкиДанных.Параметры["КонецПериода"].Значение =КонецДня(КонецПериода);
    
    //Из схемы возьмем настройки по умолчанию
    Настройки = ТекущаяСхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    
    //Помещаем в переменную данные о расшифровке данных
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    
    //Формируем макет, с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ТекущаяСхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    
    //Очищаем поле табличного документа
    Результат = ЭлементыФормы.Результат;
    Результат.Очистить();
    
    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


logist Подменю пользователя
сообщение 03.07.12, 8:46
Сообщение #13

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Блин, ну зачем такие сложности?)) Можно же просто вывести на форму пользовательские настройки..


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

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

Цитата(Powerman @ 03.07.12, 9:18) *
Дали кучу работы некогда умные книги почитать.

faceoff.gif

Цитата(logist @ 03.07.12, 9:46) *
Можно же просто вывести на форму пользовательские настройки..

Если интерфейс управляемый

Batchir Подменю пользователя
сообщение 03.07.12, 8:51
Сообщение #15

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

Цитата(logist @ 03.07.12, 9:46) *
Блин, ну зачем такие сложности?)) Можно же просто вывести на форму пользовательские настройки..

Можно, а юзабилити?

Цитата(Vofka @ 03.07.12, 9:47) *
Если интерфейс управляемый

Да можно и для обычного, но выглядеть это будет в виде таблицы

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

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

Цитата(Batchir @ 03.07.12, 9:51) *
Да можно и для обычного, но выглядеть это будет в виде таблицы

Не, таблица - это вчерашний день.

Batchir Подменю пользователя
сообщение 03.07.12, 9:06
Сообщение #17

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

Цитата(Vofka @ 03.07.12, 9:53) *
Не, таблица - это вчерашний день.

я ж о том же, что если задача стоит "тупо сделать", тогда таблицу на форму с нужным типом и все параметры будут автоматом заполняться, нужно только значения выбрать.
Если нужна красота, то ручками всё писать.

Powerman Подменю пользователя
сообщение 03.07.12, 9:06
Сообщение #18

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

Цитата(Batchir @ 03.07.12, 9:44) *
//Получаем схему из макета
    ТекущаяСхемаКомпоновкиДанных = ПолучитьМакет("МояСКД");
    
    //Устанавливаем параметры
    ТекущаяСхемаКомпоновкиДанных.Параметры["НачалоПериода"].Значение =НачалоДня(НачалоПериода);
    ТекущаяСхемаКомпоновкиДанных.Параметры["КонецПериода"].Значение =КонецДня(КонецПериода);
    
    //Из схемы возьмем настройки по умолчанию
    Настройки = ТекущаяСхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    
    //Помещаем в переменную данные о расшифровке данных
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    
    //Формируем макет, с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(ТекущаяСхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    
    //Очищаем поле табличного документа
    Результат = ЭлементыФормы.Результат;
    Результат.Очистить();
    
    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);




Эта процедура должна быть в модуле формы?

Моя процедура СформироватьОтчет в модуле объекта, при проверке синтаксиса выдаёт ошибку: {ВнешнийОтчет.КонтрольРНДоверНакл.МодульОбъекта(39,17)}: Переменная не определена (ЭлементыФормы)

Результат = <<?>>ЭлементыФормы.Результат; (Проверка: Толстый клиент (обычное приложение))

Сообщение отредактировал Vofka - 03.07.12, 9:09

Batchir Подменю пользователя
сообщение 03.07.12, 9:29
Сообщение #19

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1426 раз
Рейтинг: 0

1. Я привел пример реализации программного формирования и вывода отчета СКД, по которому Вы сможете написать то что Вам нужно

2. Что такое Результат в Вашей процедуре? В моем примере это поле табличного документа на форме.

Сообщение отредактировал Batchir - 03.07.12, 9:35

logist Подменю пользователя
сообщение 03.07.12, 9:37
Сообщение #20

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Powerman @ 03.07.12, 10:06) *
Результат = <<?>>ЭлементыФормы.Результат; (Проверка: Толстый клиент (обычное приложение))

Нельзя в модуле объекта обращается к элементам формы.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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


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

 

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