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

Автор Тема: Программный код не работает в управляемом приложении.  (Прочитано 703 раз)

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

Оффлайн anonim1

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-16
  • Сайт: 
  • Профессия: Ученик 1С
Доброго дня, помогите пожалуйста решить проблему. Я создал внешнюю обработку, которая должна делать запрос на выборку данных из 1C управление торговлей и экспортировать эти данные в эксель.Сначала я сделал внешнюю обработку для обычного приложения, все работало нормально, но у меня потребовали сделать так, чтобы работало в управляемом приложении. И  возникла проблема, если сделать на клиенте, возникает ошибка  "запрос не определено", если на сервере, то "режим диалога не определено", пробовал разделить процедуры, но запутался окончательно и появлялось еще больше ошибок. Подскажите пожалуйста, как переделать программный код для управляемого приложения:
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Попытка Эксель=Новый 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;
КонецЦикла;               
 диалог= новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);

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

КонецПроцедуры
С уважением, Игорь.

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

СМОТРЕТЬ >>


Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Все что управляет: видимостью/доступностью и прочими интерфейсными решениями - это клиент.
Запрос, создание объектов, ком-объекты - сервер. А вообще, стоит хоть что-то почитать про управляемое приложение. Методом тыка скорее всего что-то у вас получиться, но это будет неоптимально.

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

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

непосредственно выборка данных и подключение к Экселю - это серверный код.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн anonim1

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-16
  • Сайт: 
  • Профессия: Ученик 1С
Благодарю за ответ, у меня возник еще 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С
Через Объект: Объект.Дата


Теги:
 

Не работает структура подчиненности документов "Требование-накладная" и "Передач

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

Ответов: 0
Просмотров: 3698
Последний ответ 10 Мар 2011, 07:36
от sv_stas_sv
Не работает кнопка "установить интервал дат"

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

Ответов: 2
Просмотров: 2967
Последний ответ 11 Июл 2014, 18:07
от LexaK
не работает отчет "Выработка сотрудника" в ЗУП2.5.35.3

Автор a_a2001Раздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3251
Последний ответ 20 Июн 2011, 11:14
от Zvezo
Работает ли программа "1С:Управление торговлей 8" на реальных предприятиях?

Автор БоняРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 2794
Последний ответ 25 Июл 2008, 15:23
от Мерзлов
Как продлить рабочую неделю, если сотрудник работает во вредных условиях по результатам спецоценки

Автор newsРаздел Новости

Ответов: 0
Просмотров: 1220
Последний ответ 25 Апр 2014, 11:35
от news

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
158 Сообщений
alex0402
123 Сообщений
MuI_I_Ika MuI_I_Ika
55 Сообщений
Norfolk
52 Сообщений
LexaK
50 Сообщений
alexandr_ll
22 Сообщений
друган
20 Сообщений
Константин5825
18 Сообщений
AsadRoman
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

  • Точка Гостей: 928
  • Точка Скрытых: 0
  • Точка Пользователей: 11
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 

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