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

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

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();
КонецЕсли;
КонецПроцедуры


Оффлайн vitasw

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

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

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 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

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

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

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

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

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

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


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

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

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

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


Теги:
 

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

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

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

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

Ответов: 8
Просмотров: 2224
Последний ответ 11 Май 2016, 15:29
от LexaK
"Таблица значений" в результате запроса - 1С

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

Ответов: 8
Просмотров: 287
Последний ответ 15 Июн 2017, 07:53
от mvk843
Возможно ли языком запросов без конкатенации текста запроса и без СКД преобразовать строки таблицы в столбцы (колонки) выходной таблицы?

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

Ответов: 3
Просмотров: 211
Последний ответ 29 Май 2017, 15:29
от alex0402
Ошибка при выполнении запроса - "неоднозначное поле"

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

Ответов: 14
Просмотров: 11053
Последний ответ 21 Апр 2011, 16:00
от Marta_Li

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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

alex0402
94 Сообщений
oleg-x
78 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
66 Сообщений
Golickoff Golickoff
51 Сообщений
AIFrame
46 Сообщений
ilyay ilyay
42 Сообщений
Амал
30 Сообщений
MuI_I_Ika MuI_I_Ika
27 Сообщений
LexaK
23 Сообщений
Dethmontt Dethmontt
22 Сообщений

* Кто онлайн

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal