Здравствуйте!
УТ 11.4 клиент-сервер
делаю внешнюю обработку, она создает файл экселя и заполняет списком номенклатуры.
Файлик создается на клиенте, не могу понять как полученные данные с сервера и передать на клиент.
На форме создал реквизит "ВремТабЗнач" с типом ТаблицаЗначений. У него добавил колонку "Код" с типом Строка неограниченной длины.
Вызываю процедуру на сервере, делаю запрос к данным. Далее записываю в реквизит формы:
ЗапросНом = Новый Запрос;
ЗапросНом.Текст = "ВЫБРАТЬ
| СпрНоменклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура";
РезультатЗапроса = ЗапросНом.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
СТР = ВремТабЗнач.Добавить();
СТР.Код = Строка(РезультатЗапроса.Код);
КонецЦикла;
и далее на клиенте не могу понять как прочитать данные из этого реквизита. делаю так
Для Каждого СТР Из ВремТабЗнач Цикл
Лист1.Cells (СтрокаЛиста,1).Value = СТР.Код;
КонецЦикла;
РеквизитФормыВЗначение("ВремТабЗнач") пробовал, но он только на сервере выполняется.
Может есть лучше способ сделать?
Спасибо!
УТ 11.4 клиент-сервер
делаю внешнюю обработку, она создает файл экселя и заполняет списком номенклатуры.
Файлик создается на клиенте, не могу понять как полученные данные с сервера и передать на клиент.
На форме создал реквизит "ВремТабЗнач" с типом ТаблицаЗначений. У него добавил колонку "Код" с типом Строка неограниченной длины.
Вызываю процедуру на сервере, делаю запрос к данным. Далее записываю в реквизит формы:
ЗапросНом = Новый Запрос;
ЗапросНом.Текст = "ВЫБРАТЬ
| СпрНоменклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК СпрНоменклатура";
РезультатЗапроса = ЗапросНом.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
СТР = ВремТабЗнач.Добавить();
СТР.Код = Строка(РезультатЗапроса.Код);
КонецЦикла;
и далее на клиенте не могу понять как прочитать данные из этого реквизита. делаю так
Для Каждого СТР Из ВремТабЗнач Цикл
Лист1.Cells (СтрокаЛиста,1).Value = СТР.Код;
КонецЦикла;
РеквизитФормыВЗначение("ВремТабЗнач") пробовал, но он только на сервере выполняется.
Может есть лучше способ сделать?
Спасибо!
Прикрепленные файлы:
По теме из базы знаний
- Работаем с дополнительными реквизитами на форме
- Внесение изменения в формы с помощью расширений, без заимствования формы.
- Дополнительные реквизиты формы (простой вариант взаимодействия)
- Разбор ошибок заполнения реквизитов формы объекта (мой топ-3)
- Drag & Drop - Переносим Картинку на Форму с помощью мыши (HTML + JS)
Найденные решения
(13)НаСервереБезКонтекста не доступны. А так все загружается
&НаСервере
Процедура ЗаполнитьТЧНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
Тч.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьТЧ(Команда)
ЗаполнитьТЧНаСервере();
КонецПроцедуры
ПоказатьПрикрепленные файлы:
темп.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)не могу понять как прочитать данные из этого реквизита на клиенте. мне нужно их записать в эксель. То что делаю не работает.
ЗапросНоменклатуры(); - это вызов процедуры для получения списка номенклатуры и записи в реквизит формы.
далее пишу:
Для Каждого СТР Из ВремТабЗнач Цикл
Лист1.Cells (СтрокаЛиста,1).Value = СТР.Код;
КонецЦикла;
и этот кусок кода отладчик пропускает, то ли данных нет, то ли читаю не так
ЗапросНоменклатуры(); - это вызов процедуры для получения списка номенклатуры и записи в реквизит формы.
далее пишу:
Для Каждого СТР Из ВремТабЗнач Цикл
Лист1.Cells (СтрокаЛиста,1).Value = СТР.Код;
КонецЦикла;
и этот кусок кода отладчик пропускает, то ли данных нет, то ли читаю не так
(13)НаСервереБезКонтекста не доступны. А так все загружается
&НаСервере
Процедура ЗаполнитьТЧНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
Тч.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьТЧ(Команда)
ЗаполнитьТЧНаСервере();
КонецПроцедуры
ПоказатьПрикрепленные файлы:
темп.epf
Попробуй так
еще можно сформировать тз на сервере и вернуть его на клиент, предварительно упаковав в массив или структуру. наверно.
&НаКлиенте
Процедура ЗаполнитьТЗ(Команда)
ЗаполнитьВремТабЗначНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВремТабЗначНаСервере()
ТЗ = РеквизитФормыВЗначение("ВремТабЗнач", Тип("ТаблицаЗначений"));
ЗаполнитьТЗ(ТЗ);
ЗначениеВРеквизитФормы(ТЗ, "ВремТабЗнач");
КонецПроцедуры
Показатьеще можно сформировать тз на сервере и вернуть его на клиент, предварительно упаковав в массив или структуру. наверно.
спасибо всем за помощь!
сделал через реквизит формы
заполнение реквизита ВремТабЗнач.Загрузить(ЗапросНом.Выполнить().Выгрузить());
и с параметром запроса была ошибка
сделал через реквизит формы
заполнение реквизита ВремТабЗнач.Загрузить(ЗапросНом.Выполнить().Выгрузить());
и с параметром запроса была ошибка
Прикрепленные файлы:
ВыгрузкаВЭксель.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот