Имя: Пароль:
1C
1С v8
Как объяснить, что ТабличныйДокумент.Очистить() — возможно только на сервере?
0 SweetaAngel
 
26.10.22
19:59
У ТабличныйДокумент есть метод Очистить() — однако его применение возможно только на Сервере.

Т.е. если добавить реквизит на форму то в процедуре на Клиенте можно туда пихать всякое: менять ширину столбцов, писать текст, менять цвет и т.п. Но чтобы "очистить" нужно передавать в процедуру на сервере.

Как это можно объяснить?




ТабличныйДокумент (SpreadsheetDocument)
Очистить (Clear)
Синтаксис:
Очистить()
Описание:
Очищает табличный документ.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
ТабДок.Очистить();
Использование в версии:
Доступен, начиная с версии 8.0.
1 alarm2020
 
26.10.22
20:35
(0) Почти все методы табличного документа так себя ведут
2 RomanYS
 
26.10.22
21:40
(1) +1
Из особенно забавного (для меня): прочитать ТД на клиенте нельзя, нужно передать файл на сервер и там прочитать
3 Сергиус
 
27.10.22
00:00
(0)На клиенте только отображение и работа с тем, что определено. А вот всё определение именно на сервере(очистка, области и тп)
4 Garykom
 
гуру
27.10.22
08:51
Веб-клиент патамушта
Ну не стали на JavaScript это реализовывать в браузере
5 Garykom
 
гуру
27.10.22
08:52
И с ТЗ поэтому же засада на клиенте тонком и веб
6 toypaul
 
гуру
27.10.22
08:55
"Как это можно объяснить?" - лень или тупость разработчиков платформы. При этом интерактивно без всяких серверов же можно очистить?
7 Fedor-1971
 
27.10.22
09:02
(6) вовсе нет, причина - унификация поведения 1С в разных клиентах
(5) в Тонком клиенте ТЗ можно заполнить на клиенте (8.3.19 - позднейшие не проверял), потом сделать контекстный вызов сервера и спокойно там ТЗ обработать
(2) можно, но, в некоторых случаях будет дёргаться сервер. Ту либо унификация - все отдаём на сервер и там обрабатываем, либо допускаем обращения на сервер при чтении данных на клиенте (нужно смотреть что дешевле)
8 Fedor-1971
 
27.10.22
09:05
(0) у реквизита формы с типом Табличный документ, вроде как, есть метод Очистить() и его можно дёрнуть с клиента
9 Guk
 
27.10.22
09:10
(8) ошибку выдаст...
10 SweetaAngel
 
27.10.22
09:22
(4) C ТЗ не стали потому что там можно всякого по напихать в поле ТЗ - структуру, в структуру — соответствие, в соответствие — список значений, в список значений документ — заказ поставщику и т.п. и вроде как может быть ситуация которую нельзя описать в XML.

В то же время ТабличнаяЧасть на клиенте доступна, т.к. там таких извращений сделать нельзя.

Почему нельзя наложить ограничения?

И разделить Макеты на Макеты для Табличного документа и Макеты со всяким другим.
11 НафНаф
 
27.10.22
09:23
(10) все тоже самое можно напихать и в обычный массив так-то
12 Kassern
 
27.10.22
09:26
К чему сабж я не понимаю? Реализовали работу с ТД через сервер, а просмотр через клиент (что логично). Сделали бы все на клиенте, потом вы бы возбухали, а почему нельзя серверу скормить, зачем ТД на 10050000 строк на клиенте крутить и т.д. Вам так сложно директиву прописать нужную для работы, или вы так хотите сервер разгрузить?)
13 SweetaAngel
 
27.10.22
09:29
(12) > К чему сабж я не понимаю?

Детишек 1С обучаю. Рисуем всякое в ТабДок. А вот как им объяснить, что для очистки надо лезть на Сервер — хз. А тупо говорить: потому что — считаю не правильным.
14 toypaul
 
гуру
27.10.22
09:30
(13) не порти психику детишек. обучай питону лучше
15 SweetaAngel
 
27.10.22
09:31
(14) Питону и яве их и без меня уже научили.
16 Kassern
 
27.10.22
09:33
(13) Объясните, что это сделано для унификации, ТД бывает очень больших размеров и на клиенте их обрабатывать будет гораздо дольше, чем на сервере.
Как вы им объяснили, почему получение объекта/ссылки именно на сервере? Что мешало сделать эту функцию доступной на клиенте?)
17 SweetaAngel
 
27.10.22
09:34
(16) Так это обращение к Базе данных. Запрос. А тут Табличный документы который целиком в памяти на клиенте.
18 Kassern
 
27.10.22
09:35
(17) А что мешало с клиента обратиться к БД неявно и вернуть на клиент ссылку?
19 SweetaAngel
 
27.10.22
09:58
(18) Тут скорее не вопрос отдельной ссылки, а результат запроса. Кроме того, там будут возникать ВременныеТаблицы их то же гнать на Клиент?
20 PuhUfa
 
27.10.22
10:07
(0)
&НаКлиенте
Процедура КомандаОчиститьТД(Команда)
    РеквизитТД = Новый ТабличныйДокумент;
КонецПроцедуры
21 AlexTim03
 
27.10.22
10:14
На клиенте сделай:
ТаблДок = Неопределено, и он очистится) (неявное преобразование типов)
22 SweetaAngel
 
27.10.22
10:31
(20) (21) Благодарствую.
23 lodger
 
27.10.22
10:42
(17) неа, не целиком.
чисто технически, ТаблДок может быть огромным, а на клиент тебе показывается видимая область - кусочек данных.
то же по смыслу и с большими ТЗ, ТЧ, ДС. только реализация несколько отличается от области применения.

контрол ТаблДока живёт на сервере.
на клиент передаётся вьюха с ограниченным функционалом.

это (20)(21) триггерит неявное обращение к серверу. и не является ответом на (0).
24 Сергиус
 
27.10.22
12:54
(21)Это из серии "куплю билет и назло кондуктору пойду пешком"))
25 Сергиус
 
27.10.22
12:55
(0)Если не хотите подобных вопросов, то используйте Обычные формы, там всё это можно)
26 Garykom
 
гуру
27.10.22
13:03
(25) Ты ОФ с Толстым клиентом не путаешь?
27 lodger
 
27.10.22
13:06
(26) а вы не путаете Управляемое и Обычное приложение? всё это душнилово. всем же понятно, что имеется ввиду.
28 PR
 
27.10.22
13:09
(27) Действительно, виласипед, велосепет, вилосепед, какая разница, все же все понимают, да?
29 Garykom
 
гуру
27.10.22
13:10
(27) толстый клиент может работать и режиме ОФ или УФ

вот хочу уточнить что подразумевалось в (25)?
30 Kassern
 
27.10.22
13:34
(29) Толстый клиент в режиме УФ это как?
31 PR
 
27.10.22
13:34
(30) Обычно
32 Kassern
 
27.10.22
13:35
(31) да я понял, о чем он)
33 Сергиус
 
28.10.22
01:45
(26)Код, написанный для НЕуправляемых форм(их я и назвал Обычными), без директив НаКлиенте и НаСервере.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.