Старт в 1С: Задачи и Практика. Уровень Junior (Переработанная версия)

30.09.24

Разработка - Механизмы платформы 1С

Привет, начинающие разработчики 1С! Этот сборник кейсов — ваш быстрый старт в мире 1С. В нем собраны реальные задачи, которые помогут вам освоить основные навыки работы с платформой. Решайте задачи, задавайте вопросы на форуме и развивайте ключевые умения. Удачи в обучении и успешного пути в 1С!

Задача 1: Учёт остатков оборудования с использованием регистра накопления

Описание задачи:
В компании необходимо вести учёт остатков оборудования, которое используется сотрудниками. Требуется создать справочник «Оборудование», документ «ПоступлениеОборудования» и регистр накопления для учёта количества оборудования на складе.

Шаги для выполнения:

  1. Создание справочника:
    Создайте справочник «Оборудование» с полями:

    • Наименование (строка)
    • Тип (строка)
    • Состояние (перечисление: рабочее, нерабочее)
  2. Создание регистра накопления:
    Создайте регистр накопления «ОстаткиОборудования» с измерением «Оборудование» (ссылка на справочник «Оборудование») и ресурсом «Количество» (число).

  3. Создание документа:
    Создайте документ «ПоступлениеОборудования» с табличной частью, содержащей поля:

    • Оборудование (ссылка на справочник «Оборудование»)
    • Количество (число)
  4. Реализация логики:
    Настройте проведение документа таким образом, чтобы при его проведении данные записывались в регистр накопления «ОстаткиОборудования». Количество оборудования должно увеличиваться при поступлении и уменьшаться при списании. Также добавьте логику для смены состояния оборудования: если оборудование поступает и ранее имело статус «нерабочее», то оно должно стать «рабочим».

  5. Проверка работы:
    Создайте несколько тестовых записей о поступлении и списании оборудования, а затем проверьте корректность обновления данных в регистре и смены состояния оборудования.

Пример кода для проведения документа:

Для каждого Строка Из ЭтотОбъект.Товары Цикл
    Движение = РегистрыНакопления.ОстаткиОборудования.СоздатьДвижение();
    Движение.Оборудование = Строка.Оборудование;
    Движение.Количество = Строка.Количество;
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Записать();

    Если Строка.Оборудование.Состояние = Перечисления.СостоянияОборудования.Нерабочее Тогда
        Строка.Оборудование.Состояние = Перечисления.СостоянияОборудования.Рабочее;
    КонецЕсли;
КонецЦикла;

Подсказка: Реализуйте механизм контроля остатков: при списании оборудования не должно быть отрицательного остатка на складе. Если количество на складе меньше необходимого для списания, выведите сообщение об ошибке.


Задача 2: Отчёт по сотрудникам и оборудованию с регистрами сведений

Описание задачи:
Необходимо создать отчёт, который будет отображать информацию о сотрудниках и выданном им оборудовании. Также нужно учесть тип оборудования и его состояние.

Шаги для выполнения:

  1. Создание справочника:
    Создайте справочник «Сотрудники» с полями:

    • ФИО (строка)
    • Должность (строка)
  2. Создание регистра сведений:
    Создайте регистр сведений «ВыданноеОборудование» с измерениями:

    • Сотрудник (ссылка на справочник «Сотрудники»)
    • Оборудование (ссылка на справочник «Оборудование»)
  3. Создание документа:
    Создайте документ «ВыдачаОборудования» с табличной частью, содержащей поля:

    • Сотрудник (ссылка на справочник «Сотрудники»)
    • Оборудование (ссылка на справочник «Оборудование»)
  4. Реализация логики:
    Настройте проведение документа так, чтобы в регистр сведений «ВыданноеОборудование» записывались данные о том, какому сотруднику и какое оборудование выдано.

  5. Создание отчёта:
    Настройте отчёт «ОборудованиеПоСотрудникам», который будет выводить список сотрудников и выданное им оборудование. Отчёт должен учитывать состояние оборудования и предлагать фильтрацию по состоянию.

  6. Проверка работы:
    Создайте несколько тестовых записей о выдаче оборудования и проверьте, корректно ли отображается информация в отчёте.

Пример кода для записи в регистр сведений:

Для каждого Строка Из ЭтотОбъект.Товары Цикл
    ЗаписьРегистр = РегистрыСведений.ВыданноеОборудование.СоздатьНаборЗаписей();
    ЗаписьРегистр.Добавить();
    ЗаписьРегистр.Сотрудник = Строка.Сотрудник;
    ЗаписьРегистр.Оборудование = Строка.Оборудование;
    ЗаписьРегистр.Записать();
КонецЦикла;

Подсказка: Реализуйте фильтр в отчёте, который позволит выводить только «рабочее» оборудование, и добавьте возможность вывода информации о дате выдачи оборудования сотруднику.


Задача 3: Автоматизация расчёта налогов с учётом различных ставок

Описание задачи:
В компании требуется автоматизировать расчёт налогов для сотрудников в зависимости от их оклада. Необходимо создать документ «НачислениеЗарплаты» и справочник «Сотрудники» с полем «Оклад». При проведении документа налог должен рассчитываться автоматически, с возможностью указания различных ставок для разных сотрудников.

Шаги для выполнения:

  1. Создание справочника:
    Создайте справочник «Сотрудники» с полями:

    • ФИО (строка)
    • Оклад (число)
    • НалоговаяСтавка (число)
  2. Создание документа:
    Создайте документ «НачислениеЗарплаты» с полями:

    • Сотрудник (ссылка на справочник «Сотрудники»)
    • Начислено (число)
    • Налог (число)
  3. Реализация логики:
    Настройте проведение документа так, чтобы налог рассчитывался автоматически в зависимости от налоговой ставки, указанной для сотрудника. Например, ставка может быть 13% или 30% для разных сотрудников.

  4. Проверка работы:
    Проверьте, правильно ли рассчитывается налог для каждого сотрудника на тестовых данных с разными ставками налогообложения.

Пример кода:

Налог = Оклад * (Сотрудник.НалоговаяСтавка / 100);

Подсказка: Добавьте возможность расчёта налогов с учётом налоговых вычетов, если это применимо для сотрудников.


Задача 4: Расчёт бонусов с учётом скидок и возвратов

Описание задачи:
Необходимо разработать систему для расчёта бонусов сотрудникам в зависимости от их продаж. Нужно создать документ «Продажи» и справочник «Сотрудники» с полем «Бонус», который будет рассчитываться на основе выручки сотрудника, с учётом скидок и возвратов.

Шаги для выполнения:

  1. Создание справочника:
    Создайте справочник «Сотрудники» с полем «Бонус» (число).

  2. Создание документа:
    Создайте документ «Продажи» с полями:

    • Сотрудник (ссылка на справочник «Сотрудники»)
    • СуммаПродаж (число)
    • Скидка (число)
    • Возврат (число)
  3. Реализация логики:
    Настройте проведение документа таким образом, чтобы бонус сотрудника рассчитывался как 5% от суммы продаж с учётом скидок и возвратов. Например, если был возврат товара, бонус должен уменьшаться на соответствующую сумму.

  4. Проверка работы:
    Проверьте, корректно ли рассчитываются бонусы для каждого сотрудника, включая случаи с применением скидок и возвратов.

Пример кода:


Если (СуммаПродаж - Скидка - ВозвратТоваров) > 0 Тогда
            Бонус = (СуммаПродаж - Скидка - ВозвратТоваров) * 0.05;
        Иначе
            Бонус = 0;
        КонецЕсли;

Подсказка: Реализуйте отчёт «БонусыПоСотрудникам», который будет выводить информацию о начисленных бонусах за месяц.


Задача 5: Учёт отпусков сотрудников с переносом остатка

Описание задачи:
В компании необходимо вести учёт отпусков сотрудников, включая даты начала и окончания отпусков. Требуется создать справочник «Сотрудники» и документ «Отпуска», который будет учитывать период отпуска и количество оставшихся дней отпуска. Также нужно учесть возможность переноса неиспользованных дней на следующий период.

Шаги для выполнения:

  1. Создание справочника:
    Создайте справочник «Сотрудники» с полем «ОстатокОтпуска» (число).

  2. Создание регистра сведений:
    Создайте регистр сведений «ОтпускаСотрудников» с измерениями:

    • Сотрудник (ссылка на справочник «Сотрудники»)
    • ДатаНачала (дата)
    • ДатаОкончания (дата)
    • ОстатокОтпуска (число)
  3. Создание документа:
    Создайте документ «Отпуска» с полями:

    • Сотрудник (ссылка на справочник «Сотрудники»)
    • ДатаНачала (дата)
    • ДатаОкончания (дата)
    • ДнейОтпуска (число)
  4. Реализация логики:
    Настройте проведение документа так, чтобы остаток дней отпуска у сотрудника уменьшался на количество дней отпуска, указанных в документе, и чтобы остаток автоматически переносился на следующий год.

  5. Проверка работы:
    Проверьте корректность расчёта оставшихся дней отпуска, а также перенос остатка на следующий период.

Пример кода:

   ЭтотОбъект.Сотрудник.ОстатокОтпуска = Остаток - ДнейОтпуска;

Подсказка: Реализуйте проверку на наличие отрицательного остатка отпусков и добавьте возможность просмотра истории отпусков сотрудников.

 

Пути развития: Для дальнейшего развития рекомендую:

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

для начинающих обучение практика кейсы задачи уроки разработка программист реальные задачи

См. также

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    7505    bayselonarrend    20    

154

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    5963    dsdred    16    

80

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    17786    YA_418728146    26    

71

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    23783    SeiOkami    48    

135

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14774    YA_418728146    7    

166
Отзывы
4. MadRave 68 02.10.24 13:29 Сейчас в теме
Может я чего-то не понял, но в примерах кода специально допущены ошибки? Или это псевдокод (просто описываем логику без конкретной реализации) ?
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. rpgshnik 3795 30.09.24 20:58 Сейчас в теме
Я думаю это не "реальные задачи", больше похоже на тестовые задания при трудоустройстве.
bayselonarrend; Torin; +2 Ответить
3. Vudix 2 01.10.24 02:28 Сейчас в теме
(1)
Конечно, это ведь только примеры реальных задач для новичков.
2. cdb 26 30.09.24 23:36 Сейчас в теме
Задача № 5. В примере кода используется ключевое слово Возврат.
Система выдаст ошибку
4. MadRave 68 02.10.24 13:29 Сейчас в теме
Может я чего-то не понял, но в примерах кода специально допущены ошибки? Или это псевдокод (просто описываем логику без конкретной реализации) ?
5. Vudix 2 15.10.24 14:47 Сейчас в теме
(4) Нет, это я косячу и не могу никак сесть и нормально проверить все, на самом деле.
Поэтому если кому не лень - буду рад указаниям и после просмотра комментариев буду оперативно все исправлять. с:
Но, вообще - да. Это специальные ошибки....
Оставьте свое сообщение