R
RZX
Всё, сдаюсь...
Прошу помощи по решению следующего вопроса.
Я работал в основном с 1С 8.1 на обычных формах. Тут столкнулся с тем, что человеку нужен простенький отчетик в 1С 8.2 на управляемых формах.
Запрос набросал минут за 10, он еще будет правится - не в нем суть. Как вернуть результат в клиентскую часть - сижу уже несколько дней.
Есть обработка, на которой мы устанавливаем ДатаС, ДатаПо, Контрагент.
Таб - реквизит формы типа ТаблицаЗначений.
И есть модуль формы (серверная часть не очень интересует, она небольшая, поэтому я ее полностью привел):
[offtop]
Смотреть курсы по СКД и УФ на 100500 часов нет времени (обязательно как-нибудь это сделаю). Просто человеку нужно очень срочно, а я сижу уже несколько дней и без результата.
[/offtop]
Получается что:
1. На тонком клиенте недоступна таблица значений (то есть ее нельзя вернуть по Возврат)
2. На тонком клиенте недоступна ЗначениеФормыВРеквизит
3. На тонком клиенте недоступна ЗначениеИзСтрокиВнутр
4. На тонком клиенте недоступна табличная часть формы (то есть ее нельзя заполнить на сервере)
То, как приведено в коде выше, единственный способ, который я нашел и который что-то возвращает.
А возвращается в Отчет.Таб какая-то хрень, которая называется ДанныеФормыКоллекция. Что это и как с этим работать из СП непонятно. Я сомневаюсь, что это то, что мне нужно для вывода данных.
Кто сталкивался с такой штукой? Подскажите, как все-таки вернуть данные из запроса и отобразить из на клиенте в управляемой форме.
Спасибо!
Прошу помощи по решению следующего вопроса.
Я работал в основном с 1С 8.1 на обычных формах. Тут столкнулся с тем, что человеку нужен простенький отчетик в 1С 8.2 на управляемых формах.
Запрос набросал минут за 10, он еще будет правится - не в нем суть. Как вернуть результат в клиентскую часть - сижу уже несколько дней.
Есть обработка, на которой мы устанавливаем ДатаС, ДатаПо, Контрагент.
Таб - реквизит формы типа ТаблицаЗначений.
И есть модуль формы (серверная часть не очень интересует, она небольшая, поэтому я ее полностью привел):
Код:
&НаСервере
Функция ВыборкаДанных(ДатаС, ДатаПо, Контрагент)
ТаблЗнач = Новый ТаблицаЗначений;
ТаблЗнач.Колонки.Добавить("Номенклатура");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОтчетОРозничныхПродажахТовары.Номенклатура КАК Номенклатура,
| СУММА(ОтчетОРозничныхПродажахТовары.Количество) КАК Количество,
| Штрихкоды.Штрихкод,
| ЦеныНоменклатурыСрезПоследних.Цена КАК Закупочная,
| ЦеныНоменклатурыСрезПоследних1.Цена КАК Розничная,
| СУММА(ОтчетОРозничныхПродажахТовары.Количество) * (ЦеныНоменклатурыСрезПоследних1.Цена - ЦеныНоменклатурыСрезПоследних.Цена) КАК КомиссионноеВознаграждение
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары,
| РегистрСведений.Штрихкоды КАК Штрихкоды,
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаПо, ) КАК ЦеныНоменклатурыСрезПоследних,
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаПо, ) КАК ЦеныНоменклатурыСрезПоследних1,
| РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
|ГДЕ
| ОтчетОРозничныхПродажахТовары.Ссылка.Дата >= &ДатаС
| И ОтчетОРозничныхПродажахТовары.Ссылка.Дата <= &ДатаПо
| И ОтчетОРозничныхПродажахТовары.Номенклатура = Штрихкоды.Владелец
| И ЦеныНоменклатурыСрезПоследних.ВидЦены.Ссылка = &ВидЦеныЗакупочная
| И ОтчетОРозничныхПродажахТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И ОтчетОРозничныхПродажахТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
| И ЦеныНоменклатурыСрезПоследних1.ВидЦены.Ссылка = &ВидЦеныРозничная
| И НоменклатураКонтрагентов.Контрагент = &Контрагент
| И НоменклатураКонтрагентов.Номенклатура = ОтчетОРозничныхПродажахТовары.Номенклатура
|
|СГРУППИРОВАТЬ ПО
| ОтчетОРозничныхПродажахТовары.Номенклатура,
| Штрихкоды.Штрихкод,
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних1.Цена";
Запрос.УстановитьПараметр("ДатаС", ДатаС);
Запрос.УстановитьПараметр("ДатаПо", ДатаПо);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("ВидЦеныЗакупочная", Справочники.ВидыЦен.НайтиПоНаименованию("закупочная"));
Запрос.УстановитьПараметр("ВидЦеныРозничная", Справочники.ВидыЦен.НайтиПоНаименованию("розница"));
ТаблЗнач = Новый ТаблицаЗначений;
ТаблЗнач = Запрос.Выполнить().Выгрузить();
ЗначениеВРеквизитФормы(ТаблЗнач,"Отчет.Таб"); // это вот так нужно передавать?
// или можно как-то по другому?
КонецФункции
Код:
&НаКлиенте
Процедура Сформировать(Команда)
//
ВыборкаДанных(Отчет.ДатаС, Отчет.ДатаПо, Отчет.Контрагент);
Для каждого Эл из Отчет.Таб Цикл
Сообщить(Эл);
КонецЦикла;
КонецПроцедуры
[offtop]
Смотреть курсы по СКД и УФ на 100500 часов нет времени (обязательно как-нибудь это сделаю). Просто человеку нужно очень срочно, а я сижу уже несколько дней и без результата.
[/offtop]
Получается что:
1. На тонком клиенте недоступна таблица значений (то есть ее нельзя вернуть по Возврат)
2. На тонком клиенте недоступна ЗначениеФормыВРеквизит
3. На тонком клиенте недоступна ЗначениеИзСтрокиВнутр
4. На тонком клиенте недоступна табличная часть формы (то есть ее нельзя заполнить на сервере)
То, как приведено в коде выше, единственный способ, который я нашел и который что-то возвращает.
А возвращается в Отчет.Таб какая-то хрень, которая называется ДанныеФормыКоллекция. Что это и как с этим работать из СП непонятно. Я сомневаюсь, что это то, что мне нужно для вывода данных.
Кто сталкивался с такой штукой? Подскажите, как все-таки вернуть данные из запроса и отобразить из на клиенте в управляемой форме.
Спасибо!