Имя: Пароль:
1C
1С v8
Веб клиент - вывод схемы СКД в поле табл док-та
0 s3lla
 
04.12.17
18:01
Добрый день,

Может кто-то сталкивался, пытаемся свою конфигурацию на веб-клиенте запустить. Развернули через Apache на линукс сервере.

Конкретная проблема вот в чем:
Сделал вывод из макета СКД в поле табличного документа на форме. Повесил события на переключение вкладок на вывод, для отладки сделал обновление по кнопке.

При первом выводе любой из страниц все работает, веб-клиент выводит результат корректно, при переключении вкладок все перерисовывается, но если внести изменения в то, что выводится отчетом, то результаты как закэшированные, не изменяется, сам код срабатывается и поле перезаполняет, код заполнения макета точно вызывается.

Если закрыть форму обработки и открыть новый экземляр, то изменения выводятся при первом выводе, но затем проблема повторяется.

Если запустить все через тонкий клиент по ссылке публикации базы - то этой проблемы нету, результаты при перерисовке получают актуальные данные.

Может кто-то сказать, что делаем не так или подтвердить такое поведение веб-клиента?

На управляемой форме реквизит типа "ТабличныйДокумент", на каждой странице элемент формы "поле табличного документа" с указанным ПутемКДанным на этот реквизит формы.

В события и по кнопке
РеквизитТабДок = ВывестиЧерезСКД("СКДИмяМакета");

&НаСервере
Функция ВывестиЧерезСКД(ИмяМакета)

                ТД = Новый ТабличныйДокумент;
                СКД=РеквизитФормыВЗначение("Объект").ПолучитьМакет(ИмяМакета);
                
                КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
                МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, СКД.НастройкиПоУмолчанию,);
                ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
                ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
                
                ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
                ПроцессорВывода.УстановитьДокумент(ТД);
                ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

КонецФункции