Объединение записей в наборе записей регистра сведений СостояниеРаботниковОрганизаций для "1С Зарплата и Управление персоналом"

18.05.20

Разработка - Механизмы типовых конфигураций

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Процедура для вставки в модуль набора записей регистра сведений
.txt 2,79Kb
51
51 Скачать бесплатно

Работник кадровой службы (для получения корректной печатной формы документа) может разбить строку отпуска работника на 2-3 записи (с разными рабочими периодами).

Расчётчику такое разбиение мешает корректно рассчитать документ Начисление отпуска. Предлагается исправление кода, которое избавляет расчётчика от неудобств.

В модуле набора записей регистра сведений СостояниеРаботниковОрганизаций  размещаем процедуру

Процедура ПередЗаписью(Отказ, Замещение)
   
    // склеим однородные записи, идущие друг за другом
    СписокУдаляемых1 = новый Массив();
   
    Для ИндексЗаписи1 = 0 По Количество() - 1 Цикл
        Если ИндексЗаписи1 = 0 Тогда
            Продолжить;
        КонецЕсли;
       
        // смотрим назад
       
        Сотрудник0 = ЭтотОбъект[ИндексЗаписи1 - 1].Сотрудник;
        Сотрудник1 = ЭтотОбъект[ИндексЗаписи1].Сотрудник;
       
        Период0 = ЭтотОбъект[ИндексЗаписи1 - 1].ПериодЗавершения;
        Период1 = ЭтотОбъект[ИндексЗаписи1].Период;
       
        ПериодНачала = ЭтотОбъект[ИндексЗаписи1 - 1].Период;
        ПериодЗавершения = ЭтотОбъект[ИндексЗаписи1].ПериодЗавершения;
       
        Состояние0 = ЭтотОбъект[ИндексЗаписи1 - 1].Состояние;
        Состояние1 = ЭтотОбъект[ИндексЗаписи1].Состояние;
       
        Если (Сотрудник0 = Сотрудник1) И (Состояние0 = Состояние1) Тогда
            // это сопрягающиеся периоды ?
            Если (Период0 = Период1) И (ПериодНачала < ПериодЗавершения) Тогда
                // удаляем раннюю строку, переносим начало поздней строки на начало ранней строки
                СписокУдаляемых1.Добавить(ИндексЗаписи1 - 1);
                ЭтотОбъект[ИндексЗаписи1].Период = ЭтотОбъект[ИндексЗаписи1 - 1].Период;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
   
    УдаляемыхСтрок1 = СписокУдаляемых1.Количество() - 1;
    Для ИндексЗаписи1 = 0 По УдаляемыхСтрок1 Цикл
        ИспИндекс1 = СписокУдаляемых1[УдаляемыхСтрок1 - ИндексЗаписи1];
        ЭтотОбъект.Удалить(ИспИндекс1);
    КонецЦикла;
   
КонецПроцедуры

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

Хочу отметить, что эта процедура будет сшивать не только записи по отпускам, но и записи по командировкам, разбитые для одного сотрудника из производственной необходимости.

Сшиваются только записи одного документа. Записи разных документов не сшиваются.

См. также

Механизмы типовых конфигураций Программист Стажер Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Бесплатно (free)

В типовых решениях типа УТ, КА, ERP при вводе строк в поля ввода осуществляется поиск по первым символам. С помощью небольшой доработки (делается через расширение) можно организовать поиск по вхождению.

02.06.2025    440    lkey    0    

5

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист Платформа 1С v8.3 1C:ERP Бесплатно (free)

В этой статье я расскажу, как в конфигурации 1С:ERP 2.5 при начале работы системы настроить открытие своих нетиповых форм (в том числе и из внешних обработок). Данную методику можно использовать как на тонком клиенте, так и на мобильном или веб-клиенте, а также в мобильном приложении.

12.05.2025    1992    PROSTO-1C    1    

15

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

В этой статье расскажу, как можно добавлять свои отборы в типовую обработку формирования заказов по потребностям с минимальными доработками.

27.02.2025    892    PROSTO-1C    1    

6

Механизмы типовых конфигураций HighLoad оптимизация Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Пример популярной пользовательской настройки плана счетов. К чему это может привести, почему «всё тормозит» и как это поправить.

18.02.2025    3519    pbelousov    10    

6
Оставьте свое сообщение