Что делает этот Код?

1. miwapython 02.03.24 01:45 Сейчас в теме
День добрый.
Прислали тестовое задание.
Поправить код в обработке.
Кода 3 строчки. Не могу понять, что не так.
(// и - исходная строчка)

&НаСервере
//&НаКлиенте     // и
Процедура ПриОткрытии(Отказ)     // и 
	
	Для ит = 4 по 16 Цикл            // и  
		ТабличныйДокумент.Область(ит,1,ит,1).Текст = "Зачем вывожу если потом все равно очищать" + ит; // и
	КонецЦикла;    // и
	
	ТабличныйДокумент.Очистить();	   // и
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
2. SlavaKron 02.03.24 10:54 Сейчас в теме
(1) Код выводит текст в табличный документ в строках с 4 по 16 в первой колонке.
Потом табличный документ очищается.
Код не отработает на клиенте, так как метод Очистить доступен только на сервере.

Как исправить? Либо переделать по серверный контекст, либо оставить всё на клиенте, а вместо ТабличныйДокумент.Очистить() сделать ТабличныйДокумент = Новый ТабличныйДокумент (это прокатит, хоть и не совсем правильно).
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 02.03.24 10:54 Сейчас в теме
(1) Код выводит текст в табличный документ в строках с 4 по 16 в первой колонке.
Потом табличный документ очищается.
Код не отработает на клиенте, так как метод Очистить доступен только на сервере.

Как исправить? Либо переделать по серверный контекст, либо оставить всё на клиенте, а вместо ТабличныйДокумент.Очистить() сделать ТабличныйДокумент = Новый ТабличныйДокумент (это прокатит, хоть и не совсем правильно).
3. miwapython 02.03.24 12:56 Сейчас в теме
Спасибо за помощь.
Тут два момента возникло.

А табличный документ, должен отрисовываться именно как таблица?
По факту у меня на области просто строчки с текстом с 4 по 16.

И второй момент, если я меняю ДирективыКомпиляции на Сервер, то даже строчки с текстом не пишет.
Метод .Очистить закомментирован.

ТабличныйДокумент = Новый ТабличныйДокумен (тут вопросов нет, все четко НаКлиенте, все очищается)
4. SlavaKron 02.03.24 13:56 Сейчас в теме
(3)
А табличный документ, должен отрисовываться именно как таблица?
В целом, да, можно сказать как таблица. Табличный документ - это такой аналог экселя в 1С (для пущего сходства можно включить отображение заголовков и сетки в свойствах элемента формы). Он используется для вывода отчетов, печатных форм, СКД, произвольной информации. Очень мощный инструмент еще с 1С 7.7, закрывает огромное количество задач.
если я меняю ДирективыКомпиляции на Сервер, то даже строчки с текстом не пишет
Очевидно потому, что процедура ПриОткрытии — это обработчик события формы. Это событие происходит только на клиенте, поэтому чтобы перейти на сервер, обычно дополнительно создают серверную процедуру, которую вызывают с клиента:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ПриОткрытииНаСервере();
КонецПроцедуры 

&НаСервере
Процедура ПриОткрытииНаСервере()
	
	Для ит = 4 по 16 Цикл
		ТабличныйДокумент.Область(ит, 1).Текст = "Зачем вывожу если потом все равно очищать" + ит;
	КонецЦикла;
	
	//ТабличныйДокумент.Очистить();
	
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот