ЗАНЯТИЕ 93. ИЗМЕНЕНИЕ СТАВКИ В ТЕЧЕНИЕ МЕСЯЦА (СПР). ПОДГОТОВКА К СПЕЦИАЛИСТУ ПО ПЛАТФОРМЕ 1С

YOUTUBE · 27.11.2025 05:57

Ключевые темы и таймкоды

Введение и задача

0:06
  • Приветствие и обсуждение жаркой погоды.
  • Начало задачи, упоминание стрима с Евгением Афанасьевым.
  • Задача сложная, требует подготовки к экзамену.

Подготовка к задаче

1:05
  • Евгений Афанасьев считает задачу одной из самых сложных.
  • Подготовка к экзамену включает изучение задачи.
  • Начало работы с базовой выгрузкой.

Реализация условий задачи

2:03
  • Использование метода отклонения и отсутствие совместительства.
  • Подразделение выступает в качестве графика работы.
  • Переименование полей в регистрах и формах.

Заполнение графика работы

3:12
  • Переименование графика работы в подразделение.
  • Оклад пропорционально отработанному времени.
  • Проблемы с конфигуратором и их решение.

Создание документа и заполнение данных

5:09
  • Создание документа и указание периода.
  • Пример с Евгением Афанасьевым и его суперспособностью.
  • Задача связана с изменением зарплаты в течение месяца.

Изменение зарплаты

7:26
  • Зарплата Евгения Афанасьева увеличивается несколько раз в месяц.
  • Важно учитывать изменения окладов в течение месяца.
  • История изменений окладов должна храниться в базе данных.

Расчет зарплаты

9:17
  • Расчет зарплаты должен проводиться на основе действующего оклада на рассчитываемую дату.
  • Разные ставки для разных периодов действия.
  • Реализация задачи с учетом этих изменений.

Обсуждение преемника Путина

11:38
  • Евгений Афанасьев назван преемником Путина.
  • Виктор Костю шутит о прыжке Афанасьева на Java.
  • Обсуждение перехода на другой язык программирования.

Подготовка данных для расчета зарплаты

12:23
  • Необходимость завершения текущего проекта перед переходом на новый язык.
  • Подготовка исходных данных для расчета зарплаты.
  • Превращение одной строки в несколько с разными периодами действия.

Создание временной таблицы

16:08
  • Создание временной таблицы для хранения данных.
  • Соединение таблицы с регистром сведений.
  • Исключение записей с периодами, превышающими дату окончания.

Извлечение нужных записей

19:55
  • Извлечение записей, соответствующих периоду регистрации на начало октября.
  • Использование метода получения среза последних по временной таблице.
  • Отбор записей с максимальной датой, соответствующей дате среза.

Создание таблицы с начислениями

22:05
  • Добавление оклада из регистра сведений.
  • Использование номера строки вместо сотрудника для предотвращения ошибок.
  • Отбор записей с периодом, меньшим или равным дате начала.

Вычисление максимальной даты

23:06
  • Определение максимальной даты изменения зарплаты.
  • Создание временной таблицы для хранения дат среза.
  • Внутреннее соединение для отбора записей по максимальной дате.

Получение оклада на начало периода

25:06
  • Получение значения оклада на дату начала.
  • Вытаскивание всех окладов в интервале между датами начала и окончания.
  • Проверка и исправление ошибок в запросе.

Получение изменений оклада

26:54
  • Вытаскивание информации из таблицы начислений с окладом.
  • Условие: период должен быть больше даты начала.
  • Объединение записей для получения всех изменений зарплаты.

Упорядочивание записей по периоду

31:06
  • Упорядочивание записей по периоду для корректной работы цикла.
  • Создание итогов по номеру строки для разбивки на интервалы.
  • Проверка возможности разбивки на интервалы и обработка ошибок.

Заполнение записи регистра

33:29
  • Заполнение записи регистра с использованием данных из запроса.
  • Алгоритм заполнения записей с учетом периода действия.
  • Переход к следующей строке для продолжения заполнения.

Изменение дат и полей

