Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Янв 2017, 01:01
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: установка параметра запроса в управляемом приложении  (Прочитано 572 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн anonim1

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-16
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день.Помогите пожалуйста установить параметр запроса в управляемом приложении. На форме имеется 2 поля типа дата: начало периода и конец периода,для того, чтобы запрос осуществлялся между этими датами. В обычном приложении я обычно пишу ИмяПеременной=ЭлементыФормы.ИмяЭлементаФормы,  но в управляемом возникает ошибка, переменная Элементы формы не определена. Пробовал писать вместо ЭлементыФормы Объект, результат тот же, подскажите пожалуйста, как задать параметр запроса элемент формы поле дата в управляемом приложении,  ниже приведен код, где знак вопроса стоит там, где , как я полагаю, необходимо вставить ссылку на элемент формы тип дата,   
&НаСервереБезКонтекста
Процедура ВыгрузитьОтчетНаСервере()
   Попытка Эксель=Новый COMОбъект("Excel.Application")
      Исключение Сообщить(ОписаниеОшибки());
      КонецПопытки;
      Книга=Эксель.WorkBooks.Add();
      Лист=Книга.WorkSheets(1);
      
 Запрос=Новый Запрос;
НачалоПериода=?;
КонецПериода=?;
 Запрос.УстановитьПараметр("НачалоПериода",?НачалоПериода);
 Запрос.УстановитьПараметр("КонецПериода",?КонецПериода);

      Запрос.Текст="ВЫБРАТЬ
                   |   ЗаказКлиента.Номер,
                   |   ЗаказКлиента.Дата,
                   |   Номенклатура.Артикул,
                   |   Номенклатура.Код,
                   |   Номенклатура.Наименование,
                   |   ВидыЦенПоставщиков.ЦенаВключаетНДС КАК ЦенаВключаетНДС1,
                   |   ЗаказКлиента.СуммаДокумента
                   |ИЗ
                   |   Документ.ЗаказКлиента КАК ЗаказКлиента,
                   |   Справочник.Номенклатура КАК Номенклатура,
                   |   Справочник.ВидыЦенПоставщиков КАК ВидыЦенПоставщиков
                   |ГДЕ
                   |   ЗаказКлиента.Дата МЕЖДУ &НачалоПериода И &КонецПериода";
Выборка = Запрос.Выполнить().Выбрать(?,?);
НомерСтроки=1;   
ВсегоВыборка = Выборка.Количество();
Пока Выборка.Следующий() Цикл
//Состояние(Строка(НомерСтроки) + "/" + Строка(ВсегоВыборка));
Лист.Cells(НомерСтроки, 1).Value =Выборка.Номер;
Лист.Cells(НомерСтроки, 2).Value =Выборка.Дата;
Лист.Cells(НомерСтроки, 3).Value =Выборка.Код;
Лист.Cells(НомерСтроки, 4).Value =Выборка.Артикул;
//Лист.Cells(НомерСтроки, 5).Value = Выборка.Бренд;
Лист.Cells(НомерСтроки, 6).Value =Выборка.Наименование;
Лист.Cells(НомерСтроки, 7).Value =Выборка.ЦенаВключаетНДС1;
Лист.Cells(НомерСтроки, 8).Value =Выборка.СуммаДокумента;
//Лист.Cells(НомерСтроки, 9).Value = Выборка.Доставка;
 //Лист.Cells(НомерСтроки, 10).Value = Выборка.ИтогоСебестоимость;
НомерСтроки=НомерСтроки+1;
КонецЦикла;                  
   ИмяФайла=Запрос.Выполнить().Выгрузить();
КонецПроцедуры

&НаКлиенте
Процедура ВыгрузитьОтчет(Команда)
       
   ВыгрузитьОтчетНаСервере();
    Попытка Эксель=Новый COMОбъект("Excel.Application")
      Исключение Сообщить(ОписаниеОшибки());
      КонецПопытки;
      Книга=Эксель.WorkBooks.Add();

    диалог= новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);

если диалог.Выбрать() тогда
               Попытка               
   Книга.SaveAs(диалог.ПолноеИмяФайла);
Исключение
   Сообщить(ОписаниеОшибки()+" Файл не сохранен!");
КонецПопытки;
Эксель.Application.Quit();
КонецЕсли;
КонецПроцедуры

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Через основной реквизит формы, как правило "Объект"-> Объект.Дата

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1095
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
отдельную тему обязательно было создавать? :^454^:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн anonim1

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-16
  • Сайт: 
  • Профессия: Ученик 1С
