Вопросы кандидату на должность "Программист 1С" на собеседовании - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

Вопросы кандидату на должность "Программист 1С" на собеседовании

Часто наниматель, а конкретнее его представитель, HR-специалист, сталкивается с проблемой при найме сотрудников на узкоспециализированные вакансии. Одной из таких вакансий и является «Программист 1С». Провести собеседование не работающему в этой сфере специалисту проблематично. Хорошо, когда на предприятии уже есть программист 1С который может задать соискателю тематические вопросы и оценить его уровень знаний и профессионализм.

Что делать, когда Вы принимаете на работу первого или единственного программиста 1С? Предлагаю Вашему вниманию вопросы для тестирования по 1С и ответов на них. Которые помогут с высокой долей вероятности определить кто перед Вами – профессиональный специалист 1С или новичок! Так же на собеседовании кандидату на должность можно попросить сделать простой отчёт или исправить какую ни будь ошибку в копии рабочей базы.
 
// Технические вопросы
💬 Каким образом можно ускорить поиск в ТаблицеЗначений? Назовите все известные вам способы.
🟢 1. Создание индексов на часто используемые поля для поиска.
2. Предварительно отфильтровать записи, которые соответствуют критериям, до выполнения поиска.
3. Хранение ранее найденных результатов в кэше для ускорения повторных запросов.
4. Использование метода НайтиПоЗначению, этот метод оптимизирован для быстрого поиска и позволяет найти первую строку, в которой значение указанного поля совпадает с заданным значением.

💬 Что в регистре сведений означают свойства “Ведущее”, “Основной отбор”?
🟢 Ведущее —  свойство измерения, подразумевающее под собой информацию о том, что без значения этого измерения запись регистра не имеет смысл. На деле это означает что система при удалении значения из измерения удаляет еще и запись регистра с «Ведущим» измерением. Может быть установлено только одно измерение.
Основной отбор — если регистр независимый, по этим измерениям будет устанавливаться регистрация изменений для плана обмена. Аналогично использование Основной отбор по периоду включает основной отбор для периодических регистров.

💬 На что влияет порядок следования измерений в регистре сведений?
🟢 Порядок следования измерений в регистре сведений влияет на:
1. Производительность запросов: Чем раньше в порядке следования стоит измерение, по которому чаще всего происходит отбор или группировка, тем быстрее будут выполняться запросы, использующие это измерение.
2. Индексы: Первые измерения в порядке следования будут использоваться в индексах, что также влияет на скорость выполнения запросов.
3. Отчеты: При построении отчетов порядок следования измерений влияет на то, как будут агрегироваться данные.
Таким образом, правильное назначение свойств и порядок следования измерений критически важны для оптимизации производительности системы и корректного функционирования учетных процессов.

💬 Когда нужно использовать транзакцию в 1С и для чего она нужна?
🟢 Транзакции используются в следующих ситуациях:
1. Групповые изменения данных: Когда нужно выполнить серию операций, которые должны быть выполнены либо все вместе, либо ни одной (атомарность операций). Например, при проведении документа, когда нужно записать данные сразу в несколько регистров.
2. Согласованность данных: Для обеспечения согласованности данных в системе. Если какая-то часть операции не выполнится успешно, то все изменения, внесенные в рамках транзакции, будут отменены, и данные останутся в исходном состоянии.
3. Изоляция операций: Для предотвращения конфликтов при параллельном выполнении нескольких операций. Транзакция обеспечивает изоляцию изменений, пока они не будут завершены.
4. Обеспечение целостности данных: В ситуациях, когда необходимо гарантировать, что данные не будут повреждены или частично обновлены в результате ошибки или сбоя в процессе выполнения операций.

💬 Как реализовать валютный учет на бухгалтерском регистре?
🟢 Создаем дополнительно в регистре бухгалтерии:
1) Измерение Валюта (запрет незаполненных значений, небалансовый, признак учета - валютный);
2) Ресурс ВалютнаяСумма (небалансовый, признак учета - валютный, в нем будет хранится сумма в валюте)
Прописываем измерение и ресурс в модуле документов, отчётов, обработок.

💬 Для чего в запросе нужно выражение «Разрешенные»?
🟢 Для активизации ограничения доступа в соответствии с правами пользователя.

💬 Зачем нужен привилегированный режим и как можно в него перейти?
🟢 Привилегированный режим позволяет: 1) выполнить операции с данными от лица пользователей, которым данные недоступны по правам; 2) ускорить работу, так как в привилегированном режиме не накладываются ограничения на доступ к данным.
Для перехода в привилегированный режим следует использовать следующие возможности:
1) С помощью размещения процедур и функций в общем модуле с установленным свойством Привилегированный
2) В произвольном месте любого модуля с помощью процедуры глобального контекста УстановитьПривилегированныйРежим
3) C помощью установки свойств документа "Привилегированный режим при проведении" и "Привилегированный режим при отмене проведения"
4) Установить свойство бизнес-процесса "Привилегированный режим"
5) Устанавливать свойство "Привилегированный режим при получении" для функциональных опций.

💬 Допустимо ли делать соединения в запросах 1С с вложенными запросами? Поясните свой ответ. Как можно этого избежать?
🟢 При написании запросов не следует использовать соединения с вложенными запросами.
Пояснение:
1) Крайне медленное выполнение запроса при слабой загрузке серверного оборудования. Замедление запроса может быть очень значительным (до нескольких порядков);
2) Нестабильная работа запроса. При некоторых условиях запрос может работать достаточно быстро, при других - очень медленно;
3) Значительная разница по времени выполнения запроса на разных СУБД;
4) Повышенная чувствительность запроса к актуальности и полноте статистик. Сразу после полного обновления статистик запрос может работать быстро, но через некоторое время опять замедлиться.
Как можно избежать:
Если запрос использует соединения с вложенными запросами, то его можно переписать с использованием временных таблиц.

💬 Чем "ОБЪЕДИНИТЬ" отличается от "ОБЪЕДИНИТЬ ВСЕ"?
🟢 В общем случае, при объединении следует использовать конструкцию ОБЪЕДИНИТЬ ВСЕ, а не ОБЪЕДИНИТЬ. Так как во втором варианте полностью одинаковые строки заменяются одной, на что затрачивается дополнительное время, даже в случаях, когда одинаковых строк в запросах заведомо быть не может. Исключением являются ситуации, когда выполнение замены нескольких одинаковых строк одной является необходимым условием выполнения запроса.

💬 Как посчитать нарастающий итог в СКД?
🟢 В СКД нарастающий итог делается гораздо проще, чем в запросе. Не нужно ни каких дополнительных соединений. Достаточно создать вычисляемое поле, ресурс, а также правильно задать группировку в настройках. Скажем у нас простой отчет СКД, который будет выводить данные из регистра накопления по суммам заказов с группировкой по дням.
1) Создадим вычисляемое поле, которое так и называем СуммаНарастающийИтог.
2) Это вычисляемое поле добавим в ресурсы, где напишем выражение: ВычислитьВыражение("Сумма(СуммаОборот)",,,"Первая","Текущая").
В этом выражении мы вычисляем сумму по колонке СуммаОборот с первой строки по текущую.
3) Также в настройках добавим группировку Период (то поле, по которому будет считаться наша сумма), и выберем поля Период, СуммаОборот, СуммаНарастающийИтог.
В результате у нас получится отчет с нарастающим итогом по колонке сумма.

💬 В списке справочника «Контрагенты» конфигурации Бухгалтерия 8 необходимо красным цветом шрифта выделить покупателей, за которыми числится долг. Тезисно расскажите как это сделать.
🟢 - Необходимо доработать запрос динамического списка формы списка справочника Контрагенты, где нужно получить дебетовый остаток по счету 62.
- Для оформления необходимо применить условное оформление списка, которое удобнее настроить вручную в зависимости от значения поля, добавленного в предыдущем пункте.

💬 Вопрос в рамках конфигурации 1С:Бухгалтерия 8. Как организовать заполнение табличной части типового документа текущими складскими остатками товаров по кнопке на форме документа с минимальными последствиями для обновления конфигурации?
🟢 Использовать механизм ВПФО (Внешние  обработки, печатные формы, обработки по заполнению табличных частей).

💬 Можно ли программно получить список всех открытых окон в 1С?
🟢 Да, для этого используется метод ПолучитьОкна().
Выглядит это так:
ОкнаПриложения = ПолучитьОкна();
Для Каждого ОкноПриложения Из ОкнаПриложения Цикл
   Сообщить(ОкноПриложения.Заголовок);
КонецЦикла;

💬 Необходимо избавиться от условного оператора «Если» в алгоритме ниже. Нельзя использовать ЛЮБЫЕ условные конструкции, в т.ч. ?(А = 0, 2, 1). Переменной А могут быть присвоены только значения 0 или 1.
Если А = 0 Тогда
   Б = 2;
Иначе
   Б = 1;
КонецЕсли;
🟢 Ответ выглядит совсем просто. Б = 2 - А;

💬 В чем разница между WEB и HTTP сервисами в 1С?
🟢 WEB и HTTP сервисы — две технологии, позволяющие получить доступ к 1С из внешних систем.
WEB технология — это сервисно-ориентированная технология, она по сути является удаленным вызовом процедур. Мы проектируем описание процедур, описание передаваемых параметров, и с помощью WEB сервисов мы эти процедуры можем вызывать.
HTTP технология — это ресурсно-ориентированная технология, она основана практически на "голом" HTTP, там нет описания, нет проверки типов, нет проверки входящих и исходящих данных — есть только заголовки, параметры и тело запроса. И исторически используется формат данных JSON.

💬 Перечислите все объекты дерева метаданных предназначенных для решения задач интеграции.
🟢 Планы обмена – хранит список узлов, с которыми осуществляется обмен;
Web-сервисы – предоставляют возможность обращения к текущей базе 1С с помощью Web-сервисов;
HTTP-сервисы – предоставляют возможность обращения к текущей базе 1С с помощью HTTP-сервисов;
WS-ссылки – предназначены для описания статических ссылок на Web-сервисы сторонних поставщиков;
XDTO-пакеты – объект для описания структуры данных; широко используется при работе с Web-сервисами;
Внешние источники данных – предоставляет доступ к данным внешних баз, построенным не на 1С.

💬 Есть сервер 1С предприятия и сервер СУБД MS SQL. Медленно выполняется какая то операция. Как понять кто виноват сервер 1С или сервер СУБД?
🟢 Нужно сделать замер в SQL Server Profiler. Если Duration большое и занимает большую часть времени выполнения операции то проблема на стороне СУБД, если нет то на стороне 1С Сервера.

💬 Можно ли делать транзакцию на клиенте?
🟢 Нет, транзакции могут быть созданы только на уровне сервера.

💬 Можно ли получить характеристики сервера на котором работает 1С конфигурация из программного кода?
🟢 Для получения характеристик компьютера предназначен объект СистемнаяИнформация. Этот объект доступен как на клиенте, так и на сервере. Поэтому, чтобы получить характеристики сервера, надо обратиться к свойствам объекта в контексте сервера.

💬 Чем структура отличается от соответствия?
🟢 Ключ в структуре может быть только строкой, а в соответствии может быть любым типом.

💬 Что такое мутабельные значения? Приведите примеры.
🟢 Мутабельный тип (Mutable – изменчивый) – это сложный тип данных в 1С, который может менять свои свойства уже после создания. Примеры: объект; форма; список значений; таблица значений.

💬 Директива по умолчанию (если не указать)?
🟢 По умолчанию, если перед процедурой (функцией) ничего не указано, то применяется директива 1С &НаСервере.

💬 Каким способом можно отсортировать структуру?
🟢 Предполагается, что структура не нуждается в сортировке. Можно выгрузить в таблицу значений и отсортировать.

💬 В базе 1С документы определенного вида проводятся очень долго и их проведение сильно затормаживает работу всей системы. Что можно предпринять?
🟢 1. Оптимизировать процедуру проведения: Убрать лишние преобразования данных и ненужные обращения к серверу. Убедится, что выполняемые запросы используют индексы и оптимизированы.
2. Оптимизировать регистры: Проанализировать регистры, которые двигает данный документ, все ли они необходимы, имеют ли они оптимальную структуру. Отказаться от движений по не нужным регистрам и оптимизировать по возможности необходимые.
3. Использование фонового проведения или частичного проведения: Если возможно по логике работы, реализовать отложенное, фоновое проведение документов (например, по ночам). Есть вариант частичного отложенного проведения - часть регистров можно двигать сразу, например, управленческого контура, а остальные, скажем бухгалтерские, двигать по расписанию.
4. Убрать лишние проверки: Часто перед проведением выполняется большое количество проверок данных, пересмотреть необходимость выполнения каждой из проверок и отказаться от части их них или упростить логику.
5. Убедится, что в базе регулярно проводится расчет итогов регистров.
6. Проверить версию 1С платформы, если возможно перейти на последнюю версию (почти никогда не помогает, но можно сказать 😁, новая версия же оптимизирована по производительности).
7. Выявить возможные конфликты блокировок при проведении данного документа. Можно использовать ЦУП и другие инструменты, тут кто чем владеет и смотря какая СУБД.

💬 Вам нужно внедрить новую функциональность, в которой требуется хранить и обрабатывать данные, в существующую базу 1С, но вам запрещено вносить изменения в конфигурацию. Какие решения вы предложите для реализации задачи?
🟢 Очевидное: Использую механизм расширения конфигурации.
Не очевидное: Использую внешние обработки и отчеты для обработки данных, а для хранения данных можно создать другую базу и получать из нее данные через веб-сервисы, com и т.д.

💬 Как называется объект метаданных, который используется для определения иерархии дополнительных свойств объектов. Он позволяет добавлять динамические свойства к объектам без изменения их структуры.
🟢 План видов характеристик

💬 Зачем нужен механизм последовательностей?
🟢 Предназначен для обеспечения контроля правильности изменений, внесенных документами в учетные данные. Кроме этого последовательности, в случае необходимости, позволяют восстанавливать правильную картину изменений. Последовательность позволяет описать документы, которые будут относиться к данной последовательности, а также перечень регистров, изменение которых должно приводить к последовательному перепроведению документов. Механизм последовательностей допускает и более тонкую настройку, если требуется, чтобы последовательность учитывала не все движения, а движения по заданным значениям конкретных измерений.

💬 Расскажите про механизм обработки исключений в 1С и как правильно его использовать.
🟢Обработка исключений в 1С осуществляется с помощью конструкции Попытка...Исключение...КонецПопытки. Она позволяет перехватывать ошибки во время выполнения кода и обрабатывать их без прерывания работы программы. Правильное использование включает логирование ошибки, информирование пользователя и выполнение необходимых действий для корректного завершения операции или ее повторного выполнения.

💬 Как можно реализовать механизм автонумерации документов с учетом распределенной базы данных?
🟢 1) Использовать префиксы номеров для разных узлов, если нет необходимости в сквозной нумерации.
2) Применять централизованный сервис нумерации, если нужно добиться сквозной нумерации по всем узлам.
3) Использовать GUID для уникальности номеров.
Последнее конечно больше теоретическая возможность

💬 С чего ВСЕГДА должно начинаться обновление рабочей базы данных?
🟢 С выполнения резервного копирования базы или проверки, что актуальная резервная копия есть в наличии.

💬 Какой будет результат выполнения ПустаяСтрока(Null)?
🟢 Истина
Это особенность 1С, где Null рассматривается как "отсутствие значения," что интерпретируется как пустое значение для строк.

💬 Как в 1С реализовать регулярное обновление данных из внешнего источника, например, курсов валют?
🟢 Необходимо выполнить следующие шаги:
1. Создание задачи по расписанию, которая будет запускать обработку обновления данных (например, используя Планировщик заданий в 1С).
2. Внутри обработки выполняется подключение к внешнему источнику (например, через API или скачивание файла с данными).
3. Производится разбор данных, данные обновляются в системе с проверкой на актуальность.
4. Можно сделать информирование ответственных, например, путем рассылки по почте статуса выполнения задачи.

💬 Проверка какого условия чаще всего ставится в обработчиках объектов, чтобы при автоматических обменах и загрузках не выполнялись разные стандартные действия с объектами конфигурации, которые не надо выполнять при загрузках данных (например, проверка на заполнение реквизитов или какие-то пересчеты) ?
🟢 ОбменДанными.Загрузка = Истина

💬 Как начать транзакцию в режиме управляемых транзакционных блокировок?
🟢 У метода системы НачатьТранзакцию() есть параметр, с помощью которого можно указать режим управления:
НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
Однако вопрос с подвохом, для полного ответа надо также проговорить следующее:
Параметр «действует» только в том случае, если в свойстве конфигурации Режим управления блокировкой данных выбрано значение Автоматический и управляемый. Если для конфигурации установлен режим Автоматический, то все транзакции будут исполняться в автоматическом режиме; если Управляемый, то в управляемом режиме.

💬 В каких случаях не рекомендуется использовать параметры сеанса для хранения значений?
🟢 1) Для хранения значений, используемых исключительно в клиентской логике. Поскольку в клиент-серверном варианте параметры сеанса хранятся на сервере, то любое их считывание или изменение в процессе работы на клиенте потребует дополнительного серверного вызова и увеличит объем передаваемых данных с клиента на сервер и обратно. В таких случаях следует использовать глобальные переменные модуля управляемого приложения.
2) Также не рекомендуется использовать параметры сеанса для кеширования вычисленных значений, которые многократно используются в серверной бизнес-логике. В таких случаях следует определять функцию в серверном общем модуле с повторным использованием возвращаемых значений.

💬 Каким образом можно проиндексировать колонки ТаблицыЗначений?
🟢 ТЗ.Индексы.Добавить("");

💬 Каким образом можно удалить индекс ТаблицыЗначений?
🟢 Нет возможности удалить индекс ТЗ

💬 В соответствии со стандартами разработки как должен называться общий модуль с проставленной галочкой "Привилегированный"?
🟢 ОбщийМодульПолныеПрава

💬 В СКД есть поле "Роль", для чего оно используется?
🟢 Это поле не имеет ничего общего с правами доступа, как могло бы показаться. Роль поля СКД указывает, что из себя представляет данное поле. Каждая роль поля может содержать свое свойство. Например, свойство «Период» имеет числовое значение и содержит номер периода, если поле период. Если значение свойство «Период» равно 0 (ноль), то это означает, что данное поле периодом не является. Или свойство «Измерение» – содержит признак того, что поле является измерением. Если поле является измерением, то эта информация используется при расчете итогов по полям остатка.

💬 Что такое константа и чем она отличается от регистра сведений и справочника?
🟢 1) Простота использования.
Константы позволяют легко хранить одно значение для всей системы, не требуя сложной структуры данных.
2) Минимальная нагрузка.
Константы потребляют меньше ресурсов системы, чем работа со Справочниками или Регистрами сведений. Для получения значения Константы не требуется выполнение сложных запросов, что повышает производительность.
3) Глобальная доступность.
Значения Констант доступны из любого модуля, что делает их удобными для хранения глобальных параметров системы.
Итог: Константы обеспечивают легковесный и эффективный способ хранения и доступа к глобальным параметрам в системе.

💬 Сколько типов хранится в перечне типов объекта ОписаниеТипов?
🟢 Важной особенностью объекта ОписаниеТипов является работа с типом Неопределено. Если в объекте ОписаниеТипов задано более одного типа, то считается, что кроме значений заданных типов, может храниться и значение типа Неопределено. Это необходимо, потому что если, например, какой либо реквизит имеет составной тип (допускает хранение более одного типа), то значением по умолчанию для данного реквизита будет значение Неопределено. Если допускается хранение одного типа, то значением по умолчанию будет являться значение по умолчанию этого типа. Таким образом, тип Неопределено всегда неявно присутствует в перечне типов объекта ОписаниеТипов если в нем задано более одного типа.

💬 Что вы обычно проверяете, если сложный запрос выполняется медленно, а надо ускорить?
🟢 Варианты:
  • Проверяю нет ли вложенных запросов, заменяю их объединением или через временные таблицы.
  • Проверяю правильно ли используются виртуальные таблицы регистров и правильно ли накладываются фильтры в их параметрах.
  • Убираю все лишние поля в выборке и вообще все лишнее, что не требуется от запроса.
  • Смотрю, чтобы не получались данные через точку без необходимости.
  • Во временных таблицах добавляю недостающие индексы, для колонок, которые учавствуют в фильтрах и сортировках.
  • Для объективного понимания скорости выполнения запроса использую замер производительности.
  • В сложных случаях смотрю на План выполнения запроса, чтобы понять , что идет не так на уровне СУБД.
Вышеприведённые вопросы не являются общепринятыми и типовыми, скорее наоборот. Они выбраны стохастически из различных обсластей 1С и подойдут для быстрого собеседования. С помощью них Вы сможете за максимально короткий промежуток времени определить уровень знаний находящегося перед Вами программиста 1С. Имейте ввиду, что технический специалист не должен знать точное определение терминов. Вполне достаточно, если он будет понимать смысл вопросов и отвечать на них «своими словами». Часто, на практике встречаются программисты, которым тяжело устно объяснять процессы, термины, конструкции с которыми они работают. Однако это не делает их «плохими» программистами. Чтобы окончательно выяснить подходит Вам специалист или нет, дайте ему практическую задачу по Вашей конфигурации. Пусть исправит ошибку в документе или напишет небольшой отчёт.

Для углубленной проверки знаний и навыков программиста 1С рекомендуется использовать другой подход. Он более долгий и позволит максимально точно понять квалификацию специалиста. Описание о нем – ниже:
//by telegram
Самые частые задачи, которые можно встретить на технической части собеседования, вот их упрощенная классификация.

1. Теория. В общем-то вам могут начать вопросы связанные с теорией учета или со спецификой функционирования 1С, самые частые вопросы будут у нас здесь, но универсальный совет всем, кто ищет работу, хотя бы мельком пролистать вопросы на 1С профессионал по платформе и рекомендации по разработке на 1С, там содержатся ответы на большую часть вопросов. Хорошая новостьэто то, что те кто вас собеседует сами забыли половину оттуда. Бесплатно пройти учебные тесты можно по этой ссылке edu.1c.ru/dist-training.

2. Задачи на разработку не привязанные к языку программирования. Очень часто компании одрядчики ищут соискателей вообще без опыта работы на 1С, чтобы хоть как-то определить навык потенциального кандидата, они могут попросить реализовать алгоритм на любом массовом языке программирования (Java. Python, C#, PHP), но можно и на 1С.

3. Задачи похожие на задачу по оперативному учёту из 1С Специалист. Практически золотой стандарт и самое частое тестовое задания для программиста 1С, особенно в компаниях франчайзи это задание по оперативному учёту из экзамена 1С специалист по платформе. Оно хорошо тем, что требует знания основных механик разработки 1С и позволяет быстро оценить уровень кандидата. Пример такой задачи и её решения, можно посмотреть в этом видео (хотя оно немного и устаревшее): www.youtube.com/watch?v=5dMQb6WEOus....

4. Этюды и хитроумные костыли. Иногда программисты любят повыпендриваться и решить какую-нибудь задачку нестандартным путём, такие задачи иногда попадают на собеседованиях, а это значит, что хорошая идея с ними ознакомиться. Если Вам мало тех что есть здесь, то еще больше их можно найти (как и примеры решений) по ссылке kb.mista.ru.

5. Вот код оптимизируй его. Вам просто дают кусок кода и просят исправить неоптимальные вещи, достаточно популярный тип заданий сейчас.


1. Теория.

Бухучет.К сожалению 1Сников часто собеседуют бухгалтера, поэтому ответы на эти вопросы тоже лучше знать, хотя последнее время их спрашивают всё реже и реже и надеюсь подобная ужасная практика скоро совсем уйдет:
1. Какой счёт в плане счетов отвечает за: основные средства, материалы, взаиморасчеты, товары, выпуск, кассу, расч счет
2. Что такое забалансовый счет, активные и пассивные счета, Дебет, Кредит, Сальдо, Субконто
3. Что такое амортизация, доход, валовая и чистая прибыль, основные и оборотные средства
4. Что такое курсовая разница, налоговая разница
5. Что такое юрлицо, котнрагент, учетная политика
6. Принцип расчета НДС, налога на прибыль

Вопросы по механизмам платформы:
1. Как ставить условия в запросах, виртуальные таблицы
2. Временные таблицы в запросах и ндексы, виды связей таблиц
3. Что такое транзации, есть ли в 1С вложенные транзакции
4. Что такое блокировки и как они устроены
5. Что такое контекст формы, какие бывают команды препроцессора
6. Что такое кэш в 1С
7. Что такое NULL, неопределено, пустая ссылка, битая ссылка и чем они отличаются
8. Рассказать про хранилище и работу с ним
9. Можно ли получать реквизит через точку, как получить необходимые данные на клиенте
10. Чем отличается справочник от регистра сведений
11. Как очистить регистр сведений
12. ДанныеФормыВЗначение, ЗначениеВДанныеформы
13. Как в запросе сделать проверку типа данных
14. Какие основные недостатки поиска НайтиПоНаименованию
15. Что означает закрыть регистр закопления, почему не должно возникать ситуации, когда регистр накопления "незакрываем"
16. На что влияет порядок следования измерений в регистре сведений, что означают свойства "Ведущее", "Основной отбор"
17. Что такое БСП, БСО, для чего они нужны
18. Расширения, зачем нужны и как используются, какие еще есть механизмы расширения функционала без снятия с поддержки
19. Чем структура отличается от соответствия?
20. Как устроен и для чего нужен механизм подписок на события?

Вопросы на знание функционала 1С:
1. Что такое ордерный склад
2. Что такое инвентаризация
3. Как в 1С устроен расчет себестоимости, закрытие месяца
4. что такое RLS и для чего это нужно
5. Что такое движения документа? Оперативное и неоперативное проведение?
6. Какие виды торгового оборудования знаете
7. Как в 1С устроен механизм скидок, как между собой взаимодействуют скидки
8. Что такое СКД, зачем применяется
9. Чем отличаются ПередЗаписью и ПриЗаписи
10. Какие бывают свойства общих модулей, для чего они?
11. как добавить в 1С новый реквизит без доработки, допрекизиты и сведения
12. Что такое функциональные опции
13. Чем модуль объекта отличается от модуля менеджера

2. Задачи на разработку не привязанные к языку программирования.

1. Поменяйте местами содержание 2-х переменных, не используя 3-ю. например X = 10 Y = 17
После работы алгоритма X = 17 Y = 10
2. Напишите функцию, которая определяет факт пересечения 2-х интервалов, наприсер (-2; 3) и [3:5]
3. Напишите функцию, которая определяет явяется ли год високосным
4. Отсортируйте массив чисел по люому известному вам алгоритму
5. Даны 2 числа формата . . . . (например 8.1.4.2 и 8.2.3.1), которые символизируют версию программы. Написать функцию, которая определяет более свежую версию
6. Есть 2 массива Y[y] и Z[z] (y и z – количества элементов соответствующих массивов)
Оба массива упорядочены по убыванию. Нужно написать алгоритм, который в 1 цикл, длинной (y+z), пройдет по этим массивам и выдаст значения обоих массивов в порядке возрастания.
7. Необходимо написать функцию, которая на вход получает двумерный массив, описывающий игровое поле в игре «Морской бой». Функция должна вернуть количество кораблей на поле, при условии что корабли могут быть расположены вертикально и горизонтально и быть произвольной длинны.

3. Задачи похожие на задачу по оперативному учёту из 1С Специалист.

1) В компании используется оборудование, имеющее ограничения к эксплуатации. Для каждого устройства устанавливается срок годности и срок использования. Срок годности считается с момента приобретения оборудования и указывается в документе поступления, а срок эксплуатации с момента его ввода в эксплуатацию и указывается непосредственно для оборудования и не меняется. Поступление оборудования отражается документом «Приходная накладная». Через некоторое время оборудование вводится в эксплуатацию документом «Ввод в эксплуатацию».
При передаче оборудования в эксплуатацию в первую очередь передастся оборудование, у которого минимальный срок годности. В документе «Ввод в эксплуатацию» указывается перечень и количество передаваемого оборудования. При проведении должна происходить проверка на наличие оборудования и его срок годности. В том случае, если срок годности истек или оборудования недостаточно, документ не проводится и выдается соответствующее сообщение.
Раз в месяц формируется регламентный документ «Выбытие оборудования», который при проведении проверяет эксплуатируемое оборудование и, если оно негодно, то списывает его. При проверке определяется, вышел ли срок эксплуатации устройства с момента его ввода в эксплуатацию. Если срок эксплуатации истек или истек срок годности, то оборудование должно быть списано. Кроме того, этот же документ должен списывать еще не введенное в эксплуатацию оборудование, но срок годности, которого уже истек.
Учет оборудования в разрезе складов не ведется. Себестоимость оборудования рассчитывается как средняя.
Необходимо создать отчет о состоянии эксплуатируемого оборудования на выбранную дату.
Состояние оборудования в эксплуатации на 31.05.2021

 Оборудование       Кол-во    Сумма       Ост   ср. г.    Ост    ср. эксп.  
 Кинокамера             3              3000           60                  20
 Портсигар               2              400             500                520

2) Существует справочник сотрудников с указанием даты рождения сотрудника (тип "дата"). Необходимо написать отчет (используя только один запрос без обработки результата запроса в модуле), чтобы получить за указанный период таблицу распределения сотрудников по возрасту следующего вида:


3) Необходимо реализовать базу данных учета ТМЦ. База данных состоит из объектов метаданных:


Помимо указанных разработчик вправе добавлять иные объекты метаданных, необходимые для эффективного решения задачи.
Документ "ЗакреплениеЗаМОЛ". Документ должен позволять производить привязку Оргтехники к:
1. МОЛ (Материально ответственному лицу) – элемент справочника "Сотрудники";
2. *ОИ (Ответственное использование) – элемент справочника "Сотрудники";
3. Помещению.
*ОИ – лицо, фактически использующее оргтехнику. Таким образом одна единица оргтехники одновременно «привязана» к двум сотрудникам: к МОЛ и к ОИ.

Отчет "Сведения". Отчет должен быть построен без механизма СКД (макет, запрос, перебор). Отчет должен выводить информацию о текущем размещении техники в виде не группированной (плоской) таблицы:

В качестве входных параметров отчет может принимать значения-фильтры:
  • Оргтехника – позволяет определить, где сейчас находится конкретная единица техники и кто ее использует;
  • Помещение – позволяет определить какая техника размещена на этаже, в секции этажа, в конкретном кабинете.

Построение конфигурации рекомендуется делать в режиме "Обычных форм". Излишне усложнять интерфейс нет необходимости. Исходим из того, что базой данных будут пользоваться ИТшники.

4. Этюды и хитроумные костыли.

1. Как в обычном запросе добавить дополнительную колонку с номером строки? https://kb.mista.ru/article.php?id=703
2. Сделать функцию, которая вычисляет дату, отстоящую от начальной на заданное количество рабочих дней, с учетом производственного календаря, т.е. с учетом праздников и переносов выходных? https://kb.mista.ru/article.php?id=933
3. Как сделать срезпосдних по региструсведений не используя срез последних? https://kb.mista.ru/article.php?id=92
4. Как удалить ненужные значения из таблицы значений?
5. Как вывести в запросе все даты по порядку из заданного интервала?
6. Как правильно сравнить продажи по розничной сети за один и тот же день за разные года?
7. Как вывести остаток по определенному товару и складу на каждый день в интервале, даже если в этот день не было движений?

5. Вот код оптимизируй его.

1. Оптимизируйте запрос: Запрос является частью процедуры обработки проведения. Документ выполняет движения по регистру «Остатки номенклатуры». Режим управления блокировками – автоматический.

"ВЫБРАТЬ
|    ПродажаТоваровТовары.Номенклатура КАК Номенклатура,
|    СУММА(ПродажаТоваровТовары.Количество) КАК Количество,
|    СУММА(ПродажаТоваровТовары.Сумма) КАК Сумма
|ПОМЕСТИТЬ ТЧР
|ИЗ
|    Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары
|ГДЕ
|    ПродажаТоваровТовары.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
|    ПродажаТоваровТовары.Номенклатура
|
|ДЛЯ ИЗМЕНЕНИЯ
|    Документ.ПродажаТоваров
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    ТЧР.Номенклатура,
|    ТЧР.Количество,
|    ТЧР.Сумма,
| ЕСТЬNULL(РезервТоваровОстатки.КоличествоОстаток, 0) КАК Резерв,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Остаток,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток
|ИЗ
|    ТЧР КАК ТЧР
|    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(&Момент, ) КАК ОстаткиНоменклатурыОстатки
| ПО ТЧР.Номенклатура.Ссылка = ОстаткиНоменклатурыОстатки.Номенклатура.Ссылка
|    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервТоваров.Остатки(&Момент, ) КАК РезервТоваровОстатки
|    ПО ТЧР.Номенклатура.Ссылка = РезервТоваровОстатки.Номенклатура.Ссылка
|ГДЕ
|    ОстаткиНоменклатурыОстатки.Склад = &Склад
|    И РезервТоваровОстатки.Склад = &Склад"

2. Найдите ошибки в коде:

&НаКлиенте
Процедура НажатиеНаКнопку(Элемент)
   ТЗ = ОбработкаНажатияНаСервере();
   Объект.МетодОбъектаОбрабатывающийТаблицуЗначений(ТЗ);
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ОбработкаНажатияНаСервере()
   ТЗ = Новый ТаблицаЗначений;
   ЗаполнитьТЗПоОбъекту(Объект,ТЗ);
   Возврат ТЗ;
КонецПроцедуры

&НаСервере
Функция ЗаполнитьТЗПоОбъекту(Об,ТЗ)
   Отказ = ОбщийСерверныйМодуль.ЗаполнитьТЗ(Об,ТЗ);
   Если Не Отказ Тогда
       СообщитьНаКлиентеОбУспешномЗаполнении();
   КонецЕсли;
КонецФункции

&НаКлиентеСКонтекстом
Процедура СообщитьНаКлиентеОбУспешномЗаполнении()
   Сообщить(«Таблица заполнена успешно»);
КонецПроцедуры

3. Необходимо оптимизировать запрос:

"ВЫБРАТЬ
|   ПартииАктивовОстатки.Актив КАК Актив,
|   ПартииАктивовОстатки.Партия КАК Партия,
|   ПартииАктивовОстатки.СуммаОстаток КАК СуммаОстаток
|ИЗ
|   РегистрНакопления.ПартииАктивов.Остатки(&Период,) КАК ПартииАктивовОстатки
|ГДЕ
|   ПартииАктивовОстатки.Актив = & Актив
|ИТОГИ
|   СУММА(СуммаОстаток)
|ПО
|   ОБЩИЕ,
|   Актив";

6. Написать небольшую обработку под нужды клиента.

1. Создать обработку для выгрузки картинок номенклатуры в каталог на диске.
Описание обработки:
Фильтр по группе номенклатуры (расположен на форме)
Каталог выгрузки (указан на форме)
Выгрузка осуществляется только по тем номенклатурам, которые есть на свободном остатке.
Для каждой номенклатуры должна быть создана отдельная папка в каталоге выгрузки (название папки должно соответствовать названию номенклатуры)

2. Написать внешнюю обработку.
Обработка должна формировать Csv Файл со следующими колонками "Articul, Name, Kol, Price, CompanyName". Данные должны браться по принципу все закупки по всем юрлицам за текущий день (с полуночи по текущую дату). Обработка должна автоматически запускаться каждый час и перезаписывать итоговый файл
* а. Выгружать файл на яндекс диск.
б. Присылать файл на собственную почту с заголовком "Я все выложил"

3. Написать отчет на СКД по прибыли.
Нужен внешний отчет, написанный на СКД, который будет показывать прибыль от продаж за определенный период по определенной организации. В отчете должны быть следующие колонки:
"Организация, товар, цена, цена покупки, Количество, сумма продаж, прибыль".
Группировка: Организация, товар
Продажи определяются по оборотам регистра "ВыручкаИСебестоимостьПродаж", себестоимость определяется как максимальная цена товара за всю историю по этому юрлицу, Прибыль рассчитывается по формуле "(Цена - цена покупки)*Количество"
*Учитывать только те продажи, которые были полностью оплачены

4. Написать печатную форму.
Написать внешнюю печатную форму к документу "РеализацияТоваровУслуг". В заголоке необходимы номер и тип документа, в теле документа необходимо перечислить Купленные товары, цены, суммы. Цены необходимо привести к формату *9.99. Т.е если товар стоит 640 рублей, то цена должна быть написана 639.99 рублей.
* Под списком товаров необходимо написать общую сумму прописью, например "Две тысячи пятьсот рублей, 27 копеек".

5. Написать внешнюю обработку заполняющая документ ПриобретениеТоваровУслуг.
Обработка должна иметь 3 реквизита:
"Дата" тип Дата
"Организация" тип СправочникСсылка.Организации
"Склад" тип СправочникСсылка.Склады
Пользователь должен быть способен запустить обработку, указать юрлицо и дату и. В документе достаточно заполнить реквизиты "Дата", "Организация", "Склад" и Табличную часть "Товары". Реквизиты "Дата","Организация", "Склад" заполняются из реквизитов обработки, таблицу товаров надо заполнять по принципу "Все товары проданные за эту дату (с начала до конца дня) по этому юрлицу и этому складу ". В табличной части нужно заполнить реквизиты: "Номенклатура, КоличествоУпаковок, Количество, Цена, Сумма, Склад". Документ достаточно записать.
*Если Документ по такому юрлицу и за такую дату уже создан, то нужно не создать новый а только его перезаполнить. После всей процедуры, нужно открыть пользователю получившийся документ, либо написать почему такой документ невозможно создать

6. Написать внешнюю обработку, которая проверяет в 21.00 что в базе ни по одному юрлицу, ни по одному складу нет отрицательных остатков по товарам.
Если таковых нет то отправлять письмо себе на почту без текста с заголовком "Все в порядке", а если такие есть, то с заголовком "Все не в порядке" с текстом письма где будут перечислены проблемные товары/склады/юрлица. Email отправитель и Email получатель можете указать прямо в коде
*То же самое, но через телеграмм или любой другой мессенджер
//Гибкие навыки
Работодатели смотрят не только на умение писать код, но и на soft skills. Лучшими программистами 1C становятся те, кто хорошо работает в команде, умеет общаться с коллегами, заказчиками и руководством. Важно не только сидеть разрабатывать очередной продукт, но и красиво презентовать его, а также отстоять свое мнение, когда это нужно.

Вот список навыков, которые нужно развивать, чтобы быть востребованным:
1) Быть стрессоустойчивым. Сохраняйте спокойствие, даже если что-то надо повторить или исправить 10 раз. Не ругайтесь с коллегами и давайте им четкую обратную связь.
2) Уметь вести переговоры. Да, в современных компаниях программистам нужно не только молча писать код, но и уметь общаться с заказчиками. Разработчик может участвовать на встрече с клиентами или отстаивать какую-то технологию перед руководством.
3) Управлять временем. Куда без тайм-менеджмента. У разработчиков много задач и чтобы работать эффективнее, придется следить за временем. А еще это помогает от выгорания и прокрастинации.
4) Развивать эмпатию. Важно уметь ставить себя на место другого человека. Это может быть как коллега, так и конечный пользователь продукта.
5) Работать в команде. Пожалуй, это ключевой навык. Сейчас, скорость выпуска нового софта зависит от умения работать быстро и слаженно. Поэтому меньше самовыражения и больше регламента. Нужно работать на общую цель.

Такие вот времена. Специалисты с развитыми человеческими качествами получают конкурентное преимущество перед другими при равных hard skills.
// Вопросы с подвохом на собеседованиях
"Опишите случай, когда вы не согласились с командой или руководителем по техническому решению. Как вы справились с этой ситуацией и каков был результат?"

💬Простым языком: Работодателю важно понимать, что с вы умеете работать в команде, и с вами можно договориться.
🟢Зеленые флаги в ответе: акцент на важность сотрудничества, активного слушания и компромисса + уважение к мнениям других.
Подчеркивайте, как вы уважаете мнение лида и коллег, считаетесь с менеджментом, приносите взвешенные аргументы, приглашаете людей к дискуссии без давления и умеете признать свою неправоту (если реально оказались неправы).
🔴Красные флаги в ответе: высокомерие, пренебрежение к мнениям других или нежелание идти на компромисс.

Даже если вы были в той ситуации сто раз правы, а поезд команды был в огне, не говорите, что вы спорили до конца и заставили всех с вами согласиться (а проджекта довели до суецыда).

"Приведите пример рабочей среды, в которой вы преуспели, и что сделало её подходящей для вас?"

💬Простым языком: Работодатель хочет понять, подойдет ли вам его вайб. Или нет, и вы уволитесь через месяц (или станете проблемой).
🟢Зеленые флаги в ответе: ценности, которые совпадают с ценностями компании (сотрудничество, инновации или непрерывное обучение - смотря что у компании в vision mission values написано).
🔴Красные флаги: предпочтение изолированной работы или негибкой среды - все, что идет вразрез с командной культурой (или культурой, принятой в компании).

"Расскажите о последнем случае, когда вы помогли менее опытному коллеге решить техническую проблему. Что вы сделали?"

💬Простым языком: Работодатель хочет знать, умеете ли вы уживаться с теми, кто знает меньше вас, или будете их сразу нахуй посылать, стоит им посмотреть в вашу сторону.
🟢Зеленые флаги в ответе: терпение, наставничество и готовность делиться знаниями.
🔴Красные флаги в ответе: раздражение по поводу недостатка опыта у других или нежелание поддерживать коллег.

"Вы внедряете важную фичу, но коллега не выполнил свою часть в срок - а ваша работа связана, и вы не можете закончить свою часть, пока он не выполнит свою. Как вы подойдете к решению этой ситуации?"

💬Простым языком: Работодатель хочет узнать, умеете ли вы разговаривать, в том числе с коллегами. И не станете ли вы причиной раннего инфаркта тимлида, потому что о том, что у вас проблемы и вы затягиваете дедлайн, он узнает после дедлайна.
🟢Зеленые флаги в ответе: коммуникация, решение проблем и согласование решений внутри команды без обвинений.
Формула ответа простая:
- Договориться с коллегой об апдейтах
- Спросить апдейт заранее
- Предложить коллеге помощь
- Поставить в известность лида
- Предложить лиду помощь
🔴Красные флаги в ответе: агрессия (включая пассивную), избегание конфликта и/или ответственности за общую задачу ("моя хата с краю", "не моя проблема").

"Если бы вы пропустили критический баг и он ушел на прод не исправленным, как бы вы справились с этой ситуацией?"

💬Простым языком: Работодатель хочет узнать, как у вас с ответственностью за свои действия - и насколько вы склонны к избеганию и/или панике.
🟢 Зеленые флаги в ответе: взять ответственность, прокоммуницировать проблему, предложить решения. Сосредоточиться на предотвращении будущих проблем.
Необходимо:
- Убедиться в том что ошибка реально имела место быть (быстро).
- Поставить в известность ответственное лицо и/или тимлида (еще быстрее).
- Поставить в известность менеджера проекта с пометкой что тимлид в курсе и проблема уже решается.
- Вызваться добровольцем обсудить решение проблемы и имплементировать его.
🔴Красные флаги в ответе: перекидывать вину, уходить в глухую несознанку/игнор или паниковать под давлением.

"Представьте, что ваша компания внедряет новый инструмент или методологию, с которой вы не согласны. Как вы выразите свои опасения и адаптируетесь, если ваше мнение будет отвергнуто?"

💬Простым языком: Работодатель хочет знать, насколько вы конфликты и склонны агрессировать, если дела идут не по-вашему (и имеет в виду ситуацию, в которой инструмент и/или методология не опасное говно, а просто вам не нравится).
🟢 Зеленые флаги в ответе: конструктивный подход, гибкость и ориентацию на цели команды.
Ключевые слова тут: убедиться, что это лучшее решение для компании/команды, изучить, если есть консерны - написать лиду (но НЕ поднимать вопрос на дейли при всех), сообщить о своих консернах и ПРЕДЛОЖИТЬ вынести вопрос на обсуждение на дейли, если лид считает это уместным.
🔴Красные флаги в ответе: агрессия, отказ применять/переходить на инструмент/метод, подрыв работы с инструментом/методом.

"Вы обнаружили, что коллега идет на упрощение процессов (срезает углы там, где этого делать не надо, что влияет на безопасность/качество/стандарты и т.д.), чтобы уложиться в сроки. Как вы поступите?"

💬Простым языком: Работодатель хочет знать, будете ли вы поощрять рискованные практики, которые будут стоить ему денег и/или клиентов.
🟢Зеленые флаги в ответе: подойти к вопросу профессионально и без агрессии, предложить альтернативы или правильно поднять вопрос выше (если решить его на месте невозможно).
Тут алгоритм такой: поговорить с человеком - мягко указать на недопустимость - спросить, есть ли у него трудности и помочь советом по упрощению задачи без рисков - попросить так больше не делать - в случае несогласия -> сообщить лиду; в случае повторения -> напомнить о нарушенной договоренности (так больше не делать) и сообщить лиду.
🔴Красные флаги в ответе: игнорировать проблему (моя хата с краю) или пойти на конфликт, не стремясь к пониманию (мы действуем исходя из того, что коллега косячит, потому что у него есть какие-то сложности, а не потому что нарывается на драку на офисной кухне).

"Какой последний критический фидбек вы получили и как вы на него отреагировали?"

💬Простым языком: Работодатель хочет знать сразу две вещи:
а. Получаете ли вы фидбек регулярно, или вас еще ревьюить и ревьюить.
б. Умеете ли вы с фидбеком работать.
🟢Зеленые флаги в ответе: конкретные примеры фидбека и фокус на улучшении по его итогам. Это значит, что фидбек свежий, и вам действительно интересно, помогает ли ваш код компании.
🔴Красные флаги в ответе: с трудом вспоминать обратную связь или выдавать сильную защитную реакцию на критику ("не твой вот и бесишься", "они мне просто завидуют", етс).

"Если бы вы могли изменить одну вещь в том, как работают большинство инженерных команд, что бы это было и почему?"

💬Простым языком: Работодатель хочет понять, как у вас с пониманием высокоуровневых процессов, организацией команды и времени - а еще насколько вы их ненавидите.
🟢Зеленые флаги в ответе: вдумчивые идеи по улучшению работы команды, процессов или инноваций. Основная идея - "хорошо, но можно еще лучше".
🔴Красные флаги в ответе: негативные, жесткие или излишне критичные мнения ("они все говно, я один в белом пальто стою красивый").
2
комментарии
Сергей
25 сен 2019
Это что за ответ ?
13) Как написать условие в запросе вида "Или указанная номенклатура или любая, если не указана"?

Номенклатура = &Номенклатура
ИЛИ &Номенклатура = Значение(Справочник. Номенклатура. ПустаяСсылка)
ИЛИ ТАКОЙ ПРЕОБРАЗОВАННЫЙ ВАРИАНТ:

Если ЗначениеЗаполнено(Номенклатура) Тогда
Запрос.Текст = Запрос.Текст + " ГДЕ Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
КонецЕсли;

все гораздо проще:
ГДЕ
ВЫБОР
КОГДА &Номенклатура Значение(Справочник. Номенклатура. ПустаяСсылка)
И &Номенклатура НеОпределено
ТОГДА Номенклатура = &Номенклатура
ИНАЧЕ ИСТИНА
КОНЕЦ
Вопросы кандидату на должность "Программист 1С" на собеседовании
05 фев 2019
28.11.2015
____________________
Copyright©, «Программист 1С в г.Минске», 28.11.2015 (upd. 01.06.2021)
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому