|
Что делает этот код? ↓ (Волшебник 03.03.2024 20:10) |
☑ | ||
---|---|---|---|---|
0
miwapython
02.03.24
✎
11:16
|
День добрый.
Прислали тестовое задание. Поправить код в обработке. Кода 3 строчки. Не могу понять, что не так. (// и - исходная строчка) &НаСервере //&НаКлиенте // и Процедура ПриОткрытии(Отказ) // и Для ит = 4 по 16 Цикл // и ТабличныйДокумент.Область(ит,1,ит,1).Текст = "Зачем вывожу если потом все равно очищать" + ит; // и КонецЦикла; // и ТабличныйДокумент.Очистить(); // и КонецПроцедуры |
|||
1
Волшебник
02.03.24
✎
11:16
|
уберите Очистить() в конце
вместо него добавьте Показать() только для этого директиву &НаСервере вначале замените на &НаКлиенте |
|||
2
Волшебник
02.03.24
✎
11:16
|
школота...
|
|||
3
Dmitry1c
02.03.24
✎
12:39
|
(1) абсолютно бредовое тестовое задание.
тест |
|||
4
PR
02.03.24
✎
12:37
|
Я думаю, что правильным будет весь код закомментить, раз он все-равно делает что-то бесполезное
|
|||
5
PR
02.03.24
✎
12:37
|
(3) Проверка на наркомана
|
|||
6
miwapython
02.03.24
✎
15:12
|
Всем спасибо.
За участие. |
|||
7
Ботаник Гарден Меран
02.03.24
✎
16:37
|
Выявляет незнание.
|
|||
8
experimentator76
02.03.24
✎
19:18
|
(0) не работай с мудаками.
этот тест чтобы ты это понял |
|||
9
Anton1307
02.03.24
✎
23:58
|
Задание - поправить код на предмет чего?
Какой результат ожидается в конце концов? |
|||
10
Гена
03.03.24
✎
07:25
|
Да... уж... Волки.
(0) Михаил, задание просто на понимание типа метода Область табличного документа. Глянул. Тип этот - строка. А тип номеров строк и столбцов области - число. Отсюда и проверка на ошибку Строка + Число. Вам надо было мгновенно вернуть будущему работодателю правку: "Зачем вывожу если потом все равно очищать" + Строка(ит); Ну и для цимеса можно добавить свою рюшечку: Область(ит,1 Если хочется вывести только одну ячейку, то можно вообще не повторять конечные номера строк и столбцов, это необязательные параметры. Конечно, я могу ошибаться, ведь и сам впервые глянул, а что такое Область ) |
|||
11
Garykom
03.03.24
✎
07:26
|
(10) >"Зачем вывожу если потом все равно очищать" + Строка(ит);
про неявное преобразование из числа в строку слышал? |
|||
12
Гена
03.03.24
✎
07:29
|
(11) Нет. В данном случае платформа сама поменяет тип? Это всегда было или только с какого-то релиза?
|
|||
13
Garykom
03.03.24
✎
07:32
|
ТабличныйДокумент (SpreadsheetDocument)
Очистить (Clear) Синтаксис: Очистить() Описание: Очищает табличный документ. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер. Пример: ТабДок.Очистить(); Использование в версии: Доступен, начиная с версии 8.0. Фишка ТабличныйДокумент.Очистить() только сервер или толстый клиент Задачка на знание и как извратиться ЗЫ Хотя имхо наркоманство с обеих сторон... ЗЗЫ Со стороны разрабов платформы в т.ч. )) |
|||
14
Garykom
03.03.24
✎
07:30
|
(12) Не только 1С, многие другие ЯП/платформы тоже самое делают
|
|||
15
Garykom
03.03.24
✎
07:33
|
Конечно неявное преобразование оно такое
Неразрывный пробел вставит (согласно настройкам) как и Строка() Правильно делать Формат() |
|||
16
Гена
03.03.24
✎
07:34
|
(14) Хм... спасибо за информацию.
Получается, что переменная неявно переводит в свой собственный тип все переменные после присваивания? |
|||
17
Garykom
03.03.24
✎
07:41
|
(16) Слегка сложней
а = "строка"+1 - нормально и будет а="строка1" б = 1 + "строка" - ошибка преобразования "строка" в число Ну и классика, которая есть почти во всех ЯП со строгой типизацией Double a,b Int c a = b + c - можно, неявно int преобразуется в double, сложит результат в double c = a + b - низзя! обычно ибо тип double в int никак |
|||
18
Гена
03.03.24
✎
07:45
|
(17) Так-так. Ну и для окончательного понимания:
а если сначала оттиповать в первом примере b как строку, всё равно будет ошибка? b = 1 + "строка" |
|||
19
Garykom
03.03.24
✎
07:48
|
(18) ага
обычно тип результата по типу первого слагаемого т.е. проблема не в b а в число + Число(строка) |
|||
20
Garykom
03.03.24
✎
07:52
|
Некоторые языки со строгой типизацией во избежание подобных ошибок совсем запрещают неявное
Там надо явно преобразовывать, используя разные IntToStr() или StrToInt() Хотя даже в таких часто в параметрах процедур/функций неявное работает, например println(число) и конечный результат строка, которая будет выведена |
|||
21
Гена
03.03.24
✎
07:56
|
(20) Ну да, я привык к прямой типизации )
|
|||
22
Гена
03.03.24
✎
07:59
|
(20) А по задаче тогда остаётся единственное, Вы правы: клиент или сервер. Тем более, что работодатель дал подсказку прям в начале кода:
&НаСервере //&НаКлиенте // и |
|||
23
Garykom
03.03.24
✎
08:13
|
(22) Процедура ПриОткрытии(Отказ) - это стандартная в 1С и она на клиенте
Конечно может такой код может быть и на сервере И в этом случае ТС в принципе правильно исправил заменив аннотацию, код будет выполняться Но не будет иметь смысла, зачем заполнять ячейки если в конце все удалим? Скорее всего автор задачи (хз чего обкурившись) подразумевал (1) Исправить Очистить() на Показать() |
|||
24
PR
03.03.24
✎
10:01
|
Удивительно, как куча народу пытаются найти смысл в бессмысленной бредятине, домысливают чего-то, спорят до хрипоты
|
|||
25
PR
03.03.24
✎
10:04
|
Без дополнительной информации единственно верная правка — это все закомментить, потому что это сократит расход ресурсов компьютера безо всякого ущерба для результата
В случае любой фразы давшего тест о том, что нужно было догадаться о том-то и том-то контора идет нахрен как неадекватная, потому что вся работа в ней будет наполнена болью и рассуждениями о том, а нахрена все это вообще надо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |