Тестовое задание на вакансию «Программист 1С»
Тестовое задание
На вакансию «Программист 1С»
Официальный франчайзинговый центр 1С
Уважаемый соискатель!
Мы благодарим Вас за отклик на предложение о работе и приглашаем Вас пройти тестирование для участия в отборе претендентов на открытую вакансию «Программист 1С».
Условия проведения тестирования: выслать свое решение задач в любом текстовом файле (либо скрин-шот) до истечения 30 минут с момента получения задания. Данные задачи не является промышленными, это несколько вопросов из экзамена по платформе 1С Специалист. Решение нужно предоставить с помощью каркасной конфигурации, допускается использовать пустую конфигурацию 1С.
Задание 1
Найти все документы "споПриход", у которых не заполнен реквизит "ДокументОснование", и заполнить его ссылкой на документ "споУвольнительныйЛист" с номером 000000001.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| споПриход.Ссылка,
| споПриход.ДокументОснование
|ИЗ
| Документ.споПриход КАК споПриход";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Док = Выборка.Ссылка.ПолучитьОбъект();
Если Выборка.ДокументОснование.Пустая() Тогда
Док.ДокументОснование =
Документы.споУвольнительныйЛист.НайтиПоНомеру("000000001");
Док.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
КонецЦикла;
Задание 2
Требуется: Удалить записи из регистра накопления "споРасходПриход" по определенному филиалу (код "УК").
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| споРасходПриходОбороты.Филиал,
| споРасходПриходОбороты.Регистратор
|ИЗ
| РегистрНакопления.споРасходПриход.Обороты(, , Регистратор, ) КАК
| споРасходПриходОбороты
|ГДЕ
| споРасходПриходОбороты.Филиал = &Филиал";
Запрос.УстановитьПараметр("Филиал", Справочники.споФилиалы.НайтиПоКоду("УК"));
Выборка = Запрос.Выполнить().Выбрать();
РегНакопления = РегистрыНакопления.споРасходПриход;
Пока Выборка.Следующий() Цикл
НабЗаписей = РегНакопления.СоздатьНаборЗаписей();
НабЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НабЗаписей.Прочитать();
НабЗаписей.Удалить(); // Удаляем записи
НабЗаписей.Записать();
КонецЦикла;
Задание 3
(Написать свой код) Требуется создать и провести три документа разных типов (споПриход, споРасход, споСписание) на сервере с последующим возвратом их ссылок клиенту.
Общие требования:
- Для всех документов должны быть заполнены общие реквизиты:
- Филиал: предопределенный элемент справочника споФилиалы с кодом "МВ" и наименованием "Москва"
- Пользователь: элемент справочника Пользователи с именем "Петров" и кодом "01"
- Условия выполнения:
- Документы должны проводиться в рамках одной транзакции
- При ошибке проведения любого документа необходимо отменить проведение всех остальных
- Учесть, что запись документов может занимать значительное время
- Оптимизировать выполнение для минимизации времени работы
- Результат:
- Вернуть клиенту ссылки на все созданные документы после успешного проведения