Здравствуйте,у меня немного не обычный вопрос, пригласили на собеседование по 1С (вакансия программиста 1С), я 1С начал изучать в т.ч. по электронным учебникам, разбирался с запросами, хотел спросить ваше мнение - какие вопросы, как правило, могут задать на собеседовании... Я работодателю объяснил ситуацию, рассказал, что опыта как такового нет, что окончил курсы в 16 году, он согласился чтобы я приехал, со мной пообщаться... Но хотелось бы не упасть в грязь...
(1)Я "зеленых" люблю спрашивать:
Чем отличается модуль формы, от модуля объекта.
Чем отличается отчет от обработки.
Чем отличается ПустаяСсылка(), Неопределено и NULL.
Сертифицированных люблю спрашивать, чем отличаются запросы (Должность - ресурс):
1. ВЫБРАТЬ Количество(Сотрудник) ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РС ГДЕ Должность=&Должность
2. ВЫБРАТЬ Количество(Сотрудник) ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(,Должность=&Должность) КАК РС
В последнем вопросе правильный ответ не важен, больше смотрю, как рассуждают.
(99) Нет. мне просто интересно. И почему-то мне кажется, что Ваши ответы на собеседовании не прокатят. Хотя, возможно, *Вашему* HR такие ответы бы понравились.
(66)Лично меня устроит ответ, что модуль формы исполняется только при живой форме, а модуль объекта инициализируется при любых манипуляциях объекта, хоть с формой, хоть без формы.
(68) Объект никак не связан с формой. Точно так же можно сказать: "модуль формы инициализируется при любых манипуляциях с формой"
или "модуль объекта исполняется только при живом объекте".
(80)Ок, "При любых манипуляциях с объектом, хоть из формы, хоть не из формы", так будет корректнее.
Этот вопрос для того, чтобы не встречать внезапно вопросы и предупреждения в модулях объектов. У нас ОФ, и это очень влияет.
Ну, толстый клиент - наверняка имеется в виду его серверная часть. Тонкого-то клиента в списке нет.
В толстом клиенте обычного приложения и во внешнем соединении модуль объекта располагается не на сервере. Так что утверждение, что "объект существует только на сервере, поэтому в его модуле могут быть только серверные процедуры и функции. " не верно.
(124) как понимаю, что про толстый клиент кроме как на файловой базе не знаете? Узнайте для себя новое и посмотрите клиент-серверный вариант и толстый клиент.
(128) Знаю. Поэтому и писал про сервер именно приложений, чтобы не дать схватить себя за язык. А то написал бы "толстый клиент - гермафродит: сам себе и сервер и клиент" и сразу же резонный вопрос: "А SQL?"
Или Вы хотите сказать, что в связке "толстый клиент+SQL" объект на SQL-сервере создаётся?
Кстати, народ, кто-нибудь трёхуровневую архитектуру использует? И как оно?
(129) похоже вы сами запутались в своих предположениях. Что тогда по вашему "сервер приложений"? И как это относится к толстому клиенту? И где в толстом клиенте нашли его серверную часть.
(129)
Или Вы хотите сказать, что в связке "толстый клиент+SQL" объект на SQL-сервере создаётся?
Это вообще непонятно как интерпретировать. Толстый клиент не общается напрямую с SQL сервером (в рамках стандартного доступа).
(110)Совершенно верно, в теории размещать в модуле рекомендуется серверные методы. Но не во всех режимах это контролируется синтаксис-контролем и неофит имеет возможность написать что попало.
(110) Не так давно обнаружил, что с тонкого клиента можно запускать любые серверные процедуры/функции модуля произвольной управляемой формы, в том числе неэкспортные, чего нельзя сделать с модулем объекта или общим модулем.
(179)А чем вы на собеседованиях занимаетесь, кроме потрындеть? Чтобы нормально убедиться в квалификации, существует испытательный срок. Собеседование предназначено для обмена впечатлениями работодатель-работник. Ну и прощупать, кто сколько в резюме/вакансии наврал.
(1) не надо парится про "упасть в грязь". На нормальном собеседовании тебе дадут ряд задач "от простого к сложному", а это собственно предусматривает что ты какую-то задачу не решишь(а может и не одну, хе-хе), таким образом проверяют твой уровень знаний. То что ты на какой-то задаче зафэйлишся, это нормально, только наверно после лет 10 интенсивной работы будешь решать все фантазии собеседующих.
Помни, твои ответы характеризуют тебя, а вот задаваемые тебе вопросы - характеризуют работодателя. То есть если тебе кажется что работодатель несет какую-то блажь - то ну его нафик.
(1) вопросы могут задаться вообще любые...у нас программиста ищут, меня привлекают для оценки опыта.
Никаких заданий не даю, но когда человек начинает говорить что он отчеты, запросы умеет делать - сразу задаю попутный вопрос, "чем отличается левое соединение от полного".
Или про регистры, рассказывает, что он документы делал, движения...сразу вопрос "можно ли сделать движение по РН - без регистратора? ))) и т.д. ничего сверхестественного,
но половина кандидатов, откровенно "плавает" на элементарщине.
Сразу видно, человек просто хвалится - или действительно хоть немного разбирается.
(42) ))) Ну да, так если человек разбирается, то с ним и поболтать и подискутировать интересно...
а когда начинает мычать, и говорить что не помнит - то явно очередной пионэр
(43) Эммм... как это ?? Если знаешь как работает , значит можешь объяснить , Если не можешь объяснить - значит не знаешь или не до конца понимаешь как это работает и соответственно ограничен в применении этих знаний на практике
(44) Объясните самому себе или стороннему слушателю что такое трава, или масло. Потом расскажете как получилось.
Или еще: попробуйте объяснить как вы ведете машину, почему руль поворачиваете туда сюда, без какой то системы и на разный угол.
(46) Я то как раз знаю что некоторые вещи сложно объяснить, несмотря на то что вроде бы их знаешь и понимаешь. Поэтому и сказал, что для программиста это не должно являться критерием оценки. Программист должен в первую очередь правильно понимать и применять. Умение объяснять это второстепенная функция программиста. :)
(47) а когда программист что то поцарапает паркуясь на корпоративной стоянке, какая по вашему функция станет первостепенной - умение объяснять или стирать логи видеонаблюдения?
Умение объяснять это второстепенная функция программиста.
Руководитель дает задание. Потом проверяет и спрашивает: "почему использовался этот метод, а не другой?" Ответ: "а это не важно, я ведь знаю, но объяснить не могу..."
(47) (50) Вообще, обычно так про умных собак говорят - всё понимает, но сказать не может... А специалист, инженер должен быть умнее собаки, пусть даже умной
(122) Да я согласен что должен, Вы не слышите: я говорю о том, что есть и косноязычные. При этом он может быть высококлассным специалистом, к которому просто нужен свой подход в постановке и приемке задач.
(123) Написать код понятный машине, может другая машина. Написать код понятный человеку, это и есть признак "высококлассного специалиста". Умение выражать свои мысли в виде текста это признак образованного человека и специалиста. Если человек на своём родном языке не может связать двух слов, то как он будет писать на чужих искусственных языках?
(150) Работница "Скорой помощи" написала лажу с точки зрения физики. Правомерен ли вопрос: "Как она будет спасать людей от смерти, если даже элементарной физики не знает?"?
(151) Если вопрос звучал типа: "Чем отличается прямой массаж сердца от непрямого". И на этот вопрос она написала лажу, то вопрос уже будет не только "Как она будет спасать людей от смерти, если даже элементарной физики не знает?", а вообще о профпригодности.
(151) Мы не говорим о физике применительно к медицине. Мы говорим об умении выражать свою мысль, которая нужна как для вербальной коммуникации, так и для написания хорошего кода. Если вы не считаете, это умение ключевым для разработчика, то рекомендую для начала прочесть пилотную статью о качестве кода. После этого можем продолжить диалог. Сейчас вижу полное непонимание того что должен уметь хороший программист и что такое хороший код.
(165) Мне кажется, вы ищете лазейки, чтобы найти себе оправдание. Это не конструктивно. Заика может быть хорошим, потому что у него проблема с воспроизведением слов, а не с их формулированием и связыванием в предложения. Да, это лёгкая форма инвалидности сильно осложнит коммуникацию, но на сам мыслительный процесс, по моим сведениям влияет слабо. Наоборот, я замечал если у человека есть проблема с дикцией, на письме он будет намного более старателен. Косноязычие же рождается в голове, а не на языке.
В чём и, главное, перед кем я должен оправдываться?
По мне так оправдываться должен автор тезиса "если человек плохо владеет языком, то у него и с программированием проблемы". Обывательщиной веет, в стиле "что может человек с таким носом понимать в творчестве Герберта фон Караяна?"
(169) Вы снова приводите некорректные сравнения.
Я говорю, что изложение своих мыслей при написании программы и изложение своих мыслей при беседе, суть явления одного порядка, потому что они являются разновидностью изложения мыслей.
Вы же приводите заведомо ложные аналогии приводя в пример пары из несравнимых и не связанных предметов и явлений. Это, как минимум, признак неряшливости мышления. Как максимум, сознательная ложь ради продолжения спора (в миру троллинг).
(170) Жаль :( А я-то надеялся, что в восьмёрке где-то припрятан флажок "Быстрых итогов", как в семёрке. Значит, правильный ответ будет или несколько таблиц, или же, что всё закешируется. Пойди угадай, что рекрутёру надо.
(172) Пораскинул мозгами и понял, что данный флажок не помог бы, даже если б он и был бы. Вот я даю 6 цифр - и мне надо знать, сколько троек у меня совпадает. Тут или в реальном времени все тройки генерировать, делать запрос к регистру и всё суммировать. Или, что лучше, вычислять все тройки, четвёрки и т.д. при проведении документа и писать в соответствующие регистры.
Так что правильный ответ - действительно несколько регистров.
(169) видите ли, лингвистика вообще и лингвистика диалектов это сложная наука. Диалект программистов (суржик) сложился на основе большого числа заимствований из английского, диалект 1с программистов на основе юридической, бухгалтерской и бизнес терминологии, что не могло не отразиться на манере изложения пользовательской документации и документации для разработчиков.
Предполагается, что в 1с приходят специалисты с тремя высшими образованиями и успешным опытом предпринимательства именно в той сфере деятельности, которую предлагается автоматизировать клиенту, например торговали автомобилями, все получалось. Написали 1с под себя, продали коллегам и увидели что на этом можно заработать больше, чем на самой продаже автомобилей. Причем продажа автомобилей у нас есть и мы продолжаем ими торговать и оно по прежнему приносит какой-то доход, и отказываться от успешного собственного бизнеса ради временной проектной работы это просто глупо.
(43) как без объяснения своих знаний можно понять, что вы правильно понимаете?
А то ведь потом будут такие запросы попадаться:
ВЫБРАТЬ
Товар.Ссылка КАК Ссылка,
Товар.Наименование КАК Наименование,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Товар
ПО (ТоварыНаСкладахОстатки.Номенклатура = Товар.Ссылка)
ГДЕ
Товар.Ссылка = &Ссылка
(49) правильно, и пусть сначала заказчик скажет что получилось что то не то, объяснит вам что именно получилось, почему получилось именно так, и почему это неправильно, а так же что надо сделать.
Причем все это не глядя в код.
Заказчик, который спрашивает почему использовался или не использовался какой то метод, никогда не будет ничего платить.
А объяснять бесплатно почему - вы можете, если занимаетесь благотворительностью или готовите заказчика к работе консультантом-аналитиком-аудитором (где нибудь заграницей).
(52) тем более. Руководитель тратит свое время на выслушивание объяснений непонятно по какому поводу? он экзамен принимает или заказ? Он потом заказчику эти обьяснения повторять будет слово в слово если вызубрит или будет выслушивать претензии от заказчика?
Руководитель, который видит код может высказать свое мнение, что здесь (ткнуть пальцем, или написать номер строки) он считает более правильным использовать другой метод (... какой... И все это в целом следует переписать, как раз за полчаса до сдачи проекта заказчику?).
Или высказать свое мнение после сдачи проекта, если проект имеет образовательную, коммерческую или иную ценность кроме того, что оплачено заказчиком, при построении планов на рефакторинг на подготовке к следующему этапу проекта..
(83) да запрос работает и данные получает правильные, вопрос как!!!
Этот запрос можно и так написать:
ВЫБРАТЬ
Товар.Ссылка КАК Ссылка,
Товар.Наименование КАК Наименование,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
ИЗ
Справочник.Номенклатура КАК Товар
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &Ссылка) КАК ТоварыНаСкладахОстатки
ПО (ТоварыНаСкладахОстатки.Номенклатура = Товар.Ссылка)
ГДЕ
Товар.Ссылка = &Ссылка
Показать
Получаемый результат будет одинаковый, только в первом случае (49) это будет полный кошмар с полным соединением всей номенклатуры и уже из результата соединения будет выбрано только конкретное значение. Во втором случае будет уже ссуженная выборка.
Вот результаты плана запроса:
1. Statistics: RecordsScanned = 490, ParseTime = 0, ExecuteTime = 1, BuffersMemory = 24607, ResultRecords = 1, RecordSize = 241
2. Statistics: RecordsScanned = 4, ParseTime = 0, ExecuteTime = 0, BuffersMemory = 24607, ResultRecords = 1, RecordSize = 241
(87) и заказчик на своем компьютере, со своей сетью и в определенное время (предположим не в пиковую нагрузку) в одном сеансе может увидеть что запрос не уложился в apdex ?
(92) если это не такой простой запрос, а многоуровневый, то там уже будет визуально видна разница по времени выполнения. А по факту искать такие перлы не всегда удобно.
(85)Тут фишка не в соединении, а в использовании виртуальной таблицы без параметров.
Условие отбора по номенклатуре нужно было наложить в параметрах виртуальной таблицы
(1) Тебе в любом случае зададут кучу вопросов, ответов на которые ты не знаешь. Просто чтобы было спокойнее, это работает следующим образом: сначала задают совсем простые вопросы, чтобы было понятно что ты вообще понимаешь о чём идёт речь. Затем сложность вопросов увеличивается чтобы оценить глубину знаний платформы и синтаксиса. После этого следуют вопросы, ответов на которые новичок точно не знает. Это делается чтобы понять что ты будешь делать когда столкнёшься с такой ситуацией. Если чего-то совсем не знаешь, "я не знаю" -- неправильный ответ. Хороший ответ -- "с этим я пока не сталкивался, но при возникновении подобной ситуации я бы сделал так-то". Например, поискал бы ответ в интернете по таким-то ключевым словам, или спросил бы у более опытного коллеги как быстро найти ответ на данный вопрос. Спрашивать решение целиком у опытного коллеги -- такой себе вариант, потому что этим ты отвлечёшь его от решения собственных задач. Могут дать дать задачи на программирование. Если тебе не хватает знаний синтаксиса для решения задачи, опиши алгоритм её решения своими словами чтобы было понятно что ты понимаешь логику решения.
(1) Товарищ в (57) все правильно говорит. От себя еще добавлю. Выслушивая комментарии после собеседований сделал вывод: в первую очередь они будут оценивать открыт ты или нет, можно тебе доверять или ты скрытный, злобный. Когда не знаешь ответа на вопрос или быстро не можешь дать ответ нужно сказать об этом вслух, типа "Ооо какой интересный вопрос, я сразу и не знаю как ответить, но разбираться с вопросом начал бы вот с этого..." Т.е. все то, что ты в голове прокручиваешь, нужно говорить будущему работодателю.
(49) На такое знающий, но малообщительный программист просто скажет: "Так медленно, нужно вот это сюда". Такого объяснения будет достаточно? ))
На такое знающий, но малообщительный программист просто скажет: "Так медленно, нужно вот это сюда". Такого объяснения будет достаточно? ))
Художественного произведения на данную тему никто не будет требовать, но объяснить техническим языком программист обязан.
Программист советской школы назывался инженер-программист. В государственных структурах и им подобным такая должность сохранилась и по сей день.
А инженер просто обязан объясняться техническим языком по своей теме при необходимости.
(1) Узнайте хотя бы на чём они работают (упр или обычные формы). От этого можно дальше прыгать в сторону подготовки к собеседованию.
Ну а так, СКД, запросы и прочее никто не отменял.
Отсутствие информации, не повод для расстройства.
Каждой паре по паре, каждому программисту найдется работа, там где надо.
Ищите работу там где есть кому вас выучить, в дальнейшем все окупится,
если есть предпосылки к этому.
От себя могу добавить - рекомендую программировать предметные области, Заплата, бухгалтерия..., проектный учет, бюджетный учет.
Не рекомендую торговлю и производство, так как производства у нас в России нет, а в торговле в основном одни хапуги
(105) Бухня и ЗУП - проклятье любого нормального программиста. Во первых скучно (ну нет там интересных задач да и быть не может по определению), только и будешь исправлять за ними красноту в оборотке да отчётность здавать. Во вторых работа с истеричными бабками, если и не бабками то всё равно с истеричными (зачастую просто глупыми). Бухгалтеров то как таковых уже не осталось, они все кроме главбухов операторы ПК по сути. Отсюда крайне низкое качество сотрудников в бухгалтериях. В третьих - будешь вместо них архитектуру учёта придумывать, т.к. даже главбухе уже зачастую нив в чём не отдупляються. Не, ну а кто, если кроме тебя комплексно никто не разбирается в теме:))) В четвёртых - там ещё куча минусов, устану описывать. По мне так работа с рег.учётом это прозябание. Я при трудоустройстве уже не рассматриваю работу с бухнёй и зупом.
Производства в России достаточно, а то, что в торговле хапуги, ещё не говорит о том, что тебе не заплатят. Только в производстве и торговле можно что то действительно нужное создавать. В бухне ты только можешь автоматизировать уже существующие функции, потому, что Марь Ванна в свои 50 уже не может запомнить последовательность из 2-ух кнопок, ей и одну то сложно.
Есть правда плюс там один - чайком с печеньками напоят и будут со всех ртов кричать какой Серёженька "мега" специалист, за них всю работу делает.
Вопросы, как правило, могут задать любые :) В том числе заведомо провокационные.
Но так как они в курсе про наличие отсутствия опыта у тебя, то больше будут оценивать тебя как человека в целом.
Поэтому выспись, будь опрятным, одет не вызывающе. Говори прямо, спокойно, доброжелательно. Ответы обдумывай, но не слишком долго.
Демонстрируй рвение к работе и обучению, но сохраняй достоинство. Отвечай откровенно, но не перегибай и не ударяйся в монологи. Демонстрируй адекватность, в общем. Твои проф-навыки тут скорее всего будут вторичны.
Да по всякому может быть. На одном собеседовании на словах договорились - спросили разницу между &НаКлиенте и &НаСервере :) Еще спросили умею ли с запросами работать - я сказал "Да" и все на этом. Проработал там 2 года. А другие сказали - вот тебе задача с сертификации по спецу - сиди решай. Еще были вопросы по объектной модели, какие типы у ресурсов разных регистров....а еще на последнем месте работы во время собеседования спросили как называется регистр бухгалтерии :) Так что может быть всякое....
(4)Контекстом. На клиенте можно отрабатывать все действия, связанные с формой документа, нельзя работать с запросами, например. Всего три контекста есть НаКлиенте, НаСервере, НаСервереБезКонтекста. Тут долго все это объяснять, проще загуглить.
(4) Раз с управляемыми формами не разбирался, то можешь не париться на этот счет. В основном это используется как способ разделения модуля управляемой формы на клиентскую и серверную части.