Благодарю  vitasw за помощь, но у меня неожиданно возникла новая проблема,  появляется ошибка <{Форма.Форма.Форма(34)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать(НачалоПериода,КонецПериода);
по причине:
{(14, 20)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
ЗаказКлиента.Дата <<?>>МЕЖДУ &НачалоПериода И &КонецПериода>

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

НачалоПериода= РеквизитФормыВЗначение("Объект",НачалоПериода);
КонецПериода=  РеквизитФормыВЗначение("Объект",КонецПериода);
 Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);
 Запрос.УстановитьПараметр("КонецПериода",КонецПериода);

      Запрос.Текст="ВЫБРАТЬ
                   |   ЗаказКлиента.Номер,
                   |   Номенклатура.Артикул,
                   |   Номенклатура.Код,
                   |   Номенклатура.Наименование,
                   |   ВидыЦенПоставщиков.ЦенаВключаетНДС КАК ЦенаВключаетНДС1,
                   |   ЗаказКлиента.СуммаДокумента,
                   |   ЗаказКлиента.Дата
                   |ИЗ
                   |   Документ.ЗаказКлиента КАК ЗаказКлиента,
                   |   Справочник.Номенклатура КАК Номенклатура,
                   |   Справочник.ВидыЦенПоставщиков КАК ВидыЦенПоставщиков
                   |ГДЕ
                   |   ЗаказКлиента.Дата МЕЖДУ &НачалоПериода И &КонецПериода";

Подскажите пожалуйста, как сделать, чтобы выборка осуществлялась по параметру ЗаказКлиента.Дата в промежутке между параметрами реквизита формы НачалоПериода и КонецПериода?

Оффлайн ilnur75

  • **
  • Сообщений: 76
  • РЕПУТАЦИЯ: 5
  • КПД: 7%
  • Регистрация: 2016-03-13
  • Сайт: 
  • Профессия: Ученик 1С
при работе с запросами есть функции работы с датами, в том числе
  начало периода(),
  конец(периода).

 попробуйте сделать по аналогии
                ...
                |ГДЕ
      |   СформированныеБригадыСрезПоследних.Период >= &Дата
      |   И СформированныеБригадыСрезПоследних.Период < &ОкончаниеДня";
       
   Дата = НачалоДня(Объект.Дата);   
   ОкончаниеДня = КонецДня(Объект.Дата);
   
   Запрос.УстановитьПараметр("Дата", Дата);
   Запрос.УстановитьПараметр("ОкончаниеДня", ОкончаниеДня);
        ...

Добавлено: 11 Июл 2016, 21:57

НачалоПериода= РеквизитФормыВЗначение("Объект",НачалоПериода);
КонецПериода=  РеквизитФормыВЗначение("Объект",КонецПериода);

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

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


Последний раз редактировалось: ilnur75; 11 Июл 2016, 21:57. Причина: Объединение сообщений

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1095
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
почему то  появляется сообщение "Нельзя сравнивать поля неограниченной длины и поля несовместимых типов"
потому что...
НачалоПериода= РеквизитФормыВЗначение("Объект",НачалоПериода);
КонецПериода=  РеквизитФормыВЗначение("Объект",КонецПериода);

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 

Из запроса не выводятся значения полей - выводятся пустые значения

Автор Alex1111Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 24
Просмотров: 7760
Последний ответ 14 Июн 2012, 17:44
от Alex1111
"ПОДОБНО" в условие связи запроса

Автор Станиславъ ЗверевъРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 1312
Последний ответ 11 Май 2016, 15:29
от LexaK
Ошибка при выполнении запроса - "неоднозначное поле"

Автор Marta_LiРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 9974
Последний ответ 21 Апр 2011, 16:00
от Marta_Li
"Зависание" запроса после обращения к регистру бухгалтерии

Автор ShkerinРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 3493
Последний ответ 03 Ноя 2011, 14:06
от Shkerin
Результат простого запроса "Ошибка чтения значения"

Автор 2CaspРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 7948
Последний ответ 28 Май 2014, 10:41
от 2Casp

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
alex0402
61 Сообщений
MuI_I_Ika MuI_I_Ika
45 Сообщений
LexaK
32 Сообщений
alexandr_ll
32 Сообщений
crow1983
31 Сообщений
sertak sertak
27 Сообщений
Vzonder
22 Сообщений
BuhRust
19 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

  • Точка Гостей: 170
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal