Запросы к регистрам сведений с реквизитом "ПериодЗавершения"

Публикация № 198785

Разработка - Практика программирования

Кадровая история Плановые начисления Запрос Период завершения

61
В конфигурациях ЗУП и УПП есть 2 часто используемых регистра сведений:  «РаботникиОрганизаций» aka «Кадровая история сотрудников (по юрлицам)»  - хранит кадровые перемещения сотрудника в регл. учете и «ПлановыеНачисленияРаботниковОрганизаций» aka «Плановые начисления сотрудников организаций» - хранит назначенные сотруднику виды расчета. Эти регистры имеют одну особенность, часто упускаемую новичками из виду.

Регистры «РаботникиОрганизаций»  и «ПлановыеНачисленияРаботниковОрганизаций» имеют ресурс ПериодЗавершения, который показывает, что запись характеризуется не только началом, но еще и концом своего действия. Все остальные ресурсы этих регистров дублируются ресурсами с окончанием «…Завершения» и при наступлении даты, указанной в периоде завершения, считается, что актуальными становятся ресурсы с этим окончанием. Рассмотрим теперь конкретные примеры запросов к этим регистрами.

1)      Срез последних регистра «РаботникиОрганизаций».

ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
   
ВЫБОР
        КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
            ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения
        ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
    КОНЕЦ КАК Подразделение,
   
ВЫБОР
        КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
            ТОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения
        ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность
    КОНЕЦ КАК Должность,
   
ВЫБОР
        КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
            ТОГДА РаботникиОрганизацийСрезПоследних.ГрафикРаботыЗавершения
        ИНАЧЕ РаботникиОрганизацийСрезПоследних.ГрафикРаботы
    КОНЕЦ КАК ГрафикРаботы,
   
ВЫБОР
        КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
            ТОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения
        ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
    КОНЕЦ КАК ПричинаИзмененияСостояния
ИЗ
   
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаСреза, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
    ВЫБОР
            КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                    И
РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
                ТОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения
            ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
        КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)

 

Схема получения нужных ресурсов довольно простая – проверяем, заполнен ли ресурс «ПериодЗавершения» и наступил ли этот самый период завершения, если оба условия выполняются, возвращаем ресурс «…Завершения», в противном случае возвращается обычный ресурс. В примере таким образом получается поле Должность, Подразделение и ГрафикРаботы, при желании можно аналогично получить все остальные поля. Обратите внимание на раздел ГДЕ, здесь мы отфильтровываем только работающих на дату среза сотрудников.

Подобный запрос используется в стандартном отчете «СпискиРаботниковОрганизаций»

2)      Срез последних регистра «ПлановыеНачисленияРаботниковОрганизаций».

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник,
   
ВЫБОР
        КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
            ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ДействиеЗавершения
        ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Действие
    КОНЕЦ КАК Действие,
   
ВЫБОР
        КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
            ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаЗавершения
        ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета
    КОНЕЦ КАК ВидРасчета,
   
ВЫБОР
        КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
            ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1Завершения
        ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Показатель1
    КОНЕЦ КАК Показатель1,
   
ВЫБОР
        КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаИзмерение = НЕОПРЕДЕЛЕНО
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
   
КОНЕЦ КАК ЯвляетсяОсновным
ИЗ
   
РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(&ДатаСреза, ) КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследних
ГДЕ
    ВЫБОР
            КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                    И
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаСреза
                ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ДействиеЗавершения
            ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Действие
        КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)

 

Как и в предыдущем примере, ресурсы получаем такой же конструкцией. В самом регистре гораздо больше полей и если получать все возможные, то запрос будет громоздким. В примере мы получаем поля Действие, ВидРасчета и Показатель1, а также дополнительное поле ЯвляетсяОсновным.

У данного регистра ВидРасчета является и измерением и ресурсом, в случае, когда вид расчета является основным по учету времени, в измерении хранится значение НЕОПРЕДЕЛЕНО (что допустимо для значений составного типа, в нашем случае, основные и дополнительные начисления), в остальных случаях значение измерения совпадает со значением ресурса вида расчета. Здесь можно отметить такую особенность, что хотя дополнительные виды расчета (из ПВР «ДополнительныеНачисленияОрганизации») тоже могут быть плановыми, в действительности же такое движение может создать только договор на выполнение работ с ФЛ, остальные документы ограничены основными начислениями. Основной по учету времени вид расчета или нет, определяют настройки плана видов расчета на закладке «Время».  Такая схема гарантирует, что на конкретную дату у сотрудника основным по учету времени может быть только один вид расчета, остальные же будут дополнительными по учету времени. Кроме того, при изменении основного по учету времени вида расчета не нужно прекращать предыдущего основного по учету времени вида расчета, что написано в инструкции к конфигурации.

Подобно предыдущему примеру, условие раздела «ГДЕ» отбирает только те виды расчета, которые действуют на дату среза.

3)      Сотрудники, работавшие в периоде

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РаботникиОрганизацийСрезПоследних.Сотрудник
ИЗ
   
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НачалоПериода, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
    (ВЫБОР
                КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                        И
РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &НачалоПериода
                    ТОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения
                ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
            КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
            ИЛИ
РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &КонецПериода
                И РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РаботникиОрганизаций.Сотрудник
ИЗ
   
РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И РаботникиОрганизаций.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПРичиныИзмененияСостояния.Увольнение)

 

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

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

Этот пример можно расширить и получать сотрудников, работавших на данной должности или в определенном подразделении в заданном периоде.

 

4)      Сотрудники, имеющие действующие виды расчета из списка видов расчета в заданном периоде

ВЫБРАТЬ
    ОсновныеНачисленияОрганизаций.Ссылка КАК Ссылка
ПОМЕСТИТЬ втВидыРасчета
ИЗ
   
ПланВидовРасчета.ОсновныеНачисленияОрганизаций КАК ОсновныеНачисленияОрганизаций
ГДЕ
    ОсновныеНачисленияОрганизаций.Ссылка В(&СписокВР)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Сотрудник
ИЗ
   
РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(&НачалоПериода, ) КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследних
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втВидыРасчета КАК втВидыРасчета
        ПО (ВЫБОР
                    КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                            И
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &НачалоПериода
                        ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаЗавершения
                    ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета
                КОНЕЦ = втВидыРасчета.Ссылка
                ИЛИ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                    И
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &КонецПериода
                    И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчетаЗавершения = втВидыРасчета.Ссылка)
ГДЕ
    ВЫБОР
            КОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                    И
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ПериодЗавершения <= &НачалоПериода
                ТОГДА ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ДействиеЗавершения
            ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Действие
        КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ВидыДействияСНачислением.Прекратить)

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    ПлановыеНачисленияРаботниковОрганизаций.Сотрудник
ИЗ
   
втВидыРасчета КАК втВидыРасчета
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций КАК ПлановыеНачисленияРаботниковОрганизаций
        ПО втВидыРасчета.Ссылка = ПлановыеНачисленияРаботниковОрганизаций.ВидРасчета
ГДЕ
    ПлановыеНачисленияРаботниковОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода

 

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

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

 

5)      Длительность работы сотрудника на дату среза

ВЫБРАТЬ
    взСгруппированныеДанные.Сотрудник КАК Сотрудник,
   
взСгруппированныеДанные.Период КАК Период,
   
взСгруппированныеДанные.ПериодСледующий КАК ПериодСледующий,
   
ВЫБОР
        КОГДА взСгруппированныеДанные.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
взСгруппированныеДанные.ПериодЗавершения >= взСгруппированныеДанные.ПериодСледующий
            ТОГДА ДАТАВРЕМЯ(1, 1, 1)
        ИНАЧЕ
взСгруппированныеДанные.ПериодЗавершения
    КОНЕЦ КАК ПериодЗавершения,
   
взСгруппированныеДанные.Должность КАК Должность,
   
взСгруппированныеДанные.ДолжностьЗавершения КАК ДолжностьЗавершения,
   
взСгруппированныеДанные.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния,
   
взСгруппированныеДанные.ПричинаИзмененияСостоянияЗавершения КАК ПричинаИзмененияСостоянияЗавершения
ПОМЕСТИТЬ втСКорректнымЗавершением
ИЗ
    (
ВЫБРАТЬ
        РаботникиОрганизаций.Сотрудник КАК Сотрудник,
       
РаботникиОрганизаций.Период КАК Период,
       
МИНИМУМ(ЕСТЬNULL(РаботникиОрганизацийСледующаяЗапись.Период, &ДатаСреза)) КАК ПериодСледующий,
       
РаботникиОрганизаций.ПериодЗавершения КАК ПериодЗавершения,
       
РаботникиОрганизаций.Должность КАК Должность,
       
РаботникиОрганизаций.ДолжностьЗавершения КАК ДолжностьЗавершения,
       
РаботникиОрганизаций.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния,
       
РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения КАК ПричинаИзмененияСостоянияЗавершения
    ИЗ
       
РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизацийСледующаяЗапись
            ПО РаботникиОрганизаций.Сотрудник = РаботникиОрганизацийСледующаяЗапись.Сотрудник
                И РаботникиОрганизаций.Период < РаботникиОрганизацийСледующаяЗапись.Период
                И (РаботникиОрганизацийСледующаяЗапись.Период <= &ДатаСреза)
   
ГДЕ
        РаботникиОрганизаций.Период <= &ДатаСреза

    СГРУППИРОВАТЬ ПО
       
РаботникиОрганизаций.Сотрудник,
       
РаботникиОрганизаций.Период,
       
РаботникиОрганизаций.ПериодЗавершения,
       
РаботникиОрганизаций.Должность,
       
РаботникиОрганизаций.ДолжностьЗавершения,
       
РаботникиОрганизаций.ПричинаИзмененияСостояния,
       
РаботникиОрганизаций.ПричинаИзмененияСостоянияЗавершения) КАК взСгруппированныеДанные
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втСКорректнымЗавершением.Сотрудник,
   
втСКорректнымЗавершением.Период КАК ДатаС,
   
ВЫБОР
        КОГДА втСКорректнымЗавершением.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
втСКорректнымЗавершением.ПериодЗавершения <= &ДатаСреза
            ТОГДА втСКорректнымЗавершением.ПериодЗавершения
        КОГДА втСКорректнымЗавершением.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
                И
втСКорректнымЗавершением.ПериодЗавершения > &ДатаСреза
            ТОГДА &ДатаСреза
        ИНАЧЕ втСКорректнымЗавершением.ПериодСледующий
    КОНЕЦ КАК ДатаПо,
   
втСКорректнымЗавершением.Должность КАК Должность
ПОМЕСТИТЬ втЗаписиКАнализу
ИЗ
   
втСКорректнымЗавершением КАК втСКорректнымЗавершением
ГДЕ
    втСКорректнымЗавершением.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    втСКорректнымЗавершением.Сотрудник,
   
втСКорректнымЗавершением.ПериодЗавершения,
   
втСКорректнымЗавершением.ПериодСледующий,
   
втСКорректнымЗавершением.ДолжностьЗавершения
ИЗ
   
втСКорректнымЗавершением КАК втСКорректнымЗавершением
ГДЕ
    втСКорректнымЗавершением.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
    И
втСКорректнымЗавершением.ПериодЗавершения < &ДатаСреза
    И втСКорректнымЗавершением.ПричинаИзмененияСостоянияЗавершения <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втЗаписиКАнализу.Сотрудник,
   
ВЫБОР
        КОГДА ДЕНЬ(втЗаписиКАнализу.ДатаПо) >= ДЕНЬ(втЗаписиКАнализу.ДатаС)
            ТОГДА
РАЗНОСТЬДАТ(втЗаписиКАнализу.ДатаС, втЗаписиКАнализу.ДатаПо, МЕСЯЦ)
        ИНАЧЕ
РАЗНОСТЬДАТ(втЗаписиКАнализу.ДатаС, втЗаписиКАнализу.ДатаПо, МЕСЯЦ) - 1
   
КОНЕЦ КАК КолвоМесяцев,
   
втЗаписиКАнализу.Должность,
   
ВЫБОР
        КОГДА ДЕНЬ(втЗаписиКАнализу.ДатаПо) >= ДЕНЬ(втЗаписиКАнализу.ДатаС)
            ТОГДА
ДЕНЬ(втЗаписиКАнализу.ДатаПо) - ДЕНЬ(втЗаписиКАнализу.ДатаС)
        ИНАЧЕ
30 + ДЕНЬ(втЗаписиКАнализу.ДатаПо) - ДЕНЬ(втЗаписиКАнализу.ДатаС)
   
КОНЕЦ КАК КолвоДней
ПОМЕСТИТЬ втКусочкиПериодов
ИЗ
   
втЗаписиКАнализу КАК втЗаписиКАнализу
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    втКусочкиПериодов.Сотрудник,
   
втКусочкиПериодов.Должность,
   
ВЫБОР
        КОГДА СУММА(втКусочкиПериодов.КолвоДней) >= 30
           
ТОГДА СУММА(втКусочкиПериодов.КолвоМесяцев) + ВЫРАЗИТЬ(СУММА(втКусочкиПериодов.КолвоДней) / 30-0.5 КАК ЧИСЛО(10, 0))
        ИНАЧЕ
СУММА(втКусочкиПериодов.КолвоМесяцев)
   
КОНЕЦ КАК КолвоМесяцев,
   
ВЫБОР
        КОГДА СУММА(втКусочкиПериодов.КолвоДней) >= 30
           
ТОГДА СУММА(втКусочкиПериодов.КолвоДней) - (ВЫРАЗИТЬ(СУММА(втКусочкиПериодов.КолвоДней) / 30-0.5 КАК ЧИСЛО(10, 0))) * 30
       
ИНАЧЕ СУММА(втКусочкиПериодов.КолвоДней)
   
КОНЕЦ КАК КолвоДней
ИЗ
   
втКусочкиПериодов КАК втКусочкиПериодов

СГРУППИРОВАТЬ ПО
   
втКусочкиПериодов.Сотрудник,
   
втКусочкиПериодов.Должность

 

