День добрый.
Прислали тестовое задание.
Поправить код в обработке.
Кода 3 строчки. Не могу понять, что не так.
(// и - исходная строчка)
Прислали тестовое задание.
Поправить код в обработке.
Кода 3 строчки. Не могу понять, что не так.
(// и - исходная строчка)
&НаСервере
//&НаКлиенте // и
Процедура ПриОткрытии(Отказ) // и
Для ит = 4 по 16 Цикл // и
ТабличныйДокумент.Область(ит,1,ит,1).Текст = "Зачем вывожу если потом все равно очищать" + ит; // и
КонецЦикла; // и
ТабличныйДокумент.Очистить(); // и
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Операция, как сервисная функция, на примере «Операция» против вредоносного сервиса.
- Как мы внедряли электронную инвентаризацию средствами штрихкодирования в учреждениях, у которых нет денег, но все должно быть по высшему разряду
- Рекомендации по оформлению кода на 1С в презентациях
- Применение ChatGPT в 1С и не только
- DDD, модульная архитектура и 1С – что общего?
Найденные решения
(1) Код выводит текст в табличный документ в строках с 4 по 16 в первой колонке.
Потом табличный документ очищается.
Код не отработает на клиенте, так как метод Очистить доступен только на сервере.
Как исправить? Либо переделать по серверный контекст, либо оставить всё на клиенте, а вместо ТабличныйДокумент.Очистить() сделать ТабличныйДокумент = Новый ТабличныйДокумент (это прокатит, хоть и не совсем правильно).
Потом табличный документ очищается.
Код не отработает на клиенте, так как метод Очистить доступен только на сервере.
Как исправить? Либо переделать по серверный контекст, либо оставить всё на клиенте, а вместо ТабличныйДокумент.Очистить() сделать ТабличныйДокумент = Новый ТабличныйДокумент (это прокатит, хоть и не совсем правильно).
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Код выводит текст в табличный документ в строках с 4 по 16 в первой колонке.
Потом табличный документ очищается.
Код не отработает на клиенте, так как метод Очистить доступен только на сервере.
Как исправить? Либо переделать по серверный контекст, либо оставить всё на клиенте, а вместо ТабличныйДокумент.Очистить() сделать ТабличныйДокумент = Новый ТабличныйДокумент (это прокатит, хоть и не совсем правильно).
Потом табличный документ очищается.
Код не отработает на клиенте, так как метод Очистить доступен только на сервере.
Как исправить? Либо переделать по серверный контекст, либо оставить всё на клиенте, а вместо ТабличныйДокумент.Очистить() сделать ТабличныйДокумент = Новый ТабличныйДокумент (это прокатит, хоть и не совсем правильно).
Спасибо за помощь.
Тут два момента возникло.
А табличный документ, должен отрисовываться именно как таблица?
По факту у меня на области просто строчки с текстом с 4 по 16.
И второй момент, если я меняю ДирективыКомпиляции на Сервер, то даже строчки с текстом не пишет.
Метод .Очистить закомментирован.
ТабличныйДокумент = Новый ТабличныйДокумен (тут вопросов нет, все четко НаКлиенте, все очищается)
Тут два момента возникло.
А табличный документ, должен отрисовываться именно как таблица?
По факту у меня на области просто строчки с текстом с 4 по 16.
И второй момент, если я меняю ДирективыКомпиляции на Сервер, то даже строчки с текстом не пишет.
Метод .Очистить закомментирован.
ТабличныйДокумент = Новый ТабличныйДокумен (тут вопросов нет, все четко НаКлиенте, все очищается)
(3)
А табличный документ, должен отрисовываться именно как таблица?
В целом, да, можно сказать как таблица. Табличный документ - это такой аналог экселя в 1С (для пущего сходства можно включить отображение заголовков и сетки в свойствах элемента формы). Он используется для вывода отчетов, печатных форм, СКД, произвольной информации. Очень мощный инструмент еще с 1С 7.7, закрывает огромное количество задач.
если я меняю ДирективыКомпиляции на Сервер, то даже строчки с текстом не пишет
Очевидно потому, что процедура ПриОткрытии — это обработчик события формы. Это событие происходит только на клиенте, поэтому чтобы перейти на сервер, обычно дополнительно создают серверную процедуру, которую вызывают с клиента:&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПриОткрытииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриОткрытииНаСервере()
Для ит = 4 по 16 Цикл
ТабличныйДокумент.Область(ит, 1).Текст = "Зачем вывожу если потом все равно очищать" + ит;
КонецЦикла;
//ТабличныйДокумент.Очистить();
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот