|
Вопросы с собеседований: ОписаниеТипов | ☑ | ||
---|---|---|---|---|
0
Asmody
14.09.23
✎
14:37
|
можетСсылка = Неопределено; типВсеСсылки = Справочники.ТипВсеСсылки(); ок1 = типВсеСсылки.СодержитТип(ТипЗнч(можетСсылка)); ок2 = типВсеСсылки.Типы().Найти(ТипЗнч(можетСсылка)) <> Неопределено; чему равны ок1, ок2? |
|||
1
scanduta
14.09.23
✎
14:19
|
(0) С собеседований с такими вопросами лучше просто уходить. Не об этом нужно прогов спрашивать
|
|||
2
Garykom
14.09.23
✎
14:21
|
Ложь
Ложь Но это по логике а что творится к конкретной версии платформы 1С хз |
|||
3
Garykom
14.09.23
✎
14:22
|
(0) Продолжаешь тему Нюансы и внимательность. НайтиСтроки, Найти ?
|
|||
4
MMB
14.09.23
✎
14:32
|
Так функция Тип(<ИмяТипа>) принимает на вход имя типа, может имелось в виду ТипЗнч, или тогда "Неопределено" в кавычках нужно
|
|||
5
Asmody
14.09.23
✎
14:37
|
(4) да, поправил
|
|||
6
SleepyHead
14.09.23
✎
14:37
|
(1) А если это собеседование проводит автор темы? )
|
|||
7
yopQua
14.09.23
✎
14:38
|
(6) о том и речь
|
|||
8
Garykom
14.09.23
✎
14:39
|
(6) Если цель завалить - завалят в любом случае
|
|||
9
Asmody
14.09.23
✎
14:41
|
(7) не провожу.
Я сам нарвался сегодня в глубинах библиотечного метода (не БСП), пока ошибку ловил. |
|||
10
Garykom
14.09.23
✎
14:44
|
(8)+ Например пару раз попадал на одинаковый тест, где надо в уме вычислить результат запроса с соединением для данных таблиц
Интересно где на практике требуется это? Есть прямая задача для требуемого результата составить запрос Или обратная по готовому запросу понять что он делает Но зачем вручную в уме вычислять сколько элементов будет в результате запроса для конкретных таблиц? Когда всегда можно запустить в 1С на проверку? Еще бы дали код (на пару страниц) программного создания элементов формы и попросили нарисовать что получается )) |
|||
11
Garykom
14.09.23
✎
14:45
|
Кстати с ТипВсеСсылки() есть прикол с расширениями!
|
|||
12
SleepyHead
14.09.23
✎
14:49
|
(11) Какой? Я не сталкивался
|
|||
13
Valdis2007
14.09.23
✎
15:11
|
Истина
Ложь На какую ЗП такой собес?)) |
|||
14
Asmody
14.09.23
✎
15:22
|
(13) на интерес.
Верно. А вот статья на ИТС: https://its.1c.ru/db/metod8dev/content/2611/hdoc Цитата:Важной особенностью объекта ОписаниеТипов является работа с типом Неопределено. Если в объекте ОписаниеТипов задано более одного типа, то считается, что кроме значений заданных типов, может храниться и значение типа Неопределено. Это необходимо, потому что если, например, какой либо реквизит имеет составной тип (допускает хранение более одного типа), то значением по умолчанию для данного реквизита будет значение Неопределено. Если допускается хранение одного типа, то значением по умолчанию будет являться значение по умолчанию этого типа. Таким образом, тип Неопределено всегда неявно присутствует в перечне типов объекта ОписаниеТипов если в нем задано более одного типа. Это обстоятельство следует учитывать, например, при использовании методов ТипВсеСсылки(). Данные методы возвращают не просто массив типов ссылок, а объект ОписаниеТипов, который может использоваться для описания хранения значения соответствующих типов. Метод ПривестиЗначение() объекта ОписаниеТипов полученного методом ТипВсеСсылки() будет работать согласно логике получения значения по умолчанию для составного типа. Результат будет зависеть от того, один тип попал в полученный объект ОписаниеТипов или более. Если типов несколько и переданное значение не соответствует ни одному типу, то будет возвращаться значение Неопределено. Если в объекте ОписаниеТипов не заданио ни одного типа, то считается, что в данном случае может храниться любой тип. Использование метода ПривестиЗначение() в этом случае не имеет смысла. При использовании запросов следует учитывать, что в результате запроса в колонках, кроме типов значений исходных полей, могут присутствовать значения типа NULL. Поэтому тип колонки таблицы значений, полученной из результата запроса, не будет полностью соответствовать типу исходного поля таблицы, а будет дополнительно содержать тип NULL. |
|||
15
Valdis2007
14.09.23
✎
15:38
|
(14) на собесе, еще можно попросить рассказать разницу между null и Неопределено своими словами))
|
|||
16
AlexeyKh
14.09.23
✎
15:44
|
а приведите хоть один реальный код программы который использует эти команды?
меня всегда радуют вопросы по знаниям каких-то команд, приемов - которые вообще никогда в реальном программировании не используются! (вот зачем помнить все это г..но?) |
|||
17
Мимохожий Однако
14.09.23
✎
15:48
|
(16) А это уже второй вопрос. Следующий!
|
|||
18
Asmody
14.09.23
✎
16:16
|
(16) есть измерение РС типа "все ссылки". в некотором методе нужно понять: если это ссылка на справочник - делать одно, если на документ - делать другое, или ничего не делать. иногда реквизит может быть незаполнен.
|
|||
19
Asmody
14.09.23
✎
16:19
|
другой случай: прилетел в метод параметр. нужно понять - это ссылка, или массив (а он может быть просто массив или ФиксированныйМассив), или еще что.
Отсутствие контроля типов на уровне языка заставляет как-то выкручиваться. |
|||
20
Asmody
14.09.23
✎
16:21
|
или вот ещё: прилетел в http-сервис УИД строкой. нужно получить по нему ссылку и если ссылка валидная, что-то от неё отдать. Ссылка может быть на что угодно.
|
|||
21
lubitelxml
14.09.23
✎
16:22
|
(20) Ссылка может быть на что угодно - тут явно неверное проектирование http-сервиса
|
|||
22
CepeLLlka
14.09.23
✎
16:36
|
В текущих реалиях лучше спросить - "Справочники.ТипВсеСсылки() всегда возвращает ссылки на все справочники или нет и почему?"
|
|||
23
lubitelxml
14.09.23
✎
16:38
|
(22) 20 лет в 1с (из них 15 8.х), ни разу ТипВсеСсылки() не использовал
|
|||
24
CepeLLlka
14.09.23
✎
16:40
|
(23)Да я тоже не использовал, но приходиться порой дорабатывать типовые, в которых это используется.
|
|||
25
lubitelxml
14.09.23
✎
16:43
|
(24) тоже с типовыми постоянно работаю, не встречал, хотя много разного перепиливал. Ну видимо просто мне такие задачи попадались. Вообще задачу из (0) не считаю адекватным вопросом при собеседовании, и даже не стану пытаться отвечать, а просто пойду на следующее собеседование. Это примерно как на 1 курсе универа, когда на c++ писали на листочки
|
|||
26
CepeLLlka
14.09.23
✎
16:46
|
(25)А что сложного то в вопросе? Ну потупил я минутку, попытался понять в чём подвох, у меня получилось как в (2), надеюсь что это верно. Проверять конечно не буду :)
|
|||
27
lubitelxml
14.09.23
✎
16:50
|
(26) ну я сначала также подумал, а оказывается мы оба не справились, как пишет автор - верный ответ в (13)
|
|||
28
CepeLLlka
14.09.23
✎
17:01
|
(27)Может и так, надо проверять.. Это не суть на самом деле, но так-же верно что это не отразит реальный опыт. Поэтому я и предложил - (22)
|
|||
29
d4rkmesa
14.09.23
✎
17:16
|
(18) Если позанудствовать, то такие регистры (где есть тип ВсеСсылки) - косяк архитектора или кто там такие регистры спроектировал. Помню, на одной из предыдущих работ в УПП кто-то добавил регистр для версионирования самописный с подсистемой с Инфостарта, там значения хранились в реквизиты подобного произвольного типа. Каждое обновление с изменением состава справочников и документов превращалось в пытку с реструктуризацией РС. Я перед уходом все-таки ограничил тип вменяемым набором ссылок.
|
|||
30
d4rkmesa
14.09.23
✎
17:18
|
Но, кстати, любопытно, спасибо. Я читал ту статью на ИС и про Неопределено вроде как общеизвестно, но применительно к СодержитТип не подумал.
|
|||
31
Asmody
14.09.23
✎
17:27
|
(29) в старом типовом механизме версионирования, до того, как его в платформе придумали, в РС ВерсииОбъектов измерение Объект имеет тип "СправочникСсылка,ДокументСсылка". То же самое с РС ЗначенияСвойствОбъектов.
|
|||
32
Garykom
14.09.23
✎
19:38
|
(12) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy/
В версии 8.3.20 будут добавлены новые возможности использования ссылок на объекты расширений. Так, например, массив, полученный вызовом метода Справочники.ТипВсеСсылки().Типы(), будет содержать типы справочников как из конфигурации, так и из расширений (аналогично будут себя вести методы Документы.ТипВсеСсылки().Типы() и т.д.). Ранее эти методы возвращали только соответствующие типы, определенные в конфигурации. |
|||
33
ДедМорроз
14.09.23
✎
22:20
|
И вот это разваливает конфигурацию при обновлении и подъеме режима совместимости.
Особенная печаль с разделением данных,где от режима совместимости зависит будет ли справочник расширен или нет. |
|||
34
ДедМорроз
14.09.23
✎
22:22
|
Неопределено - это незаполненное значение составного типа и оно неявно входит в любой составной тип,но в перечисление типов этого составного типа не попадает,так как значение реквизита явно не может иметь значение неопределено.
|
|||
35
НафНаф
15.09.23
✎
00:44
|
(15) прекрасно
|
|||
36
НафНаф
15.09.23
✎
00:46
|
(34) так как значение реквизита явно не может иметь значение неопределено
Это почему? |
|||
37
Злопчинский
15.09.23
✎
04:37
|
(28) реальный опыт чего?
|
|||
38
DrZombi
15.09.23
✎
06:16
|
(12) Расширения видят только объекты основной конфигурации, а из расширения нет :)
|
|||
39
DrZombi
15.09.23
✎
06:17
|
(32) Врут, нагло врут, не взлетело :)
|
|||
40
Valdis2007
15.09.23
✎
08:10
|
(25) "не считаю адекватным вопросом при собеседовании, и даже не стану пытаться отвечать"...Таки такие задачи как правило задают, дабы оценить не решение, а реакцию кандидата на задачу))
|
|||
41
НафНаф
15.09.23
✎
08:33
|
(40) вот согласен, пусть даже будет неправильно, но хотелось бы услышать логику кандидата
|
|||
42
lubitelxml
15.09.23
✎
08:41
|
(40)(41) принял ребят, скоро собираюсь как раз пособеседоваться, учту
|
|||
43
Asmody
15.09.23
✎
09:37
|
(42) всегда можно сказать: "я не знаю, но по логике должно быть так. но поскольку у 1С своя логика, правильный ответ даст только отладчик"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |