Имя: Пароль:
1C
 
Можно ли считать данные из табличного документа на управляемой форме?
, ,
0 Анцеранана
 
26.08.22
09:58
Добрый день! Странно, почему-то не получается это сделать. Метод Область на клиенте не работает. Поле формы на сервер тоже не передается - ПоместитьВоВременноеХранилище(Элементы.Результат, КлючУникальности) выдает ошибку.
В поле формы - цифры, которые пользователь вводит с клавиатуры и/или копирует туда из диапазона(ов) ячеек.

PS Можно для решения моей задачи загрузить из Excel, но это будут лишние действия, так же как и добавление строчек в список. Такая реализация была - бы оптимальнее с точки зрения юзера и программиста.
1 6awkup_true
 
26.08.22
10:02
табдок можно прочитать в таблицу значений при помощи построителя запроса
2 6awkup_true
 
26.08.22
10:05
построителя отчета*
примерно так

ПоследняяСтрока = ТабДокумент.ВысотаТаблицы;

    ПоследняяКолонка = ТабДокумент.ШиринаТаблицы;

    ОбластьЯчеек = ТабДокумент.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);

    ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластьЯчеек);

    ПостроительОтчета = Новый ПостроительОтчета;

    ПостроительОтчета.ИсточникДанных = ИсточникДанных;

    ПостроительОтчета.Выполнить();


    ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
3 ptiz
 
26.08.22
10:06
(2) В случае УФ - как раз ПостроительЗапроса (с сервера). Только это будет избыточно для данной задачи.
4 Eugeneer
 
26.08.22
10:07
(2) табдок перекидывать зат ос клиента на сервер и обработно - почти ничего не стоит.
5 PaulBC
 
26.08.22
10:08
(0) Элементы.Результат - не табличный документ.
Область() работает на клиенте.
6 6awkup_true
 
26.08.22
10:11
(4) а ПоместитьВоВременноеХранилище(..) вас не смутило? тут и так сервер участвует
7 Kassern
 
26.08.22
10:13
(0) Конечно можно. Как по вашему работает расшифровка полей в отчете?
8 Eugeneer
 
26.08.22
10:14
(6) таб док можно передавать параметром. без всякого хранилища
9 Анцеранана
 
26.08.22
10:15
(5) Что-то я совсем запутался. так как из ПоляФормы типа ТабличныйДокуемнт сделать собственно ТабЛичныйДокумент. чтобы Область() отработало.
10 Eugeneer
 
26.08.22
10:17
Размер таб доков в сотни раз будет меньше таблиц.
11 Eugeneer
 
26.08.22
10:18
&НаКлиенте
Процедура ТаблицаЦеныНоменклатурыПриАктивизации(Элемент)
    
    Если ТаблицаЦеныНоменклатуры.ВысотаТаблицы = 0 Тогда
        Возврат;
    КонецЕсли;
    
    ЛинияДнойная = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,3);
    ЛинияОбычная = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
    
    ТекущаяОбласть = ТаблицаЦеныНоменклатуры.ТекущаяОбласть;  
    
    НомерТекущейСтрокиТаб = ТекущаяОбласть.Верх;
    Если НомерТекущейСтрокиТаб < 2 Тогда
        Возврат;
    КонецЕсли;    
    
    ОбластьВыборки = ТаблицаЦеныНоменклатуры.Область("R"+НомерТекущейСтрокиТаб+"C1");
    ЗначениеНоменклатуры = ОбластьВыборки.Расшифровка;
    Если НЕ ЗначениеЗаполнено(ЗначениеНоменклатуры) Тогда
        Возврат;
    КонецЕсли;

    ШиринаТаблицы = ТаблицаЦеныНоменклатуры.ШиринаТаблицы;
    Если ВремНомерСтроки_ТаблицаЦен <> Неопределено И НомерТекущейСтрокиТаб <> ВремНомерСтроки_ТаблицаЦен Тогда  
        ИзменяемаяОбласть = ТаблицаЦеныНоменклатуры.Область(ВремНомерСтроки_ТаблицаЦен,1,ВремНомерСтроки_ТаблицаЦен,ШиринаТаблицы);
        ИзменяемаяОбласть.ЦветРамки = WebЦвета.ТемноСерый;  
        ИзменяемаяОбласть.ГраницаСверху = ЛинияОбычная;  
        ИзменяемаяОбласть.ГраницаСнизу = ЛинияОбычная;
        //ИзменяемаяОбласть.ЦветФона = Новый Цвет;
        ИзменяемаяОбласть.Шрифт = Новый Шрифт(,8,Ложь);
    КонецЕсли;                          
    ИзменяемаяОбласть = ТаблицаЦеныНоменклатуры.Область(НомерТекущейСтрокиТаб,1,НомерТекущейСтрокиТаб,ШиринаТаблицы);
    ИзменяемаяОбласть.ЦветРамки = WebЦвета.ТемноЗеленый;  
    ИзменяемаяОбласть.ГраницаСверху = ЛинияДнойная;  
    ИзменяемаяОбласть.ГраницаСнизу = ЛинияДнойная;
    ИзменяемаяОбласть.Шрифт = Новый Шрифт(,9,Истина);
    ВремНомерСтроки_ТаблицаЦен = НомерТекущейСтрокиТаб;      

КонецПроцедуры



Все работает на клиенте. табдок - реквизит формы.
12 Eugeneer
 
26.08.22
10:20
На сервер тоже таб док передается элементарно как параметр. Можно как с контекстом так и без контекста.
И функции работают - возвращают легко таб доки без всяких хранилищ.
13 Анцеранана
 
26.08.22
10:36
(12) У меня просто в задаче по кнопке .Конечно же Результат в моём случае - это реквизит формы , это табличный документ, а я пару часов копался с Элементы.Результат поэтому и не получалось! Затупил (
Всем спасибо !