Основное назначение такого запроса – подсчет длительности стажа сотрудника, но вы можете  получить длительность работы в подразделениях или на определенном графике работы. В данном примере рассчитывается длительность работы в разрезе должностей измеренная в месяцах и днях.

Временная таблица «втСКорректнымЗаверешнием» служит для получения записей о переводах сотрудника с датой начала и датой окончания данного перевода. Если период завершения больше периода следующей записи, то считаем, что возврат так и не наступил и в дальнейшем уже не учитываем.

«втЗаписиКАнализу» состоит из двух частей. В первой части мы обрубаем те временные переводы, которые выходят за дату среза и берем остальные периоды без изменений. Во второй части идет работа с периодами от даты возврата временного перевода до следующего перевода, так как такие случаи не учитываются в первой части.

«втКусочкиПериодов», в ней мы уже считаем количество месяцев и дней в каждом периоде работы сотрудника.  Для корректного расчета количества месяцев между двумя периодами добавлена проверка того, что отработан полный месяц с даты перевода, и если это не так, то количество месяцев уменьшается. Этот недоработанный месяц затем учитывается в количестве дней. Такой подход достаточно спорный, так как в месяце не всегда 30 дней. Если вам понадобиться решать такую задачу, то подумайте, как лучше представить длительность работы. Проще всего работать с днями, с годами чуть сложнее, а с месяцами уже зависит от задачи.

Наконец, в последнем запросе мы складываем полученные кусочки периодов, пересчитывая дни в месяцы – каждые 30 дней считаем за месяц. Количество месяцев и количество  дней и будет являться результатом.

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

 

Выводы.

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

 На мой взгляд, для реализации временных переводов стоило использовать другую схему регистров сведений: документ создает сразу две записи в регистре на дату начала и на дату окончания, а в случае конфликта, когда период задается раньше, чем период завершения предыдущей записи, требовать от пользователя исправления предыдущих кадровых документов. Запросы тогда превратились бы в банальный срез последних регистра сведений.

Для скачивания прикреплен архив, в котором:

1)    Сама статья в формате .docx

2)    Файл со всеми запросами из статьи в формате .sel

3)    Простой отчет на СКД, получающий плановые начисления на дату среза (запрос подобный примеру 2)

Тексты запросов раскрашены обработкой "Разукрашка": //infostart.ru/public/19856/

Ссылки на полезные статьи для начинающего специалиста по зарплате:

Общее описание процесса настройки распространенных видов расчета: //infostart.ru/public/22460/

Глубокое погружение в общие модули расчета зарплаты, написанное понятным языком, маст рид: //infostart.ru/public/76206/

Простой пример собственного расчета показателей: //infostart.ru/public/143181/

Моя статья об использовании подсистемы бюджетирования для сложных расчетов. Может пригодиться, если вам не хватает возможностей произвольной формулы в ПВР:  //infostart.ru/public/194262/

61

Скачать файлы

Наименование Файл Версия Размер
ПериодЗавершения
.rar 34,50Kb
28.08.13
17
.rar 1.0 34,50Kb 17 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
2. the1 392 01.09.13 22:00 Сейчас в теме
Полностью поддерживаю мнение о том, что реквизит "...Завершения" введен совершенно зря, лучше использовать методу, предложенную автором.
Synoecium; +1 Ответить
3. Gesperid 2 05.09.13 15:12 Сейчас в теме
http://its.1c.ru/db/metod81#content:2910:1
"Запретить проведение документов с пересекающимися периодами изменения мы не можем, потому что это не соответствует постановке задачи регистрации первичных документов "как есть"."
Synoecium; +1 Ответить
4. Gesperid 2 05.09.13 16:36 Сейчас в теме
Можно было бы немного "упростить" запросы, записывая открытые периоды (с ДатаНачала по ...) с граничным значением:
Период = ДатаНачала;
ПериодЗавершения = Дата(3999, 12, 31);
5. Synoecium 659 06.09.13 12:45 Сейчас в теме
(4) Gesperid, ребята с ИТС конечно оправдались постановкой задачи, но я также могу заявить что пользователям неудобно, что программа молча перекрывает пересекающиеся периоды более поздним изменением.
Соглашусь, что запросы чуть-чуть полегче стали бы, если период завершения устанавливался в максимальную дату при открытых периодах, но пользователи хуже воспринимают дату 31.12.3999, им она ни о чем не говорит, в отличие от программиста. А такая дата будет отображаться в формах списков и в табличных частях, если не предпринять дополнительных усилий по ее скрытию.

(1) Гость,
К сожалению прочитал эту статью уже после того как написал свою, но считаю, что их нужно совмещать друг другом, а не читать только ИТС. В этой публикации я даю готовые шаблоны по реальным регистрам, которые можно вставлять в свои запросы. Считаю, что новичку будет полезнее описание как сделать запрос с примерами и подробными пояснениями, а не объяснения почему сделали именно так, хотя они тоже не помешают.
6. Гость 07.09.13 04:16
Статья очень полезна для тех кто хочет понять базовые принципы ЗУП. Прочитал статью на ИТС, затем эту. Они хорошо друг друга дополняют.
7. Гость 07.09.13 08:49
Только запросы 3 и 4 нужно поменять местами, чтобы они совпадали с описанием.
8. Synoecium 659 10.09.13 14:08 Сейчас в теме
(7) Гость, Спасибо, исправил.
Оставьте свое сообщение

См. также

Вам нравятся запросы в 1С? 14

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования Разработка

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    10650    1    m-rv    79       

Безопасная работа с транзакциями во встроенном языке 187

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Разработка

Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.

1 стартмани

25.03.2019    15867    7    tormozit    35       

Трудовой договор, Дополнительное соглашение, Лист ознакомления, Договор о материальной ответственности, Договор о коммерческой тайне, Согласие на обработку персональных данных для ЗУП 3.1 17

Отчеты и формы Бухгалтер Внешняя обработка (ert,epf) v8 v8::СПР ЗУП3.x Россия БУ Зарплата Управление персоналом (HRM) Абонемент ($m) Печатные формы документов

Комплект печатных форм для отдела кадров для документов Прием на работу и Кадровый перевод: Трудовой договор, Доп. соглашение к трудовому договору, Лист ознакомления с локальными нормативными актами, Договор о полной материальной ответственности, Договор о неразглашении коммерческой тайны, Согласие на обработку персональных данных.

2 стартмани

12.03.2019    11744    56    Asenka    3       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 548

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    28908    267    bonv    111       

Проверка действительности паспортов, проверка ФЛ на негатив в ЗУП 3.1 4

Отчеты и формы Бухгалтер Внешняя обработка (ert,epf) v8 v8::СПР ЗУП3.x Россия Управление персоналом (HRM) Абонемент ($m) Бухгалтерские

Обработка проверки действительности паспортов физических лиц в 1С ЗУП 3.x. Обработка обращается к API сервису проверки паспортов и открытых реестров. При работе в демо режиме обращение к сервису происходит с задержкой в 2 секунды. Проверка ФЛ на негатив осуществляется по следующим открытым реестрам: реестр дисквалифицированных лиц, реестр массовых руководителей, реестр массовых учредителей, реестр лиц причастных к террористической деятельности, открытый реестр недействительных паспортов. Не работает в демо режиме.

1 стартмани

04.11.2018    8525    8    user718500    3       

Работа с публикациями "Инфостарт" 14

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    9762    10    RocKeR_13    16       

Расчет Тарификации и зарплаты в средних общеобразовательных школах для ЗКГУ-3.1 (релиз 3.1.11.153) 9

Отчеты и формы Бухгалтер Архив с данными v8 v8::СПР ЗКГУ3.0 Государственные, бюджетные структуры Россия БУ Windows Зарплата Абонемент ($m) Бухгалтерия

Данная настройка конфигурации предназначена для расчета Тарификации педработников и расчета зарплаты в средних общеобразовательных учреждениях. Настройка сделана на базе Типовой конфигурации "Зарплата и кадры государственного учреждения" редакции 3.1.

2 стартмани

05.09.2018    9532    26    ivnik    8       

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 65

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    16240    23    informa1555    26       

Работа с данными выбора 40

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

В управляемом интерфейсе заложена мощная возможность описывать связи реквизитов формы через параметры. Установка параметров связей позволяет ограничить выбор данных так, чтобы целостность данных была обеспечена на этапе ввода. Однако без дополнительного программирования задать можно только самые простые связи. Такие условия связи, как зависимость от реквизита через точку или зависимость через дополнительное отношение, заданное в регистре сведений - уже задать без программирования не получится.

1 стартмани

17.07.2018    22556    13    kalyaka    15       

Проверка и корректировка данных по выплате зарплаты 13

Отчеты и формы Бухгалтер Внешний отчет (ert,erf) v8 v8::СПР ЗКГУ3.0 ЗУП3.x Россия БУ Госбюджет Windows Зарплата Абонемент ($m) Закрытие периода Бухгалтерские Анализ учета

Обработка показывает остатки и движения взаиморасчетов с сотрудниками. Также обработка может откорректировать сумму остатков. Конфигурации: "Зарплата и управление персоналом" , релиз не ниже 3.1.2.105 и "Зарплата и кадры государственного учреждения" , релиз не ниже 3.1.2.105.

2 стартмани

08.06.2018    11963    116    APTEM_SLV    9       

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") 105

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    20242    86    m-rv    57       

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному 240

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования БСП (Библиотека стандартных подсистем)

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018    28217    28    dsdred    34       

Как выполнить отчет на СКД через COM и получить данные отчета? 86

Статья Программист Архив с данными v8 УПП1 Россия Windows Абонемент ($m) Практика программирования

Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, "скопипастить" текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его "немного модифицированная" копия. В статье будет рассмотрен пример получения данных из базы ЗУП.

2 стартмани

08.05.2018    18367    10    wowik    3       

Автоматическое заполнение графиков в ЗУП 3.1 6

Инструменты и обработки Бухгалтер Архив с данными v8 v8::СПР ЗУП3.x Россия БУ Зарплата Учет рабочего времени Абонемент ($m) Обработка справочников

Данная разработка будет актуальна для организаций с большим количеством графиков (несколько десятков/сотен).

1 стартмани

05.05.2018    10066    15    notserioussam    1       

Настройки отчета "Анализ начислений и удержаний" для ЗУП/ЗГУ 3.1 30

Отчеты и формы Бухгалтер Архив с данными v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Зарплата НДФЛ ФОМС, ПФ, ФСС Абонемент ($m) Бухгалтерские

Несколько полезных настроек отчета "Анализ начислений и удержаний" для зарплаты редакции 3.1. В состав входят настройки: Свод в разрезе налогообложения, Сводные данные для статистики, Реестр пособий, Расчетная ведомость по зарплате, Свод в разрезе финансирования, Отклонения от режима работы, Свод по зарплате в разрезе ИФНС, Начисления с детализацией отсутствий, Лицевые счета сотрудников, Распределение отпусков, Сводка затрат

2 стартмани

03.05.2018    19420    231    the1    27       

Работа со схемой запроса 176

Статья Программист Конфигурация (md, cf) v8 v8::Запросы Абонемент ($m) Инструментарий разработчика Практика программирования

Стандартом взаимодействия с реляционной базой данных стал язык SQL. Приемником SQL в 1С является язык запросов. Язык запросов, также как и SQL, является структурированным. Составляющие структуры запроса отвечают на разные вопросы о том, какие данные требуется получить и какие манипуляции с множествами данных необходимо произвести при получении. В простых случаях текст запроса можно написать вручную, однако в сложных случаях, а также при программном формировании, - лучше воспользоваться объектной моделью запроса и использовать объект "Схема запроса". В статье дается описание объектной модели и особенностей работы с ней, а также приводится решение, упрощающее взаимодействие с объектом "Схема запроса".

1 стартмани

24.04.2018    29150    75    kalyaka    34       

Добавление возможности в конфигурации ЗУП 3.1 работать с фотографиями сотрудников (Зарплата и Управление Персоналом, редакция 3.1) 19

Инструменты и обработки Бухгалтер Расширение (cfe) v8 v8::СПР ЗУП3.x БУ Управление персоналом (HRM) Абонемент ($m) Обработка справочников

Добавление возможности в ЗУП 3.1 работать с фотографиями сотрудников (физических лиц). Расширение тестировалось на релизе ЗУП 3.1.5.129.

1 стартмани

09.04.2018    16724    49    charivnick    3       

Правила конвертации документов ЗУП 2.5 - ЗУП 3.1 44

Инструменты и обработки Системный администратор Программист Бухгалтер Документ XML v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Зарплата Абонемент ($m) Обмен через XML Перенос данных из 1C8 в 1C8

Правила конвертации документов ЗУП 2.5 - ЗУП 3.1. Позволяют вести параллельную работу в базах ЗУП редакций 2,5 и 3.1.

10 стартмани

06.03.2018    26184    123    kostya_whiskas    23       

Заполняем по шаблону (по умолчанию) 68

Инструменты и обработки Программист Архив с данными v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

08.02.2018    18220    20    mvxyz    17       

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов 124

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

1 стартмани

01.02.2018    25705    62    rpgshnik    46       

Трудовой договор, Дополнительное соглашение, Материальная ответственность, Коллективная материальная ответственность, Кадровый перевод, Индексация, Т-53 для ЗУП 3 внешние (7 печатных форм). Создание ведомостей по каждому сотруднику одной кнопкой 25

Отчеты и формы Бухгалтер Внешняя обработка (ert,epf) v8 v8::СПР ЗУП3.x БУ Зарплата Управление персоналом (HRM) Абонемент ($m) Печатные формы документов

1. Комплект из 6 печатных форм для документов: Прием на работу, Индексация, Кадровый перевод, Кадровый перевод списком для ЗУП 3.1.10 и более ранних Трудовой договор, дополнительное соглашение, договор личной материальной ответственности, договор коллективной материальной ответственности, индексация, Ведомость Т-53 без лишних строк. Не требуется изменения конфигурации. Подключается через стандартное подключение внешних обработок. 2. Обработка для создания ведемостей из начисления зарплаты. 3. Расширение конфигурации для ЗУП 3.1.10 и КА 2.4.6 для редактирования стажа как в ЗУП 2.5 (Из трудовой деятельности сотрудника. Если ввели строки трудовой деятельности, то стаж считается до даты приема сотрудника).

1 стартмани

26.01.2018    31014    527    p.ugrumov    89       

Проверка данных после неполного ("нового") переноса из ЗУП 2.5 в ЗУП 3.1 19

Отчеты и формы Бухгалтер Архив с данными v8 v8::СПР ЗУП3.x Россия БУ Зарплата Абонемент ($m) Бухгалтерский учет Перенос данных из 1C8 в 1C8

Описаны данные, которые необходимо проверить после неполного ("нового") переноса из ЗУП 2.5 в ЗУП 3.1. Описано, на что необходимо обратить внимание, где найти перенесенные данные, что НЕ переносится, где найти настройки.

1 стартмани

17.01.2018    17787    139    btydj    3       

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула 8

Отчеты и формы Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Печатные формы документов Практика программирования Универсальные функции

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    23498    21    agent00mouse    0       

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1 35

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Зарплата Абонемент ($m) Обработка документов Загрузка и выгрузка в Excel

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.

3 стартмани

20.12.2017    26590    29    mvv1975    5       

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП 26

Инструменты и обработки Программист Расширение (cfe) v8 БП3.0 Абонемент ($m) Практика программирования Универсальные печатные формы

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

1 стартмани

06.12.2017    18877    52    kwazi    6       

Справка о заработной плате и других доходах (измененная форма №46) 9

Отчеты и формы Бухгалтер Внешний отчет (ert,erf) v8 v8::СПР ЗКГУ3.0 Россия БУ Зарплата Абонемент ($m) Справки

Форма разработана для автоматизированного формирования справки по форме № 46. Внешний отчет с возможностью пользовательских настроек.

3 стартмани

24.11.2017    23321    48    agospodarin    14       

Расширения конфигураций 1С: учимся перехватывать методы 112

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

В этой статье я на примерах разберу некоторые механизмы расширений конфигураций 1С. А именно «перехваты» методов модуля объекта и «перехваты» событий формы и элементов формы. Данная статья написана с учебными целями, чтобы показать, как при помощи расширений конфигурации можно делать такие доработки, ради которых раньше приходилось снимать конфигурацию с поддержки.

1 стартмани

30.05.2017    86231    14    signum2009    45       

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов 177

Статья Программист Архив с данными v8 1cv8.cf Россия Абонемент ($m) Практика программирования Математика и алгоритмы Универсальные функции Производительность и оптимизация (HighLoad)

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    39796    168    DarkAn    86       

Поиск и исправление ошибок при заполнении 6-НДФЛ в ЗУП 2.5, Бухгалтерии 2.0, УПП 1.3 версия от 28.08.2018 21

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::БУ v8::СПР БП2.0 ЗУП2.5 УПП1 Россия БУ Зарплата НДФЛ Абонемент ($m) Регламентированная отчетность Бухгалтерские Анализ учета

Помощь в поиске и исправлении ошибок при заполнении отчёта 6-НДФЛ в ЗУП 2.5, Бухгалтерии 2.0 Просмотр всех записей регистров, имеющих отношение к учёту НДФЛ с детализаций до сотрудника и документа. Ручная корректировка основных регистров. Обновлённая версия от 02.07.2018г

3 стартмани

25.10.2016    26402    205    serge_msk    17       

Простой способ индексирования интервалов 182

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) Практика программирования

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

1 стартмани

28.09.2016    32612    39    ildarovich    22       

1С: Предприятие + корпоративный чат, как наладить оперативные уведомления за 10 минут 61

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v8 Windows Абонемент ($m) Практика программирования

Как сделать автоматические уведомления о разных событиях из 1С в корпоративный чат MyChat для сотрудников компании

1 стартмани

14.08.2016    39189    35    Demanoidos    60       

Хранение файлов в томах на диске (для УПП 1.3) 78

Инструменты и обработки Программист Архив с данными v8 УПП1 Windows Абонемент ($m) Практика программирования

Доработка типовой УПП 1.3 в плане хранения присоединенных файлов вне базы данных

2 стартмани

05.06.2016    44973    6    wowik    27       

Выгрузка реестра зарплаты в ГазПромБанк ЗУП 2.5 c ведущими нулями 3

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::СПР ЗУП2.5 Россия БУ Windows Банковские операции Зарплата Абонемент ($m) Обмен с банком

Корректно выгружает в текстовый формат поля, начинающиеся на НОЛЬ (Например, серии паспортов вида 0803)

5 стартмани

16.05.2016    21521    18    asher72    1       

Остатки на каждый день в запросе 34

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf УУ Windows Учет ТМЦ Абонемент ($m) Практика программирования

Запрос формирует остатки товаров на каждый день в пределах выбранного периода.

1 стартмани

26.04.2016    36385    19    arakelyan    17       

Краткий регистр налогового учета НДФЛ 2016 6

Отчеты и формы Бухгалтер Внешний отчет (ert,erf) v8 v8::БУ v8::СПР БП3.0 ЗУП3.x Россия БУ Windows Зарплата НДФЛ Абонемент ($m) Бухгалтерские Налоговые

C 2016 года у ИФНС повысились требования к учету НДФЛ. Предлагаю вам отчет "Краткий регистр налогового учета НДФЛ", компактный, простой и информативный. Самое главное - от обычного "Регистр налогового учета НДФЛ" отличается размерами.

2 стартмани

18.04.2016    22164    25    Craig    3       

Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии 152

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Windows Абонемент ($m) Практика программирования

Пример выполнения JS кода из 1С в Поле HTML Документа под управляемыми формами, с удобным получением результата в 1С(С помощью вызова привязанного события ПриНажатии к элементу ПолеHTMLДокумента)

1 стартмани

22.03.2016    62541    137    igo1    50       

Количество дней недели (понедельников/вторников/...) в заданном диапазоне одним запросом 29

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 Абонемент ($m) Практика программирования

При реализации периодического авто-заполнения маршрутных листов по графику (недельному) необходимо было просчитать стоимость всего периода, с условием выездов только по определенным дням. Заморачиваться с обходом результата не хотелось. Пришлось написать "Небольшой" запрос.

1 стартмани

03.03.2016    12822    1    Alexander.Shvets    5       

Простые радости жизни программиста 1С: выбор типа значения 51

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.02.2016    39898    45    yuraos    17       

Яндекс.Деньги "Благотворительность" 17

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Яндекс.Деньги теперь в 1С. Форма для приема благотворительных взносов. Форму легко сделать и вставить на любую страницу сайта или блога. Платежи будут приходить на ваш кошелек. На форме есть три способа платежа: из кошелька, с банковской карты, с баланса мобильного.

1 стартмани

16.02.2016    18169    9    Tatitutu    5       

Анализ НДФЛ и сверка данных учета при подготовке 2-НДФЛ (ЗИК 1.0, ЗУП 2.5, ЗГУ 3.1, ЗУП 3.1) 21

Отчеты и формы Бухгалтер Внешний отчет (ert,erf) v8 v8::СПР v8::СКД КА1 ЗУП2.5 ЗКБУ УПП1 БУ Зарплата НДФЛ Абонемент ($m) Анализ учета Налоговые Бухгалтерские

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

1 стартмани

28.01.2016    24008    144    the1    6       

Перечисление НДФЛ в бюджет РФ (13%, 30%) 11

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::СПР ЗУП2.5 БУ НУ Windows Зарплата НДФЛ Абонемент ($m) Обработка документов

Внешняя обработка (табличных частей), предназначенная для корректного заполнения документа "Перечисление НДФЛ в бюджет РФ". Конфигурация: Зарплата и Управление Персоналом, редакция 2.5

1 стартмани

27.01.2016    23515    239    1kashak    16       

Перечисление НДФЛ в бюджет: заполнение НДФЛ по расчетной ведомости для ЗУП 2.5 7

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 ЗУП2.5 Россия БУ Зарплата НДФЛ Абонемент ($m) Обработка документов

Внешняя обработка для заполнению сумм НДФЛ для перечисления в бюджет по данным расчетной ведомости для 1С ЗУП 2.5

2 стартмани

30.12.2015    11859    71    Snork    4       

Мастер рассылки e-mail 2.2 для управляемых форм 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ ERP2 БП3.0 УТ11 Абонемент ($m) Практика программирования Email

Для пользователей: переделанный из старый разработки под 8.2 с использованием библиотеки Мастер рассылки e-mail 2.2 (ERP, УТ, БП) (Только управляемые формы), который теперь может запускаться под любой версией платформы с разрешенными или запрещенными модальными/синхронными вызовами в конфигурации. Также удобный выбор e-mail и их владельцев с помощью отбора динамического списка по любым критериям и галочки исключения.

1 стартмани

29.12.2015    31330    20    milkers    4       

Нечеткий поиск одним запросом 37

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования

Использование механизма полнотекстового поиска в 1С не всегда оправдано, т.к. построение индекса и поддержание его в актуальном состоянии может значительно нагружать систему. Предлагаемая реализация нечеткого поиска методом N-грамм выполняется одним запросом, что позволяет производить поиск в любой таблице и не требует предварительного построения индекса.

1 стартмани

28.12.2015    20102    57    vasvl123    9