Введение и задача 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 Обсуждение задачи и программирования. Благодарности зрителям и участникам. Завершение стрима и планы на будущее.