Готовое решение для отслеживания конфликтов кадровых неявок в ЗУП и УПП

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

Администрирование - Администрирование данных 1С - Поиск данных

В актуальной версии ЗУП 2.5 оперативный контроль кадровых неявок сводится к программной проверке : не начинается ли в эту же самую дату какая-то другая неявка? Многие пользователи считают, что этого явно недостаточно.

Вашему вниманию предлагается готовое решение (в виде программного кода) для ЗУП и УПП, которое после проведения документа кадровой неявки информирует пользователя, какие конфликты кадровых неявок повлекло за собой проведение документа.

Моя предыдущая публикация содержала текст запроса, который вычислял конфликты кадровых неявок.

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

Для этого в дереве конфигурации нужно создать новую подписку на событие, скажем, ОперативныйКонтрольНеявок :

Источник события = РегистрСведенийНаборЗаписей.СостояниеРаботниковОрганизаций,
Событие = ПриЗаписи,
а в качестве процедуры - обработчика события использовать следующий код :

 

Процедура ОперативныйКонтрольНеявокПриЗаписи(Источник, Отказ, Замещение) Экспорт

   
// в наборе нет записей - отслеживаемые неявки отсутствуют - контроль не нужен
   
Если Источник.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;

   
// у всего набора записей регистратор - один и тот же
   
Регистратор1 = Источник[0].Регистратор;

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

   
Запрос.УстановитьПараметр("ОтслеживаемыйРегистратор", Регистратор1);

   
Результат = Запрос.Выполнить();
   
Выборка = Результат.Выбрать();

    Если
Выборка.Количество() > 0 Тогда

       
ОбработкаКомментариев = глЗначениеПеременной("глОбработкаСообщений");
       
ОбработкаКомментариев.УдалитьСообщения();
       
ТекстСообщения = "Проведение документа " + Регистратор1 + " : ";
       
ЗаголовокСообщения = ОбработкаКомментариев.ДобавитьСообщение(ТекстСообщения, Перечисления.ВидыСообщений.ВажнаяИнформация);

        Пока
Выборка.СледующийПоЗначениюПоля("Сотрудник") Цикл

            Если НЕ
ЗначениеЗаполнено(Выборка.Сотрудник) Тогда
                Продолжить;
            КонецЕсли;

            Пока
Выборка.СледующийПоЗначениюПоля("Регистратор") Цикл

                Если НЕ
ЗначениеЗаполнено(Выборка.Регистратор) Тогда
                    Продолжить;
                КонецЕсли;

                Пока
Выборка.СледующийПоЗначениюПоля("СостояниеОтслеживаемогоРегистратора") Цикл

                    Если НЕ
ЗначениеЗаполнено(Выборка.СостояниеОтслеживаемогоРегистратора) Тогда
                        Продолжить;
                    КонецЕсли;

                    Пока
Выборка.СледующийПоЗначениюПоля("СостояниеБезОтслеживаемогоРегистратора") Цикл

                        Если НЕ
ЗначениеЗаполнено(Выборка.СостояниеБезОтслеживаемогоРегистратора) Тогда
                            Продолжить;
                        КонецЕсли;

                       
ОбработкаКомментариев.ДобавитьСообщение("Сотрудник `" + Выборка.Сотрудник + "' (" + Выборка.СостояниеОтслеживаемогоРегистратора + " " + Формат(Выборка.ДатаКалендаряМинимум, "ДФ=dd.MM.yyyy") + " - " + Формат(Выборка.ДатаКалендаряМаксимум, "ДФ=dd.MM.yyyy") + ") уже переведен в состояние """ + Выборка.СостояниеБезОтслеживаемогоРегистратора + """ документом " + Выборка.Регистратор + ""
                       
, Перечисления.ВидыСообщений.Информация, , ЗаголовокСообщения);

                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;

       
ОбработкаКомментариев.ПоказатьСообщения();
    КонецЕсли;

КонецПроцедуры

Как это работает?

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

Поскольку этот регистр сведений подчинён регистратору, запись (непустого набора) в регистр фактически происходит при проведении какого-либо кадрового документа (уполномоченного на запись в этот регистр).

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

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

Что же произойдёт после того, как типовой код ЗУП (УПП) разрешит проведение кадрового документа? В регистр сведений СостояниеРаботниковОрганизаций будет записан новый набор записей и сразу после этого запустится обработчик события.

Далее возможны 2 варианта :

  1. Если конфликты неявок не будут обнаружены, то подписка на событие отработает, не оставив после себя никаких видимых следов.
  2. Если конфликт неявок будет обнаружен, то документ будет проведён, но пользователю на экран выдастся табличка с сообщением такого вида:

 

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

 

Интервал конфликтных дат в этом информационном сообщении будет ТОЧНЫМ, то есть - в сообщении будут указаны только те календарные даты, за которые конфликтует проводимый документ со всеми другими проведёнными документами.

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

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

См. также

Excel vs 1С: битва с неожиданным исходом Промо

Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие v8 1cv8.cf Россия Бесплатно (free)

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    38224    bolefirenko    120    

Ошибка при открытии панели функций "Значение не является значением объектного типа (ЭтоГруппа)"

Тестирование и исправление v8::БУ БП2.0 Россия БУ Бесплатно (free)

При открытии панели функций в 1С: Бухгалтерии 2.0 возникает ошибка "Значение не является значением объектного тип (ЭтоГруппа)"

18.02.2021    216    delta    0    

Причина появления и исправление ошибки SDBL "Таблица или поле Fld...... не содержится в резделе FROM"

Тестирование и исправление v8 Россия Бесплатно (free)

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

20.01.2021    622    smwed    1    

Пользователь ИБ не идентифицирован

Тестирование и исправление v8 ERP2 Россия Бесплатно (free)

Реанимация ИБ после такой ошибки

12.01.2021    11536    mrcamomile    60    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    26405    ruha    16    

Как восстановить конфигурацию, если разрушены данные

Тестирование и исправление v8 Бесплатно (free)

В статье описан один из вариантов восстановления кода конфигурации, если при обновлении данных разрушилась база, и конфигуратор больше не открывается.

23.10.2020    1723    aramius    4    

Настройка отчета "Паспорт просрочен" в ЗУП 3

Анализ учета Зарплата v8 v8::СПР ЗУП3.x БУ Бесплатно (free)

Обновили программу с 3.1.10 до 3.1.14 и в карточке сотрудника всплывает информация о просроченных паспортах для пользователя с полными правами, а у кадровика нет.  Я решила настроить для кадровика отчет.

30.09.2020    773    Hla    1    

Просто о 1С:ЗУП 3.1 за 10 минут

Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Россия БУ УУ Бесплатно (free)

Когда начинал работать с конфигурацией 1С ЗУП 2.5 не было никакого краткого описания этой конфигурации. Приходилось читать умные книги. Статья представляет собой вводный инструктаж в 1С: ЗУП 3.1 для начинающих.

04.09.2020    7662    Kaval88    30    

Восстановление работоспособности файловой базы. 3. Конфигурация Промо

Тестирование и исправление Практика программирования v8 1cv8.cf Бесплатно (free)

Восстановление работоспособности разрушенной файловой базы. Этап 3. Лечим конфигурацию.

21.04.2013    51048    andrewks    20    

Полнотекстовый поиск в 1С. №2 Самое основное для разработчика

Поиск данных v8 1cv8.cf Бесплатно (free)

Полнотекстовый поиск в 1С и все что с этим связано. Часть №2: программное использование и некоторые нюансы при разработке.

02.09.2020    8977    YPermitin    5    

Создание отчета "Анализ возраста сотрудников" на основе отчета "Личные данные сотрудников"

Зарплата Управление персоналом (HRM) v8 v8::СПР v8::СКД ЗУП3.x Россия БУ Бесплатно (free)

Пример создания(изменения) варианта отчета в программе «Зарплата и управление персоналом» редакции 3.1.

02.09.2020    3027    dima5ikv    0    

Ускоряем полнотекстовый поиск в динамических списках

Поиск данных v8 1cv8.cf Россия Бесплатно (free)

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

20.07.2020    4801    PRO100_NigGaZ    11    

Восстановление SQL базы 1С 8.2. рухнувшей во время сохранения конфигурации. Промо

Тестирование и исправление Архивирование (backup) v8 1cv8.cf Россия Бесплатно (free)

При обновлении конфигурации вылетела 1С. После чего наотрез отказалась входить в базу. При этом в конфигураторе выдавалось сообщение "Внимание!!! При обновлении данных, после последней реструктуризации, произошла критическая ошибка. Повторить обновление?" Потом выходило сообщение "Обнаружена незавершённая операция сохранения конфигурации. Для продолжения необходимо завершить операцию". Горела кнопка Ок - на этом работоспособность конфигуратора и базы заканчивалась.

08.02.2012    131610    VanDiesel1    139    

Полнотекстовый поиск в 1С. №1 Грабли в динамических списках

Поиск данных v8 1cv8.cf Бесплатно (free)

Полнотекстовый поиск в 1С и все что с этим связано. Часть №1: особенности работы в динамических списках.

18.07.2020    7172    YPermitin    18    

Ошибка формата потока данных, частный случай

Тестирование и исправление v8 Бесплатно (free)

Вариант решения ошибки формата потока данных при попытке открытия конфигурации в конфигураторе.

11.07.2020    2914    Zhilyakovdr    6    

Исправление ошибки SDBL: Тип поля * несовместим с типом поля *

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

После обновления конфигурации при записи одного документа стала появляться ошибка "Ошибки SDBL: Тип поля * несовместим с типом поля". В статье привожу пример исправления ошибки.

17.06.2020    3635    Farsis    0    

Восстановление данных 1С8 при помощи механизма РИБ

Распределенная БД (УРИБ, УРБД) Тестирование и исправление v8 Бесплатно (free)

Предлагаю сообществу способ восстановления утраченных данных из бэкапа используя механизм РИБ. Зачастую наличие бэкапа базы не позволяет просто взять и откатить состояние базы на утро или вечер предыдущего дня. Бывает так, что утерю важных данных заметили спустя 2 дня, и свежий бекап нам не поможет. Предлагаю относительно простой способ переноса определенных данных из резервной копии базы в рабочую. Не надо писать обработку по выгрузке, загрузке данных или по переносу через COM-соединение. Единственное условие: в базе должны работать обмены РИБ.

13.06.2020    1645    Vortigaunt    1    

Использование com-соединения для сопоставления номенклатуры, контрагентов

Анализ учета v8 1cv8.cf Бесплатно (free)

Com-подключение для сравнения номенклатуры, контрагентов, остатков.

06.05.2020    1911    Rustig    12    

Ошибка формата потока. Частный случай при обновлении

Тестирование и исправление v8 УПП1 Бесплатно (free)

При обновлении конфигурации столкнулся с ошибкой формата потока. Нашел вполне экономное решение по времени для решение этой проблемы.

25.04.2020    4480    Gasilin    8    

Проверка регистраторов при обновлении конфигурации

Тестирование и исправление v8 Бесплатно (free)

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

23.04.2020    3048    ipoloskov    10    

У Вас задваивание безналичных платежей в УТ 11.4, исправляем!!!

Тестирование и исправление v8 v8::ОУ УТ11 УУ Бесплатно (free)

Всем привет. Может такое произойти, что в окне безналичных платежей конфигурации УТ 11 происходит задвоение информации, т.е. от одного и того же контрагента пришли поступления одной и той же суммой в один и тот же день (дублирование). У меня данные из клиент-банка заливаются в БП, а затем через обмен выполняется перелив с БП в УТ, вот и получилось у меня задвоение. В журнале операций все прошло нормально, без задвоений, а вот в самой программе отобразилось уже так, произойти это могло по многим причинам (коряво прошел обмен, ошибка релиза, внутренние ошибки алгоритма и т.п. - вариантов масса). Что я сделал, в первую очередь, конечно, резервную копию.

16.04.2020    2864    VID1234    7    

Изменения в 1С: ЗУП 3.1 в связи с Указом Президента РФ о нерабочей неделе и ее продлении

Зарплата Управление персоналом (HRM) v8 v8::СПР ЗКГУ3.0 ЗУП3.x Россия БУ Бесплатно (free)

Какие же изменения реализованы в программе 1С:ЗУП 3.1 для поддержки Указа Президента.

13.04.2020    3549    Neti    2    

Недопустимое состояние объекта !m_usingOldShema [backend - src\DBGenerationsImpl.cpp (2377)]

Тестирование и исправление v8 Бесплатно (free)

Не знаю, что именно вызвало такую ошибку, поэтому напишу, что выполнен был переход с платформы 8.3.10.2561 на 8.3.16.1148. Конфигурация разрабатывалась с использованием хранилища конфигурации. База серверная на Microsoft SQL. В результате изменений в конфигурации, не вызывающих реструктуризацию базы, после нажатия F7 возникло такое сообщение.

04.04.2020    9066    EvgeTrofi    8    

Как сделать сторно в 1С

Анализ учета v8 v8::ОУ КА2 УУ Бесплатно (free)

Сторно – это исправление ошибок учета, когда ошибочно внесенную операцию записывают с отрицательными числами. В программах 1С есть два вида документа, с помощью которых можно выполнить сторно необходимых данных. Это "Корректировка регистров" и "Операция" в 1С 8.3.

30.03.2020    3306    Koder_Line    0    

Премия за дни повышения квалификации

Зарплата Управление персоналом (HRM) v8 v8::СПР ЗКГУ3.0 ЗУП3.x Россия БУ Бесплатно (free)

Пример настройки и расчета премии за дни повышения квалификации в ЗУП 3.1.

16.03.2020    3199    user1034502    0    

Отправка "Заявления на подключение к ЭДО ПФР" из программы "1С: Бухгалтерия предприятия, ред. 2" для СЗВ-ТД

Документооборот и делопроизводство Зарплата Управление персоналом (HRM) v8 v8::БУ БП2.0 Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Инструкция по отправке "Заявления на подключение к ЭДО ПФР" из программы "1С Бухгалтерия предприятия, ред. 2" для обмена сведениями об электронных трудовых книжках и отправки отчетов по форме СЗВ-ТД.

11.02.2020    25855    rusmil    8    

Зависает полнотекстовый поиск! Что было? Что я сделал?

Тестирование и исправление v8 БП3.0 Россия Бесплатно (free)

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

10.01.2020    6834    VID1234    14    

"Объект не найден" - не приговор! Простой способ восстановить удаленный объект

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

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

12.11.2019    8150    Olesia_Matusevich    12    

Решение для клиент-серверной архитектуры на базе POSTGRE SQL при возникновении ошибки "Нарушена целостность структуры конфигурации"

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

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

07.11.2019    8152    leaguener    5    

WiseAdvise: Настройка расчета управленческой зарплаты в 1С:ЗУП КОРП 3.1

Зарплата Управление персоналом (HRM) v8 ЗУП3.x Россия УУ Бесплатно (free)

В статье описан механизм настройки расчета управленческой заработной платы в 1С ЗУП 3.1 КОРП в сравнении с аналогичным механизмом в ЗУП 2.5.

23.10.2019    9635    tamriko666@gmail.com    6    

Восстановление индексов СУБД

Тестирование и исправление v8 1cv8.cf Россия Бесплатно (free)

Восстановление индексов СУБД на основе структуры хранения базы данных 1С.

09.10.2019    5779    kadr    2    

Объединение организаций в ЗУП при реорганизации с переносом данных из ЗУП 2.5 в ЗУП 3.1

Зарплата Управление персоналом (HRM) Перенос данных из 1C8 в 1C8 v8 v8::СПР ЗУП2.5 ЗУП3.x БУ Бесплатно (free)

В этой статье описан опыт объединения 2-х организаций при реорганизации в ЗУП 3.1 с переносом данных одной организации из ЗУП 2.5 (релизы баз более или менее свежие, но не самые последние на момент перехода, примерно двух- и трехмесячной давности). За основу было взято решение из этой статьи https://infostart.ru/public/833658/, в которой описан алгоритм решения задачи, за что автору статьи огромная благодарность! Здесь же даны некоторые комментарии и пояснения к алгоритму переноса и объединения, описаны выявленные мною ошибки. Также приведена небольшая инструкция по использованию обработки ирПодборИОбработкаОбъектовБД — она будет полезна для пользователей — «не программистов», впервые работающих в не управляемых формах.

09.10.2019    8531    Neti    2    

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

Поиск данных v8 1cv8.cf Бесплатно (free)

Ошибка "Дата ' **.**.**** ' не может быть записана в базу данных на MS SQL Server с нулевым смещением дат.

03.10.2019    3035    sutygin    8    

Исправление ошибки "Для одного ссылочного кода существует более одной таблицы в базе данных"

Тестирование и исправление v8 Бесплатно (free)

Описана методика исправления ошибки путем внесения изменений в sql-таблицы.

23.09.2019    24078    Дмитрий74Чел    84    

Отчеты ЗУП. Решения всех отчетов из сборника задач для подготовки к Специалист-консультант ЗУП с картинками

Решение задач на 1С:Специалист Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Россия БУ Бесплатно (free)

Когда готовился к сдаче экзамена на Специалист консультант по ЗУП, в процессе решения задач из сборника обнаружил, что те решения отчетов, которые есть в сети и на Инфостарте, недостаточно проиллюстрированы, и для новичка это может быть довольно тяжело и затратно по времени - разобраться, что к чему, с "нуля". Делал как шпаргалку для себя. Экзамен сдал на отлично. Рекомендую тем, кто готовится - прорешать все отчеты.

26.08.2019    19682    user1024932    20    

Постановка на воинский учет организации

Бухгалтерский учет Управление персоналом (HRM) Управление персоналом (HRM) v8::СПР ЗУП3.x Россия БУ Бесплатно (free)

Привет! Я тут знаете, что поняла? Что за всю свою практику не встречала более или менее конкретных статей про постановку на воинский учет (далее – ВУ) в организациях. Все, конечно, не просто так: довелось организовывать полностью с нуля вот не далее, чем только что. В процессе вспомнились мои первые попытки что-то на этом поприще сделать, сотни общих статей и вот это вот все. В общем, подумала я и решила, что время пришло. Надо написать нормальную статью про ВУ в коммерческих организациях и рассказать тем, кто автоматизировался на 1С зачем вообще нужны эти отчеты. Отмечу, что не претендую на истину любой инстанции. Сегодня я просто хочу рассказать о том, что за зверь такой постановка на воинский учет, опираясь на мой собственный опыт.

06.08.2019    7585    VKuser24804875    3    

Ошибка формата потока и команды конфигурации

Тестирование и исправление v8 Бесплатно (free)

Один из вариантов устранения данной ошибки.

11.06.2019    9285    l_men    11    

Исправление ошибки при открытии внешнего отчета "Не удалось обновить вспомогательные данные расширений"

Тестирование и исправление v8 Россия Бесплатно (free)

Способы исправления ошибки при открытии внешнего отчета "Не удалось обновить вспомогательные данные расширений. Обратитесь к администратору."

30.05.2019    5905    AlkB    4    

MS SQL Ошибка СУБД: Предоставленный поток статистики разрушен. Как решить проблему с разрушенной статистикой

Тестирование и исправление v8 1cv8.cf Бесплатно (free)

MS SQL Ошибка СУБД: Предоставленный поток статистики разрушен... Как решить проблему с разрушенной статистикой

16.04.2019    7296    ikorulev    1    

Функционал электронного интервью в 1С: ЗУП 3.1 КОРП

Управление персоналом (HRM) Пользователю системы Бухгалтерский учет Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Россия УУ Бесплатно (free)

Рассмотрим полезный, но достаточно сложный HR-функционал в конфигурации 1С: ЗУП 3.1 КОРП.

15.04.2019    6864    Etozheegorov    3    

Консилиум во флаконе

Бухгалтерский учет Анализ учета v8::БУ v8::Запросы v8::СКД 1cv8.cf Бесплатно (free)

Ошибки, держитесь крепче. Flowcon вышел на охоту.

14.03.2019    8800    1c-intelligence    10    

Неверный расчет СЗВ-СТАЖ. ЗУП 3.1

Адаптация типовых решений Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП3.x БУ ФОМС, ПФ, ФСС Бесплатно (free)

При заполнении отчета СЗВ-СТАЖ на последних релизах ЗУП (ошибка не исправлена и в релизе 3.1.9.107) выявлены ошибки при расчете периодов, а также неверное выделение стажа ДЛОТПУСК.

01.03.2019    7905    dbachinsky    2