34:49
  • Изменение даты окончания на 34-е число.
  • Упрощение алгоритма: удаление ненужной даты начала.
  • Переименование полей: "период действия начала" и "период действия конец".

Проверка и корректировка данных

35:43
  • Автоматическое заполнение записей при заполнении значений свойств.
  • Корректировка дат интервала в соответствии с датой окончания.
  • Создание переменной "движение пред" для предыдущей строки.

Алгоритм корректировки движения

37:19
  • Проверка, если "движение пред" не равно "не определено".
  • Корректировка движения на период действия начала текущей записи минус секунда.
  • Добавление флажка для проверки корректности данных.

Ошибки и исправления

38:27
  • Обнаружение ошибки: дата окончания периода действия равна нулю.
  • Исправление ошибки: проверка даты окончания периода действия.
  • Создание реквизита для оклада и заполнение значений свойств.

Разбивка данных и виды расчета

40:20
  • Разбивка данных на два интервала.
  • Определение вида расчета: оклад.
  • Объединение с регистром для ставки оклада.

Проверка и корректировка алгоритма

42:01
  • Добавление таблицы для отбора по окладу.
  • Объединение таблиц для корректного расчета зарплаты.
  • Проверка правильности разбивки данных по номеру строки.

Финальная проверка и исправление

46:25
  • Исправление ошибки с неправильным подставлением зарплаты.
  • Удаление записи со шмакладом.
  • Проверка правильности выполнения разбивки данных.

Проблемы с начислением зарплаты

48:14
  • Бельдыев не получает зарплату, так как его ставка не определена.
  • Для решения проблемы нужно создать запрос, который выведет записи с нулевым окладом.
  • В таблице начислений с окладом нужно найти записи с нулевым окладом и вывести их.

Проверка и исправление ошибок

49:14
  • Создана контрольная таблица для ошибок.
  • Запросы выполняются последовательно, результаты сохраняются в таблице.
  • Если в таблице нет записей, значит, есть ошибки.

Проблемы с повторяющимися записями

51:18
  • В запросе могут быть повторяющиеся записи, которые нужно убрать.
  • Если ставка оклада не указана, система возвращает ошибку.
  • В случае ошибки, система не продолжает выполнение запроса.

Решение проблемы с Бельдыевым

52:05
  • Бельдыев не отображается в таблице из-за отсутствия информации о ставке.
  • Нужно добавить информацию о ставке в регистр сведений.
  • Если ставка указана, система корректно отображает данные.

Обсуждение методов решения

58:50
  • Вопрос о возможности использования больше равно в соединении.
  • Обсуждение необходимости среза для корректного расчета зарплаты.
  • Решение оставить текущий метод, так как он работает.

Вопросы и ответы

1:00:30
  • Обсуждение метода Юрия Зайцева для левого соединения.
  • Уточнение необходимости среза для корректного расчета зарплаты.
  • Подтверждение, что текущий метод работает и не требует изменений.

Обсуждение соединения таблиц

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

Проблемы с датой начала

1:04:40
  • Обсуждение использования условия "больше равно" для получения данных.
  • Проблемы с датой начала, которая может быть установлена на несколько лет раньше.
  • Решение продолжить обсуждение и перейти к следующему этапу.

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

1:06:07
  • Вытаскивание таблицы данных графика для получения нормы и факта часов.
  • Использование неявного левого соединения для получения данных.
  • Подготовка записей для расчета и выполнение конструктора запроса.

Алгоритм расчета

1:08:16
  • Простой алгоритм расчета, упор на подготовку исходных записей.
  • Получение выборки и подготовка массива видов расчета.
  • Выполнение цикла для каждого движения и расчет оклада.

Проверка и исправление ошибок

1:10:31
  • Проверка правильности расчета оклада и нормы часов.
  • Исправление ошибок и проверка результата расчета.
  • Обсуждение возможных проблем и их исправление.

Заключение и благодарности

1:13:43
  • Обсуждение задачи и программирования.
  • Благодарности зрителям и участникам.
  • Завершение стрима и планы на будущее.