День добрый.
Ваяю внешнюю обработку - хоца отчеты всякие в неё напихать. Столкнулся с аномалией:
В модуле объекта пишу:
В модуле формы:
&НаСервере
Функция СформироватьОтчетНаСервере()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Макет = ОбработкаОбъект.ПечатьМакета();
Возврат Макет;
КонецФункции
&НаКлиенте
Процедура СформироватьОтчет(Команда)
Макет = СформироватьОтчетНаСервере();
КонецПроцедуры Показать
К обработке прикручен макет, с заголовком, строкой данных и прочими блудницами... вообщем по команде СформироватьОтчет ни фига не происходит, хотя вроде как должен макет на форму вывести.
Если не в лом, гляньте свежим глазом, где накосячил.
ПЫ,СЫ, Запрос рабочий хоть и выводит всякую ересь, мне он только для теста нужен.
Ваяю внешнюю обработку - хоца отчеты всякие в неё напихать. Столкнулся с аномалией:
В модуле объекта пишу:
Функция ПечатьМакета() Экспорт
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Отчет");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаТаб");
ЗапросДвижения = Новый Запрос;
ЗапросДвижения.Текст = "
|ВЫБРАТЬ
|ТоварыНаСкладах.Период КАК Период,
|ТоварыНаСкладах.Регистратор КАК Документ,
|ТоварыНаСкладах.ВидДвижения КАК ВидДвижения,
|ТоварыНаСкладах.Номенклатура КАК Номенклатура,
|ТоварыНаСкладах.Склад КАК Склад,
|ВЫБОР КОГДА ТоварыНаСкладах.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА
|СУММА(ТоварыНаСкладах.ВНаличии*-1)
|ИНАЧЕ
|СУММА(ТоварыНаСкладах.ВНаличии)
|КОНЕЦ
|ИЗ
|РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
|ГДЕ
|ТоварыНаСкладах.Период >= &НачПериода
|И ТоварыНаСкладах.Период < &КонПериода
|И &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) ИЛИ ТоварыНаСкладах.Номенклатура = &Номенклатура
|И &Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) ИЛИ ТоварыНаСкладах.Склад = &Склад
|СГРУППИРОВАТЬ ПО
|ТоварыНаСкладах.Номенклатура,
|ТоварыНаСкладах.Период,
|ТоварыНаСкладах.ВидДвижения,
|ТоварыНаСкладах.Склад,
|ТоварыНаСкладах.Регистратор";
ЗапросДвижения.УстановитьПараметр("НачПериода",ЭтотОбъект.НачПериода);
ЗапросДвижения.УстановитьПараметр("КонПериода",ЭтотОбъект.КонПериода);
ЗапросДвижения.УстановитьПараметр("Склад",ЭтотОбъект.Склад);
ЗапросДвижения.УстановитьПараметр("Номенклатура",ЭтотОбъект.Номенклатура);
Результат = ЗапросДвижения.Выполнить();
Выборка = Результат.Выбрать();
ТабДок.Вывести(ОбластьЗаголовок);
Пока Выборка.Следующий() Цикл
ОбластьСтрока.Параметры.Наименование = Выборка.Номенклатура;
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
Возврат ТабДок;
ПоказатьВ модуле формы:
&НаСервере
Функция СформироватьОтчетНаСервере()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Макет = ОбработкаОбъект.ПечатьМакета();
Возврат Макет;
КонецФункции
&НаКлиенте
Процедура СформироватьОтчет(Команда)
Макет = СформироватьОтчетНаСервере();
КонецПроцедуры
К обработке прикручен макет, с заголовком, строкой данных и прочими блудницами... вообщем по команде СформироватьОтчет ни фига не происходит, хотя вроде как должен макет на форму вывести.
Если не в лом, гляньте свежим глазом, где накосячил.
ПЫ,СЫ, Запрос рабочий хоть и выводит всякую ересь, мне он только для теста нужен.
По теме из базы знаний
- Создание внешних печатных форм для 1С 8.1 на основе типовых. (Через подмену контекста).
- УТ 11. Динамическое изменение MXL-макета внешней печатной формы в режиме 1С.
- Динамическое изменение функции формирования табличного документа внешней обработки без конфигуратора.
- Внешние печатные формы для нетиповой конфигурации (управляемое приложение)
- Акт сверки взаимных расчетов (с настройкой печати) из документа Сверка взаиморасчетов для ERP 2.5, КА 2.5, УТ 11.5
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В модуле формы:
&НаСервере
Функция СформироватьОтчетНаСервере()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Макет = ОбработкаОбъект.ПечатьМакета();
Возврат Макет;
КонецФункции
&НаКлиенте
Процедура СформироватьОтчет(Команда)
Макет = СформироватьОтчетНаСервере();
КонецПроцедуры
Показать
А чего вставка кода через раз работает?
&НаСервере
Функция СформироватьОтчетНаСервере()
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Макет = ОбработкаОбъект.ПечатьМакета();
Возврат Макет;
КонецФункции
&НаКлиенте
Процедура СформироватьОтчет(Команда)
Макет = СформироватьОтчетНаСервере();
КонецПроцедуры
А чего вставка кода через раз работает?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот