Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке

27.03.24

Учетные задачи - Зарплата

В статье размещен список стандартных процедур и функций с примерами, которые могут помочь при разработке (доработке) конфигураций Зарплата и управление персоналом ред. 3.1 и Зарплата и кадры государственного учреждения 3.1. Иногда бывает довольно сложно правильно получить данные или долго, поэтому лучшим вариантом будет использование стандартных процедур. Буду очень признателен, если Вы поделитесь своим опытом и предложите свои варианты стандартных процедур которые помогают в работе. Или предложите, как дополнить имеющиеся процедуры.
 
ПОЛУЧИТЬ ОБЩИЕ СВЕДЕНИЯ
 
ПОЛУЧИТЬ СВЕДЕНИЯ ОБ ОРГАНИЗАЦИИ
 
ПОЛУЧИТЬ ОТВЕТСТВЕННЫХ ОРГАНИЗАЦИИ
 
ЗАПОЛНИТЬ ПЕРВОНАЧАЛЬНЫЕ ЗНАЧЕНИЯ НА ФОРМЕ (ОРГАНИЗАЦИЯ)
 
ПОЛУЧИТЬ РАЗЛИЧНЫЕ КАДРОВЫЕ ДАННЫЕ
 
ПОЛУЧИТЬ ДАННЫЕ ПОЗИЦИИ ШТАТНОГО РАСПИСАНИЯ
 
ПОЛУЧИТЬ РАБОТАЮЩИХ СОТРУДНИКОВ ПО ЗАДАННЫМ ПАРАМЕТРАМ ОТБОРА
 
ПОЛУЧИТЬ ДЕЙСТВУЮЩИЕ ПЛАНОВЫЕ НАЧИСЛЕНИЯ НА ДАТУ
 
ПОЛУЧИТЬ ПРОЦЕНТ НАДБАВКИ ЗА СТАЖ РАССЧИТЫВАЕМЫЙ ПО ШКАЛЕ
 
ПОЛУЧИТЬ КАДРОВЫЕ ДАННЫЕ СОТРУДНИКА
 
ПОЛУЧИТЬ ИНТЕРВАЛЫ РАБОТЫ СОТРУДНИКОВ (РАБОЧИЕ МЕСТА СОТРУДНИКОВ)
 
ПОЛУЧИТЬ КАДРОВУЮ ИСТОРИЮ СОТРУДНИКА
 
ПОЛУЧИТЬ СТАЖИ СОТРУДНИКОВ
 
РАСЧЕТ СТАЖА, ТРУДОВОЙ ДЕЯТЕЛЬНОСТИ
 
ПОЛУЧИТЬ ОСНОВНОГО СОТРУДНИКА ФИЗИЧЕСКОГО ЛИЦА
 
ПОЛУЧИТЬ ПАСПОРТНЫЕ ДАННЫЕ ФИЗИЧЕСКОГО ЛИЦА
 
ПОЛУЧИТЬ ДАННЫЕ ПРОИЗВОДСТВЕННОГО КАЛЕНДАРЯ
 
ПОЛУЧИТЬ ДАННЫЕ ГРАФИКОВ РАБОТЫ
 
ПОЛУЧИТЬ ДАННЫЕ РАСЧЕТА ЗАРПЛАТЫ И БУХГАЛТЕРСКОГО УЧЕТА
 
ПОЛУЧИТЬ ДАННЫЕ РАБОЧЕГО (ОТРАБОТАННОГО) ВРЕМЕНИ, ДАННЫЕ ТАБЕЛЯ Т-13
 
ПОЛУЧИТЬ ДАННЫЕ СРЕДНЕГО ЗАРАБОТКА, ОСТАТКА ОТПУСКОВ, РЕЗЕРВА ОТПУСКОВ
 
ПОЛУЧИТЬ ДАННЫЕ ДЕНЕЖНОГО СОДЕРЖАНИЯ
 
ПОЛУЧИТЬ ДАННЫЕ БУХГАЛТЕРСКОГО УЧЕТА (ОРГАНИЗАЦИИ, ПОДРАЗДЕЛЕНИЯ, СОТРУДНИКА, НАЧИСЛЕНИЯ)
 
ПОЛУЧИТЬ НАЧИСЛЕННУЮ ЗАРПЛАТУ, НДФЛ, УДЕРЖАНИЯ ВЗНОСЫ (фактически начисляет зарплату за период)
 
ПОЛУЧИТЬ СРЕДНЕСПИСОЧНУЮ ЧИСЛЕННОСТЬ, ДАННЫЕ ОТЧЕТА ЗП-ХХХХ
 
ФУНКЦИИ ДЛЯ ОТРАЖЕНИЯ ДАННЫХ В ПЕЧАТНЫХ ФОРМАХ (ПРЕОБРАЗОВАНИЕ СТРОК)
 
ВЫВОД ИНИЦИАЛЫ ФАМИЛИЯ
 
ВЫВОД ФАМИЛИЯ ИНИЦИАЛЫ
 
СКЛОНЕНИЕ ФИО
 
ОПРЕДЕЛИТЬ ПОЛ ПО ОТЧЕСТВУ
 
ИНИЦИАЛЫ ПО ИМЕНИ И ОТЧЕСТВУ
 
СКЛОНЕНИЕ ТЕКСТА, ПРЕОБРАЗОВАНИЕ К МНОЖЕСТВЕННОМУ ЧИСЛУ СТРОК
 
УДАЛИТЬ ПРЕФИКС НОМЕРА ОБЪЕКТА И ЛИДИРУЮЩИЕ НУЛИ (СПРАВОЧНИКА, ДОКУМЕНТА)
 
ТАБЕЛЬНЫЙ НОМЕР НА ПЕЧАТЬ (функция эквивалентна удалению префиксов)
 
ПРЕОБРАЗОВАТЬ СТРОКУ В ДАТУ
 
ПРЕОБРАЗОВАТЬ СТРОКУ В ЧИСЛО
 
СУММА ПРОПИСЬЮ
 
ПОЛУЧИТЬ ИЕРАРХИЮ ПОДРАЗДЕЛЕНИЙ РЕКУРСИВНО
 
ФУНКЦИИ ДЛЯ РАБОТЫ С ДАТАМИ
 
ПРОВЕРКА ВХОЖДЕНИЯ ДАТЫ В ИНТЕРВАЛ
 
ПРОЦЕДУРЫ ПО СОЗДАНИЮ ВТ (ВРЕМЕННЫХ ТАБЛИЦ) / МенеджерВременныхТаблиц
 
СоздатьВТПериоды
 
ПРОЦЕДУРЫ И ФУНКЦИИ БСП
 
ШАБЛОН ВНЕШНЕЙ ПЕЧАТНОЙ ФОРМЫ
 
ПОДКЛЮЧЕНИЕ НОВОГО ОБЪЕКТА (ДОКУМЕНТА, СПРАВОЧНИКА) К ПОДСИСТЕМЕ ВНЕШНИХ ПЕЧАТНЫХ ФОРМ
 
ПРЕОБРАЗОВАНИЕ ДАННЫХ (ТАБЛИЦА ЗНАЧЕНИЙ, МАССИВ И Т.Д.)
 
ЗНАЧЕНИЕ В МАССИВ
 
СВЕРНУТЬ МАССИВ
 
ТАБЛИЦА ЗНАЧЕНИЙ В МАССИВ
 
СКОПИРОВАТЬ МАССИВ, СТРУКТУРУ, СПИСОК ЗНАЧЕНИЙ, СООТВЕТСТВИЕ
 
ПОЛУЧЕНИЕ ТАБЛИЦЫ ЗНАЧЕНИЙ С ДАННЫМИ ФАЙЛА MS EXCEL
 
СТРОКА ТАБЛИЦЫ ЗНАЧЕНИЙ В СТРУКТУРУ
 
ТАБЛИЦА ЗНАЧЕНИЙ В СТРУКТУРУ
 
ДОПОЛНИТЬ ТАБЛИЦУ ЗНАЧЕНИЙ ДАННЫМИ ИЗ МАССИВА
 
ДОПОЛНИТЬ ТАБЛИЦУ ЗНАЧЕНИЙ ДАННЫМИ ИЗ ТАБЛИЦЫ ЗНАЧЕНИЙ
 
РАЗЛОЖИТЬ СТРОКУ В МАССИВ
 
СРАВНЕНИЕ ДАННЫХ СО СЛОЖНОЙ СТРУКТУРОЙ
 
СВЕДЕНИЯ ОБ АДРЕСЕ В ВИДЕ СТРУКТУРУ (АДРЕС ИЗ XML В СТРУКТУРУ)
 
ПОЛУЧИТЬ ССЫЛКУ НА ПРЕДОПРЕДЕЛЕННЫЙ ЭЛЕМЕНТ, ПУСТАЯССЫЛКА() НА КЛИЕНТЕ (СПРАВОЧНИК, ПЕРЕЧИСЛЕНИЕ, ПЛАН СЧЕТОВ, ПЛАН ВИДОВ РАСЧЕТА)
 
ПРОВЕРИТЬ АДРЕС НА СООТВЕТСТВИЕ КЛАССИФИКАТОРУ
 
СООБЩЕНИЯ ПОЛЬЗОВАТЕЛЮ (ОПОВЕЩЕНИЕ, ПРОГРЕСС БАР)
 
ПРОГРАММНОЕ ОТКРЫТИЕ ФОРМ
 
СПИСОК РЕГИСТРОВ МЕХАНИЗМА ПРЕДСТАВЛЕНИЙ

Список регистров представлений актуален для релиза 3.1.11.133

 
Представления_Периоды
 
Представления_КадровыеДанныеСотрудников
 
Представления_ОтработанноеВремя
 
Представления_СтажиСотрудников
 
Представления_ШтатноеРасписание
 
Представления_ПлановыеНачисленияСотрудников
 
Список представлений действующих до релиза 3.1.10
 
ПОЛЕЗНЫЕ СТАТЬИ В РАМКАХ ТЕМЫ

ЗУП. ЗАПРОСЫ

Представления в запросах. ЗУП

Введение в механизм представлений в ЗУП ред. 3

Кадровые данные сотрудников в ЗУП 3.1 в отчетах

Подмена временной таблицы в запросе (Менеджер временных таблиц)

Функции для обработки произвольной таблицы значений (Соединить таблицы, свернуть таблицы)

 

ВНЕШНИЕ ПЕЧАТНЫЕ ФОРМЫ

Fast help. Универсальные функции для регистрации внешних отчетов/обработок в 1С 8 на управляемых формах. Использование Синонима отчета/обработки при выполнении кода &НаКлиенте

[БСП] Внешняя печатная форма: как перед печатью выводить форму настроек

 

БСП

Работаем с контактной информацией в конфигурациях на БСП (адреса, номера телефонов)

Обзор полезных методов БСП 3.1.4

Разбираемся с механизмом Дополнительные отчеты и обработки в БСП

Полезные функции БСП. Часть 1.

Полезные функции БСП. Часть 2.

Полезные процедуры и функции для программиста

Склонение представлений объектов в ЗУП 3.1 - как это работает?

 

ПЛАТФОРМА

Программное создание и копирование документов. Использование методов ДанныеФормыВЗначение(), ЗначениеВДанныеФормы() и КопироватьДанныеФормы()

Информирование пользователя. Работа с объектом «СообщениеПользователю»

Форма выбора (подбор) в управляемых формах

 

ИНТЕРЕСНЫЕ ОБРАБОТКИ

Конвертация любых адресов, написанных в свободной форме, к ФИАС. Сервис Ahunter


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

ЗКГУ ЗУП универсальные процедуры и функции кадровые данные склонение работающие сотрудники плановые начисления средний заработок отработанное время БСП стажи сотрудников

См. также

Обновление для КА 1.1, ЗУП 2.5, БУХ 2.0: НДС, ЕФС-1, Расчет страховых взносов, Мобилизация, Статистика, Электронные трудовые книжки, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

19900 руб.

01.04.2020    141318    668    352    

233

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

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

84000 руб.

19.08.2020    22657    19    1    

22

Перенос данных из Камин 3.5 (5.5) в ЗиКГУ 3.х

Обмен между базами 1C Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет зарплаты для бюджетных учреждений 3.5» и «КАМИН:Зарплата для бюджетных учреждений 5.5» на конфигурацию «Зарплата и кадры государственного учреждения».

12000 руб.

28.07.2016    57388    142    141    

118

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

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

60000 руб.

05.10.2022    9321    9    8    

11

Исправление в 1С:ЗУП/ЗКГУ ошибок по НДФЛ и взаиморасчетам с сотрудниками на начало расчетного года.

Корректировка данных Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

4800 руб.

06.10.2023    2704    30    15    

36

Запрет доступа к данным по зарплате для БП 3.0 и КА 2.5

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

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5700 руб.

27.05.2021    33255    206    89    

166

Перенос данных из Парус 7.хх в ЗГУ ред.3

Внешние источники данных Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

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

24000 руб.

24.04.2017    48900    97    163    

86
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
94. GeterX 1319 22.11.19 12:02 Сейчас в теме
В статью внесены ряд изменений, исправлений и добавлен блок с полезными статьями на тему ЗУП/ЗКГУ 3.1.
Может кому пригодится. Если есть, что дополнить, пишите.
ybatiaev; SergeySol-82; +2 Ответить
177. ipzotov 21 22.06.23 08:50 Сейчас в теме
(94) Статья, безусловно, очень полезная! Периодически к ней обращаюсь.
Предлагаю в шаблон печатных форм добавить вариант использования в безопасном режиме с добавлением всевозможных разрешений, а то приходится другие ресурсы искать. Неполный список разрешений:
Регистрация внешних компонент
Печать штрихкодов и QR-кодов
ПараметрыРегистрации.БезопасныйРежим = Истина;
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты(
 "ОбщийМакет.КомпонентаПечатиШтрихкодов",
"Вывод в печатную форму штрихкода EAN13 AddOn 5"); 
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты(
 "ОбщийМакет.КомпонентаПечатиQRКода",
"Вывод в печатную форму QR-кода"); 
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
Показать


Разрешение на использование каталога временных файлов
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(
Истина, Истина, "Чтение и запись файла во временном каталоге");
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);


Разрешение на использование привилегированного режима
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима(
"Требуется для работы под неполными правами.."); 
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
96. Shefer 3 28.02.20 14:31 Сейчас в теме
Добрый день! А может кто подскажет функцию/процедуру для разделения произвольного периода по месяцам: ну то есть передаем: 11.01.2019-17.06.2019, получаем 11.01.2019-31.01.2019, 01.02.2019-28.02.2019,...,01.06.2019-1706.2019.
97. Amras 43 10.03.20 14:11 Сейчас в теме
(96)
11.01.2019-17.06.2019


Если смотреть на сайте, то данный вопрос уже решался.

В ЗУП (например: 3.1.10), если придерживаться той-же схемы, то получится требуемый результат (11/01/2019 - 31/01/2019......01/06/2019 - 17/06/2019):

ВЫБРАТЬ
	ДанныеПроизводственногоКалендаря.Дата КАК Дата,
	ГОД(ДанныеПроизводственногоКалендаря.Дата) * 100 + МЕСЯЦ(ДанныеПроизводственногоКалендаря.Дата) КАК НомерМесяца
ПОМЕСТИТЬ ВТ_ДатыКалендаря
ИЗ
	РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
ГДЕ
	ДанныеПроизводственногоКалендаря.Дата МЕЖДУ &ПериодДействияНачало И &ПериодДействияКонец
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	МИНИМУМ(ВТ_ДатыКалендаря.Дата) КАК ДатаНачала,
	МАКСИМУМ(ВТ_ДатыКалендаря.Дата) КАК ДатаОкончания
ИЗ
	ВТ_ДатыКалендаря КАК ВТ_ДатыКалендаря

СГРУППИРОВАТЬ ПО
	ВТ_ДатыКалендаря.НомерМесяца
Показать


И есть вариант (не проверял правда):

&НаСервере
Функция РазбитьПериодНаПодпериоды(Знач ДатаНачала, Знач ДатаОкончания)
    
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("ДатаНачала");
    ТаблицаЗначений.Колонки.Добавить("ДатаОкончания");
    
    ПервыйОбход = Истина;
    
    Если Отчет.УровеньДетализации = "День" Тогда
        
        Пока ДатаНачала <= ДатаОкончания Цикл
            
            Если ПервыйОбход Тогда
                
                Если КонецДня(ДатаНачала) >= ДатаОкончания Тогда
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = ДатаНачала;
                    НоваяСтрока.ДатаОкончания    = ДатаОкончания;
                    
                    Прервать;
                Иначе
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = ДатаНачала;
                    НоваяСтрока.ДатаОкончания    = КонецДня(ДатаНачала);
                КонецЕсли;
                
            Иначе
                
                Если КонецДня(ДатаНачала) >= ДатаОкончания Тогда
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = НачалоДня(ДатаНачала);
                    НоваяСтрока.ДатаОкончания    = ДатаОкончания;
                    
                    Прервать;
                Иначе
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = НачалоДня(ДатаНачала);
                    НоваяСтрока.ДатаОкончания    = КонецДня(ДатаНачала);
                КонецЕсли;
                
            КонецЕсли;
            
            ДатаНачала    = КонецДня(ДатаНачала)+1;
            ПервыйОбход    = Ложь;    
            
        КонецЦикла;
        
    ИначеЕсли Отчет.УровеньДетализации = "Неделя" Тогда
        
        Пока ДатаНачала <= ДатаОкончания Цикл
            
            Если ПервыйОбход Тогда
                
                Если КонецНедели(ДатаНачала) >= ДатаОкончания Тогда
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = ДатаНачала;
                    НоваяСтрока.ДатаОкончания    = ДатаОкончания;
                    
                    Прервать;
                Иначе
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = ДатаНачала;
                    НоваяСтрока.ДатаОкончания    = КонецНедели(ДатаНачала);
                КонецЕсли;
                
            Иначе
                
                Если КонецНедели(ДатаНачала) >= ДатаОкончания Тогда
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = НачалоНедели(ДатаНачала);
                    НоваяСтрока.ДатаОкончания    = ДатаОкончания;
                    
                    Прервать;
                Иначе
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = НачалоНедели(ДатаНачала);
                    НоваяСтрока.ДатаОкончания    = КонецНедели(ДатаНачала);
                КонецЕсли;
                
            КонецЕсли;
            
            ДатаНачала    = КонецНедели(ДатаНачала)+1;
            ПервыйОбход    = Ложь;    
            
        КонецЦикла;

        
    ИначеЕсли Отчет.УровеньДетализации = "Месяц" Тогда
        
        Пока ДатаНачала <= ДатаОкончания Цикл
            
            Если ПервыйОбход Тогда
                
                Если КонецМесяца(ДатаНачала) >= ДатаОкончания Тогда
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = ДатаНачала;
                    НоваяСтрока.ДатаОкончания    = ДатаОкончания;
                    
                    Прервать;
                Иначе
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = ДатаНачала;
                    НоваяСтрока.ДатаОкончания    = КонецМесяца(ДатаНачала);
                КонецЕсли;
                
            Иначе
                
                Если КонецМесяца(ДатаНачала) >= ДатаОкончания Тогда
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = НачалоМесяца(ДатаНачала);
                    НоваяСтрока.ДатаОкончания    = ДатаОкончания;
                    
                    Прервать;
                Иначе
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = НачалоМесяца(ДатаНачала);
                    НоваяСтрока.ДатаОкончания    = КонецМесяца(ДатаНачала);
                КонецЕсли;
                
            КонецЕсли;
            
            ДатаНачала    = КонецМесяца(ДатаНачала)+1;
            ПервыйОбход    = Ложь;    
            
        КонецЦикла;
        
    ИначеЕсли Отчет.УровеньДетализации = "Квартал" Тогда
        
        Пока ДатаНачала <= ДатаОкончания Цикл
            
            Если ПервыйОбход Тогда
                
                Если КонецКвартала(ДатаНачала) >= ДатаОкончания Тогда
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = ДатаНачала;
                    НоваяСтрока.ДатаОкончания    = ДатаОкончания;
                    
                    Прервать;
                Иначе
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = ДатаНачала;
                    НоваяСтрока.ДатаОкончания    = КонецКвартала(ДатаНачала);
                КонецЕсли;
                
            Иначе
                
                Если КонецКвартала(ДатаНачала) >= ДатаОкончания Тогда
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = НачалоКвартала(ДатаНачала);
                    НоваяСтрока.ДатаОкончания    = ДатаОкончания;
                    
                    Прервать;
                Иначе
                    НоваяСтрока = ТаблицаЗначений.Добавить();
                    НоваяСтрока.ДатаНачала        = НачалоКвартала(ДатаНачала);
                    НоваяСтрока.ДатаОкончания    = КонецКвартала(ДатаНачала);
                КонецЕсли;
                
            КонецЕсли;
            
            ДатаНачала    = КонецКвартала(ДатаНачала)+1;
            ПервыйОбход    = Ложь;    
            
        КонецЦикла;
        
    КонецЕсли;
        
    
    Возврат ТаблицаЗначений;
    
КонецФункции
Показать
RealSurfer; +1 Ответить
98. Shefer 3 12.03.20 10:38 Сейчас в теме
(97) Спасибо, конечно, но я имела в виду типовую функцию общего модуля. Задача нетривиальная для ЗУП. Не хотелось городить свои процедуры, зная, что где-то в типовом коде этот вопрос уже решен.
99. ukunad 1 16.03.20 13:58 Сейчас в теме
(96)
ЗарплатаКадрыОбщиеНаборыДанных.ЗапросВТПериоды()
100. Shefer 3 16.03.20 14:27 Сейчас в теме
(99)
ЗарплатаКадрыОбщиеНаборыДанных.ЗапросВТПериоды()

Спасибо!
101. пользователь 26.03.20 15:27
Сообщение было скрыто модератором.
...
102. tamepjlah 3 03.04.20 09:56 Сейчас в теме
В получить данные бухгалтерского учета (организации, подразделения, сотрудника, начисления) в примере 1
ОтражениеЗарплатыВБухучете.СоздатьВТСведенияОБухучетеЗарплатыСотрудников(МенеджерВременныхТаблиц, "ВТСотрудники", "Сотрудник,Период", КадровыеДанныеСотрудника[0].Организация);

в версии ЗУП 3.1.12.144 не экспортная, в версии 3.1.13.145 уже экспортная.
103. tpash 5 29.04.20 14:05 Сейчас в теме
Коллеги приветствую.
А можно как то штатно получить стаж работы во вредных условиях?
104. GeterX 1319 29.04.20 14:17 Сейчас в теме
(103) можно получить все стажи сотрудника, а уж потом отобрать нужный.

ТаблицаСтажей = КадровыйУчетРасширенный.СведенияОСтажахСотрудников(ТаблицаСотрудников);
105. vanoono 15.05.20 16:03 Сейчас в теме
Думаю нужно упомянуть что перечень всех полей которые доступны для использования в механизме описан в модуле КадровыйУчетВнутренний Область КадровыеДанныеСотрудников в комментарии к первой процедуре области перечисленны все.
// Формирует временную таблицу, содержащую поля с запрашиваемыми кадровыми данными сотрудников, в том числе носящими
// периодический характер.
// Содержит обязательные поля Сотрудник, ФизическоеЛицо и Период, соответствующие переданным во временной таблице
// отборов.
//
// Параметры:
//	ТолькоРазрешенные 	- Булево, если Истина то текст запроса будет построен с использованием
//						  ключевого слова РАЗРЕШЕННЫЕ.
//	ОписательВременнойТаблицыОтборов - структура, описывающая временную таблицу, служащую фильтром
//						  по сотрудникам для получения кадровых данных 
//						  см. КадровыйУчет.ОписаниеВременнойТаблицыОтборовСотрудников.
//	КадровыеДанные - Строка, перечисление имен кадровых данных, разделенных запятыми.
//				   - Массив, содержащий строки имен кадровых данных.
//  ФормироватьСПериодичностьДень - Булево, при получении кадровых данных, хранящихся в периодических
//						  регистрах сведений с периодичностью менее чем День, значение Истина позволяет 
//						  отбирать самое последние значения в пределах дня.
//	ИсточникиДанных	- Соответствие, содержит служебную информацию об используемых в построении запроса
//						источниках данных
//  ИмяВТПостоянныеКадровыеДанныеСотрудников - Строка, указывает оригинальное имя временной таблицы,
//						  формируемой методом.
//
//	Список полей, допустимых в параметре КадровыеДанные, если сведений в базе данных нет, возвращается
//  		NULL, исключения приведены в скобках, поле указания типа кадровых данных.
//
//			- Все имена кадровых данных физических лиц (см. ЗапросВТКадровыеДанныеФизическихЛиц).
//
//			- Все имена кадровых данных, разрешенных для метода ЗапросВТПостоянныеКадровыеДанныеСотрудников.
//
//			Информация о рабочем месте.
//			- РабочееМестоПериодРегистрации	- Дата
//			- РабочееМестоРегистратор		- ДокументСсылка
//			- Организация 					- СправочникСсылка.Организации
//			- Подразделение 				- СправочникСсылка.ПодразделенияОрганизаций
//			- Должность 					- СправочникСсылка.Должности
//			- ВидЗанятости 					- ПеречисленияСсылка.ВидыЗанятости
//			- ВидСобытия 					- ПеречисленияСсылка. ВидыКадровыхСобытий
//			- КоличествоСтавок				- Число, в этой конфигурации всегда 1.
//			- ДолжностьПоШтатномуРасписанию	- СправочникСсылка.ШтатноеРасписание
//			- ВидДоговора					- ПеречислениеСсылка.ВидыДоговоровССотрудниками
//			- МестоВСтруктуреПредприятия	- СправочникСсылка.СтруктураПредприятия.
//
//			- РазрядКатегорияПериодРегистрации	- Дата
//			- РазрядКатегорияРегистратор		- ДокументСсылка
//			- РазрядКатегория					- СправочникСсылка.РазрядыКатегорииДолжностей.
//
//			- ПКУПериодРегистрации			- Дата
//			- ПКУРегистратор				- ДокументСсылка
//			- ПКУ							- СправочникСсылка.РазрядыКатегорииДолжностей.
//
//			- СостояниеПериодРегистрации	- Дата
//			- Состояние						- ПеречислениеСсылка.СостоянияСотрудника.
//
//			- ТерриторияПериодРегистрации	- Дата	
//			- ТерриторияРегистратор
//			- Территория							- СправочникСсылка.ТерриторииВыполненияРабот.
//
//			Информация о свойствах рабочего места.
//			- ЯвляетсяЧленомЛетногоЭкипажа 			- Булево (Ложь)
//			- ЯвляетсяШахтером 						- Булево (Ложь)
//			- ЯвляетсяФармацевтом 					- Булево (Ложь)
//			- ЯвляетсяРаботникомСДосрочнойПенсией 	- ПеречислениеСсылка.ВидыРаботСДосрочнойПенсией
//														(Перечисления.ВидыРаботСДосрочнойПенсией.ПустаяСсылка).
//			- ЯвляетсяЧленомЭкипажаСуднаПодФлагомРФ - Булево (Ложь)
//			- ТарифнаяСетка							- СправочникСсылка.ТарифныеСетки
//			- ТарифнаяСеткаНадбавки					- СправочникСсылка.ТарифныеСетки
//			- КлассныйЧинРангДолжности				- СправочникСсылка.КлассныеЧиныРанги.
//
//			Информация об оплате труда.
//			- ОплатаТрудаПериодЗаписи	- Дата
//			- ОплатаТрудаРегистратор	- ДокументСсылка
//			- ТарифнаяСтавка 			- Число
//			- ФОТ 			 			- Число
//			- Надбавка 		 			- Число, в этой конфигурации всегда 0.
//			- ОсновноеНачисление		- ПланВидовРасчета.Начисления
//			- ПоказательТарифнойСтавки	- СправочникСсылка.ПоказателиРасчетаЗарплаты.
//
//			- СовокупнаяТарифнаяСтавкаПериодРегистрации	- Дата
//			- СовокупнаяТарифнаяСтавкаРегистратор		- ДокументСсылка
//			- СовокупнаяТарифнаяСтавка					- Число
//			- ВидСовокупнойТарифнойСтавки				- ПеречислениеСсылка.ВидыТарифныхСтавок.
//
//			- ПорядокРасчетаСтоимостиЕдиницыВремениПериодРегистрации	- Дата
//			- ПорядокРасчетаСтоимостиЕдиницыВремениРегистратор			- ДокументСсылка
//			- ПорядокРасчетаСтоимостиЕдиницыВремени						- ПеречислениеСсылка.ПорядокРасчетаСтоимостиЕдиницыВремениОплатыТруда.
//
//			- ГрейдПериодРегистрации	- Дата
//			- ГрейдРегистратор			- ДокументСсылка
//			- Грейд						- СправочникСсылка.Грейды.
//
//			- ГрафикРаботыПериодРегистрации		- Дата
//			- ГрафикРаботыРегистратор			- ДокументСсылка
//			- ГрафикРаботы						- СправочникСсылка.ГрафикиРаботыСотрудников
//			- СуммированныйУчетРабочегоВремени	- Булево.
//
//			- ДоляНеполногоРабочегоВремени	- Число
//
//			- АвансПериодРегистрации		- Дата
//			- АвансРегистратор		- ДокументСсылка
//			- СпособРасчетаАванса	- ПеречислениеСсылка.СпособыРасчетаАванса
//			- Аванс					- Число.
//
//			- ЗарплатныйПроектДатаОткрытияЛицевогоСчета	- Дата
//			- ЗарплатныйПроектРегистратор				- ДокументСсылка.ПодтверждениеОткрытияЛицевыхСчетовСотрудников
//			- ЗарплатныйПроект							- СправочникСсылка.ЗарплатныеПроекты
//			- НомерЛицевогоСчета						- Строка.
//
//			Информация об учете затрат.
//			- УчетЗатратПериодРегистрации		- Дата
//			- СтатьяФинансирования 				- СправочникСсылка.СтатьиФинансированияЗарплата
//			- СпособОтраженияЗарплатыВБухучете 	- СправочникСсылка.СпособыОтраженияЗарплатыВБухУчете
//			- ОтношениеКЕНВД 					- ПеречислениеСсылка.ОтношениеКЕНВДЗатратНаЗарплату
//			- УчетЗатратДокументОснование 		- ДокументСсылка.ПриемНаРаботу.
//
//			Основные данные контрактов, договоров сотрудников.
//			- ДатаДоговораКонтракта			- Дата, так же поддерживается идентификатор ТрудовойДоговорДата
//			- НомерДоговораКонтракта		- Строка, так же поддерживается идентификатор ТрудовойДоговорНомер
//			- ДатаНачала					- Дата
//			- ПоступлениеНаСлужбуВпервые	- Булево.
//
//			Сведения контракта, договора сотрудника.
//			- ПредставительНанимателя			- СправочникСсылка.ФизическиеЛица
//			- ДолжностьПредставителяНанимателя	- СправочникСсылка.Должности
//			- ОснованиеПредставителя			- Строка
//			- ВидАктаГосоргана					- Строка
//			- ДатаОкончания						- Дата
//			- СрочныйДоговор					- Булево
//			- СрокЗаключенияДоговора			- Строка
//			- ОборудованиеРабочегоМеста			- Строка
//			- ИныеУсловияДоговора				- Строка
//			- ОснованиеСрочногоДоговора			- СправочникСсылка.ОснованияЗаключенияСрочныхКонтрактовГосслужащих
//												- СправочникСсылка.ОснованияЗаключенияСрочныхДоговоровМуниципальныхСлужащих
//												- СправочникСсылка.ОснованияЗаключенияСрочныхТрудовыхДоговоров.
//			
//			Информация о классах условий труда по результатам специальной оценки на рабочем месте.
//			- КлассУсловийТрудаПериодРегистрации		- Дата
//			- КлассУсловийТруда							- ПеречислениеСсылка.КлассыУсловийТрудаПоРезультатамСпециальнойОценки
//			- КлассУсловийТрудаДатаРегистрацииИзменений	- Дата.
Показать
106. ABit 29.05.20 07:41 Сейчас в теме
Автор, опубликуй такой вариант получения истории сотрудника за произвольный период, Ваш пример слишком "тяжелый"
В коде получаем "Состояние"

Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	
	// Создание таблицы дней
	ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТПериоды(
		Запрос.МенеджерВременныхТаблиц,
		НачалоДня(Объект.ДатаНачала),
		КонецДня(Объект.ДатаОкончания),
		"ДЕНЬ",
		"Дата",
		"Календарь");
		
	ПараметрыПолучения = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛи­ц();
	ПараметрыПолучения.Организация = Объект.Организация;
	ПараметрыПолучения.НачалоПериода =  НачалоДня(Объект.ДатаНачала);
	ПараметрыПолучения.ОкончаниеПериода = КонецДня(Объект.ДатаОкончания);
	ПараметрыПолучения.КадровыеДанные = "ДатаПриема,ДатаУвольнения,Состояние";
	ПараметрыПолучения.СписокФизическихЛиц = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Справочники.Сотрудники.НайтиПоНаименованию("Иванов Иван Иванович").ФизическоеЛицо);
	
	КадровыйУчет.СоздатьВТСотрудникиОрганизации(
		Запрос.МенеджерВременныхТаблиц,
		Истина,
		ПараметрыПолучения);
	
	// Получение кадровых данных по дням периода
	Запрос.Текст =
		"ВЫБРАТЬ
		|	СотрудникиОрганизацииПоОсновномуМестуРаботы.Сотрудник,
		|	СотрудникиОрганизацииПоОсновномуМестуРаботы.Состояние,
		|	СписокДат.Дата КАК Дата
		|ПОМЕСТИТЬ ВТСотрудникиДаты
		|ИЗ
		|	Календарь КАК СписокДат
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСотрудникиОрганизации КАК СотрудникиОрганизацииПоОсновномуМестуРаботы
		|		ПО (ИСТИНА)";
	
	Запрос.Выполнить();
	
	ОписательТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотруднико­в(
		Запрос.МенеджерВременныхТаблиц,
		"ВТСотрудникиДаты",
		"Сотрудник,Дата");
	
	КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательТаблиц, Истина, "Состояние");
	
	Запрос.Текст = 
	"ВЫБРАТЬ ВТКадровыеДанныеСотрудников.* ИЗ ВТКадровыеДанныеСотрудников КАК ВТКадровыеДанныеСотрудников";
	
	ВТСотрудникиИнтервалы = Запрос.Выполнить().Выгрузить();
Показать
109. GeterX 1319 02.06.20 09:41 Сейчас в теме
(106) Спасибо за такой вариант получения истории сотрудников.
Более детально просмотрю и опубликую в статье.
Еще раз спасибо.
SergeySol-82; +1 Ответить
107. kodblack 14 02.06.20 09:12 Сейчас в теме
ЗУП 3.1
Как получить должность?

Делаю:
КадровыйУчет.КадровыеДанныеСотрудников(Истина, СсылкаНаОбъект.Сотрудник.ФизическоеЛицо, "Должность, ДолжностьПоШтатномуРасписанию")

выдает: ТаблицаЗначений
108. GeterX 1319 02.06.20 09:39 Сейчас в теме
(107) Все верно, это процедура возвращает таблицу значений.
После получения таблицы ее можно перебрать в цикле или воспользоваться конструкцией ИмяТЗ[0].Должность, если только у вас возвращается одна запись.
110. kodblack 14 02.06.20 16:41 Сейчас в теме
(108)
ДолжностьСотрудника[0].ДолжностьПоШтатномуРасписанию

{(1)}: Индекс находится за границами массива
111. GeterX 1319 02.06.20 17:29 Сейчас в теме
(110) пришлите полноценный код, а то по обрывкам сложно что-то сказать
112. kodblack 14 03.06.20 09:05 Сейчас в теме
(111)
делаю через https://infostart.ru/public/262490/ Мастер печатных форм
как я понял, реализация через БСП (ее плохо знаю), но инструмент хороший для сложных форм.
Есть возможность вставить функцию. автор молчит.
добавляю функцию: ДолжностьСотрудника
КадровыйУчет.КадровыеДанныеСотрудников(Истина, СсылкаНаОбъект.Сотрудник.ФизическоеЛицо, "Должность, ДолжностьПоШтатномуРасписанию")

вывод на печать: Строка(ДопФункции.ДолжностьСотрудника[0].ДолжностьПоШтатномуРасписанию)

на печать не выводит, а сообщение:
Ошибка в заполнении параметра ДолжностьСотрудникаДательный
{(1)}: Индекс находится за границами массива
113. GeterX 1319 05.06.20 22:03 Сейчас в теме
(112) не работал с этой обработкой. По описанному ничего точного сказать не могу, могу только предположить.
По видимому вам возвращается пустой массив.
Скорее всего ошибка передаваемом значении в функцию.

Наверно должно быть так: КадровыйУчет.КадровыеДанныеСотрудников(Истина, СсылкаНаОбъект.Сотрудник, "Должность, ДолжностьПоШтатномуРасписанию")
115. naty78 08.09.20 15:27 Сейчас в теме
Добрый день.
а можно описание процедуры для получения расчета среднего заработка (справка о доходах)?
116. WeterSoft 111 01.10.20 10:50 Сейчас в теме
КадровыйУчет.ДокументыФизическихЛиц под 0 индексом может выдать все что угодно.
В моем случае выпало "водительское удостоверение"
А учитывая что могут быть введенные вручную типа "паспорт гражданина Российской Федерации" и тд.
Лучше перестраховаться конкретным видом документа:
ВидДокумента = Справочники.ВидыДокументовФизическихЛиц.НайтиПоНаименованию("Паспорт гражданина РФ");
ДанныеФизЛица = КадровыйУчет.ДокументыФизическихЛиц(Выборка.ФизическоеЛицо, Истина, ВидДокумента);
Серия = ДанныеФизЛица[0].Серия;
Номер = ДанныеФизЛица[0].Номер;
...
 
117. ivnik 583 07.10.20 23:35 Сейчас в теме
"//Функция возвращает актуальные плановые начисления сотрудников на заданную дату в виде таблицы значений

ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудника(Сотрудник, ТекущаяДата(),,); "
По описанию должна выйти Таблица значений, а на выходе Соответствие. Отсюда вопрос: как это Соответствие преобразовать в таблицу значений???
Спасибо!
118. GeterX 1319 08.10.20 10:01 Сейчас в теме
(117) Такой вариант хранения данных нужен из-за того что у начисления может быть множество показателей.
В ТЗ только перебором в цикле.
119. ivnik 583 10.10.20 16:33 Сейчас в теме
(118) Спасибо, разобрался, получилось!
Попробовал "для списка сотрудников", тут выдает ошибку:
{ВнешняяОбработка.КонтрольИндексации.Форма.Форма.Форма(208)}: Метод объекта не обнаружен (ТекущиеНачисленияСотрудников)
ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудников(МассивСотрудник, Объект.ДатаПроверки,,);
В глобальном модуле эта функция есть, МассивСотрудник - это массив, т.е. параметры вроде правильно заданы, не пойму, в чем проблема??? А мне нужны оба метода. (Я пытаюсь получить само Начисление и Размер/сумму).
У меня релиз платформы; 8.3.17.1386, конфигурации 3.1.15.67
Заранее спасибо!
120. GeterX 1319 10.10.20 18:23 Сейчас в теме
(119) эта ошибка из-за того что метод не экспортный.
Либо используйте Теку...Сотрудника или скопируйте функцию к себе в обработку.
121. ivnik 583 10.10.20 23:52 Сейчас в теме
122. Matveymc 148 21.10.20 15:38 Сейчас в теме
Спасибо большое за публикацию! Очень помогает в работе.
123. Andrey12345 16.12.20 12:20 Сейчас в теме
Добрый день, спасибо за статью, очень пригодилась. Подскажите пожалуйста, часть описанных процедур и функций в статье относиться к служебному программному интерфейсу, то есть не поддерживается совместимость при переходе на новый релиз. Можно ли использовать такие процедуры и функции при разработке нового функционала в ЗУП 3.1, если конфигурация не снята с поддержки, а новый функционал добавляется с помощью расширения конфигураций?
126. GeterX 1319 17.12.20 16:51 Сейчас в теме
(123) Использовать можно с полной уверенность, только если нужная процедура находится в области "#Область ПрограммныйИнтерфейс"
124. ABit 17.12.20 16:12 Сейчас в теме
Автор, а как можно красиво получить МестоПолученияДохода? Это может быть как подразделение, так и территория выполнения работ. Нет глобальной функции?
125. GeterX 1319 17.12.20 16:48 Сейчас в теме
(124)
// Подготовим Запрос и Менеджер временных таблиц.
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	
// Сформируем временную таблицу ВТКадровыеДанныеФизическихЛиц.
СоздатьНаДатуВТКадровыеДанныеСотрудников(Запрос.МенеджерВременныхТаблиц, ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных, ПоляОтбораПериодическихДанных, ФормироватьСПериодичностьДень);
	

КадровыеДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Истина, 
    ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Строка), 
    "Организация,ФизическоеЛицо,ТабельныйНомер,Подразделение,Должность,ВидЗанятости,ДолжностьПоШтатномуРасписанию,КоличествоСтавок,ДатаПриема,ДатаУвольнения,ГрафикРаботы,СтатьяФинансирования, РазрядКатегория ", ТекущаяДата());
Показать


Точное название запрашиваемого реквизита посмотрите в описании процедур:
КадровыйУчетВнутренний.ЗапросВТКадровыеДанныеСотрудников()
КадровыйУчетВнутренний.ЗапросВТПостоянныеКадровыеДанныеСотрудников()
127. ABit 17.12.20 18:04 Сейчас в теме
(125) ну так и я могу, думал может есть готовая функция типа ПолучитьМестополучениядохода()
128. GeterX 1319 17.12.20 18:13 Сейчас в теме
(127) думаю что разработчики не склонны плодить функции с одинаковыми возвращаемыми данными, они за универсальность процедур и функций.
129. ABit 17.12.20 18:24 Сейчас в теме
(128) ну скажем так Штатно поле заполняется через МенеджерРасчета.ЗаполнитьСведенияНачисленийДляРасчета(ТаблицаРасчета)
Меньше кода через кадровыеданные конечно.
131. ArtManis 16.07.21 13:47 Сейчас в теме
Чтобы не изобретать велосипед, есть ли функция бсп, которая возвращает график работы прописью? Пример: "пятидневная рабочая неделя с понедельника по пятницу, выходные дни – суббота и воскресенье;"
132. GeterX 1319 16.07.21 14:18 Сейчас в теме
(131) такое точно не попадалось.
133. GeterX 1319 28.07.21 19:21 Сейчас в теме
Обновилась статья:

1. Функция по склонению фразы типа "календарных дней"

// возвращает "8 календарных дней"
Функция ФормаМножественногоЧислаДней(КоличествоДней)
	
// Функция преобразует строку к множественному числу
//
// Параметры: 
//  Слово1 - форма слова в ед числе      ("шкаф")
//  Слово2 - форма слова для числит 2-4  ("шкафа")
//  Слово3 - форма слова для числит 5-10 ("шкафов")
//  ЦелоеЧисло - целое число.
//
// Возвращаемое значение:
//  строку - одну из строк в зависимости от параметра ЦелоеЧисло.
//
// Описание:
//  Предназначена для формирования "правильной" подписи к числительным.
//
	Возврат "" + КоличествоДней + ПерсонифицированныйУчет.ФормаМножественногоЧисла(НСтр("ru = ' календарный день'"), НСтр("ru = ' календарных дня'"), НСтр("ru = ' календарных дней'"), КоличествоДней);
	
КонецФункции
Показать


2. Получаем интервалы работы сотрудников за заданный период
подробнее см. в статье
	Если ТипЗнч(Сотрудник) <> Тип("Массив") Тогда	
		СписокСотрудников = Новый Массив();
		СписокСотрудников.Добавить(Сотрудник);
	Иначе
		СписокСотрудников = Сотрудник;
	КонецЕсли;
	
	Запрос = Новый Запрос();
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	
	ПараметрыПолученияРабочихМест = КадровыйУчет.ПараметрыДляЗапросВТРабочиеМестаСотрудниковПоСпискуСотрудник­ов(СписокСотрудников, Объект.МесяцНачисления, КонецМесяца(Объект.МесяцНачисления));
	ПараметрыПолученияРабочихМест.Организация = Объект.Организация;
	// Получаем рабочие места сотрудников
	КадровыйУчет.СоздатьВТРабочиеМестаСотрудников(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияРабочихМест);

	//ВТРабочиеМестаСотрудников= Запрос.МенеджерВременныхТаблиц.Таблицы.Найти("ВТРабочиеМестаСотрудников").ПолучитьДанные().Выгрузить();
Показать
134. TrinitronOTV 14 29.07.21 06:42 Сейчас в теме
Есть такая же статья для Бухгалтерии предприятия 3.0 ?
135. GeterX 1319 30.07.21 13:04 Сейчас в теме
(134) К сожалению такого не попадалось.
136. MaximKor 20 24.09.21 07:58 Сейчас в теме
Коллеги, доброго дня! Подскажите, пожалуйста, метод "Получить начисленную зарплату" не работает за прошлые периоды? Мне например нужно получить зарплату по сотруднику за 2020 год, все таблицы возвращаются пустыми. Хотя сотрудник в компании на тот момент работал и ему была начислена и выплачена зарплата.
starovton; +1 Ответить
141. ixijixi 1801 14.04.22 10:59 Сейчас в теме
(136) Если речь о методе РасчетЗарплатыРасширенный.ДанныеДляЗаполненияТаблицДокумента, то он вернет пустые таблицы, если зарплата за период уже начислена.
137. Shipilov_ivan 01.12.21 10:51 Сейчас в теме
Много полезного для себя нашел, то что приходилось писать вручную, тратить время. Спасибо огромное!
138. van_za 246 10.02.22 12:51 Сейчас в теме
140. pvt071 06.04.22 17:10 Сейчас в теме
Спасибо огромное! Однозначно сразу в избранное!
142. ixijixi 1801 14.04.22 11:01 Сейчас в теме
Коллеги, нужно получить % надбавки за стаж на определенную дату. Есть готовый метод? Поиском по конфигурации, публикации и интернету не нашел.
143. GeterX 1319 14.04.22 12:02 Сейчас в теме
144. ixijixi 1801 14.04.22 12:06 Сейчас в теме
(143) Да. Есть показатель условно "Выслуга", в нем шкала. Сотруднику дано плановое начисление условно "Надбавка за выслугу", где в формуле участвует показатель Выслуга. Надо узнать % надбавки
145. GeterX 1319 14.04.22 12:28 Сейчас в теме
(144) Делал что-то в этом духе:


Функция ПолучитьОплату(ДокументПечати,ИдентификаторСтрокиСотрудника,Ставка, Сотрудник, ДатаНачала)
	
	ПредставлениеТарифнойСтавки = "";
	
	ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудника(Сотрудник, КонецДня(ДатаНачала),,);
	
	Для Каждого Строка Из ТекущиеДанныеОплатыТруда Цикл
		
		Размер = Строка.Значение[0].Размер;
		
		Для Каждого СтрокаП Из Строка.Значение[0].Показатели Цикл
			
			РазмерП = "";
			
			Если СтрокаП.Ключ = Строка.Значение[0].ОсновнойПоказатель Тогда
				
				Если СтрокаП.Ключ.Идентификатор = "Оклад" Тогда
					
				ИначеЕсли СтрНайти(СтрокаП.Ключ.Идентификатор, "Стаж") Тогда
					
					ТаблицаСотрудников = Новый ТаблицаЗначений();
					ТаблицаСотрудников.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
					ТаблицаСотрудников.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
					
					СтрокаТС = ТаблицаСотрудников.Добавить();
					СтрокаТС.Сотрудник = Сотрудник;
					СтрокаТС.Период = КонецДня(ДатаНачала);
					
					
					ТаблицаСтажей = КадровыйУчетРасширенный.СведенияОСтажахСотрудников(ТаблицаСотрудников);
					
					Для каждого СтрокаТС Из ТаблицаСтажей Цикл
						
						Для каждого СтрокаТС_Все Из СтрокаТС.Значение Цикл
							
							Если СтрокаТС_Все.Ключ = СтрокаП.Ключ.ВидСтажа Тогда
								
								
								Для каждого СтрокаШкалыСтажа Из СтрокаП.Ключ.ШкалаОценкиСтажа Цикл
									
									
									Если СтрокаШкалыСтажа.ВерхняяГраницаИнтервалаСтажа >= (СтрокаТС_Все.Значение.Лет*12) Тогда
										
										РазмерП = " (" + СтрокаШкалыСтажа.ЗначениеПоказателя + "%)";	
										
										Прервать;
										
									КонецЕсли;
									
									Если СтрокаШкалыСтажа.НомерСтроки = СтрокаП.Ключ.ШкалаОценкиСтажа.Количество()  Тогда
										
										РазмерП = " (" + СтрокаШкалыСтажа.ЗначениеПоказателя + "%)";	
										
									КонецЕсли;
									
									
								КонецЦикла;
								
								
							КонецЕсли;	
							
						КонецЦикла;	
						
					КонецЦикла;
					
				Иначе
					
					РазмерП = " (" + СтрокаП.Значение + "%)";
					
				КонецЕсли;
				
			КонецЕсли;
			
			
		КонецЦикла;
		
		
		ПредставлениеТарифнойСтавки = ПредставлениеТарифнойСтавки + Строка.Ключ + " " + Размер + РазмерП + Символы.ПС;	
		
	КонецЦикла;
	
	
	Возврат ПредставлениеТарифнойСтавки;
	
КонецФункции


Показать
146. ixijixi 1801 14.04.22 12:45 Сейчас в теме
(145) Спасибо. Рассчитывал на типовую =)
147. GeterX 1319 14.04.22 14:25 Сейчас в теме
(146) я тоже долго искал, но ничего внятного найти не удалось.
148. ixijixi 1801 14.04.22 14:39 Сейчас в теме
(147) Аналогично. Можно конечно выпотрошить Менеджер расчета, но там такая дичь!
149. Velostrannik 202 18.04.22 11:28 Сейчас в теме
Спасибо больше дружище!
Этот сборник стандартных процедур и функций спас меня!!!
150. ivnik 583 23.04.22 16:59 Сейчас в теме
Добрый день!
В ЗУП-3.1 есть такая замечательная функция:
ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудника(Сотрудник, ТекущаяДата(),,);

ТекущиеДанныеОплатыТруда - это Соответствие. Кто-нибудь может сказать, как это Соответствие "конвертировать" в Таблицу значений? Содержимое вижу, а "вынуть" значения мозгов не хватает. Заранее спасибо!
151. den-se 16.05.22 11:36 Сейчас в теме
Спасибо за труды! Очень помогла статья!
152. gucci76 364 29.06.22 14:28 Сейчас в теме
ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудников(МассивСотрудник, ТекущаяДата(),,);

Что то в 3.1.18.521 релизе ЗУП не могу найти этой функции

ПС МильПардон - нашел
153. GeterX 1319 12.07.22 13:08 Сейчас в теме
Коллеги, Добрый день!

В 1С переношу данные из Паруса 10, в нем не удалось найти сведения по отработанному времени расчета среднего для отпуска.
Да и как правило в Парусе очень много ошибок в среднем.
Поэтому стоит такая задача рассчитать отработанное время непосредственно в 1С по перенесенным начислениям (вытеснения все настроены).
Никто не сталкивался с такой задачей?

Собственно надо рассчитать следующие значения:
ОтработаноДней
ОтработаноЧасов
ОтработаноДнейШестидневка
ОтработаноДнейПятидневка
ОтработаноЧасовПятидневка
ОтработаноДнейКалендарных
154. atb-mdv 13.07.22 20:11 Сейчас в теме
Добрый день. Нет ли функции для подсчета испытательного срока?
155. GeterX 1319 20.07.22 10:51 Сейчас в теме
(154) такой функционал есть только в КОРП версии.
К сожалению его позаимствовать из КОРП нельзя, т.к. это целая подсистема с регистрами и документами.
156. WorkerPavel 21.07.22 19:08 Сейчас в теме
Есть кошерный способ получить фактический адрес организации? Аналог ПолныйАдрЮР. А то АдрФакт возвращает какую то дичь которую в отчёт подставить страшно.
157. GeterX 1319 21.07.22 19:17 Сейчас в теме
(156) А что возвращает xml или что?
158. WorkerPavel 21.07.22 20:40 Сейчас в теме
(157)Возвращает "643,Индекс,Москва г,,,,НаименованиеУлицы ул,2,91,3 пом. 03,дом,строение,этаж" т.е. адрес в неком формате "АдресВФормате9Запятых".
Хотелось бы без кучи запятых посередине и не понятного перечисления реквизитов в конце.
Пока сделал так:
СведенияОбОрганизации = РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации(КадровыеДанные.Организация, КадровыеДанные.ДатаПриема, Сведения);
	МассивВидовКонтактнойИнформацииОрганизации = Новый Массив;
	МассивВидовКонтактнойИнформацииОрганизации.Добавить(Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
	МассивВидовКонтактнойИнформацииОрганизации.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресОрганизации);
	//МассивВидовКонтактнойИнформацииОрганизации.Добавить(Справочники.ВидыКонтактнойИнформации.ПочтовыйАдресОрганизации);
	КонтактнаяИнформацияОрганизации = КонтактнаяИнформацияБЗК.КонтактнаяИнформацияОбъектов(КадровыеДанные.Организация,, МассивВидовКонтактнойИнформацииОрганизации, КадровыеДанные.ДатаПриема);
	АдресЮридический = КонтактнаяИнформацияБЗК.ПредставлениеКонтактнойИнформации(КонтактнаяИнформацияОрганизации, КадровыеДанные.Организация, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
	АдресФактический = КонтактнаяИнформацияБЗК.ПредставлениеКонтактнойИнформации(КонтактнаяИнформацияОрганизации, КадровыеДанные.Организация, Справочники.ВидыКонтактнойИнформации.ФактАдресОрганизации);
	СведенияОбОрганизации.Вставить("ПолныйАдрФакт", АдресФактический);
Показать
159. WorkerPavel 21.07.22 20:52 Сейчас в теме
(156)Ещё как выяснилось РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации для городов федерального значения для реквизита "ОргГород" возвращает пустое значение. Город приходится брать из "ОргСубъект"
160. GeterX 1319 21.07.22 22:01 Сейчас в теме
(159) можно немного по другому:

//Адрес в виде представления и в формате xml и json
КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Объект.Организация,"",ТекущаяДата(),Ложь);

//Переобразуем в структуру, если надо
СведенияОбАдресе = РаботаСАдресами.СведенияОбАдресе(КонтИнформация[0].ЗначенияПолей);



Подробнее как работать с контактной информаций разобрано в статье: https://infostart.ru/1c/articles/1260421/
Там и сразу можно отбор установить на нужные данные.
Прикрепленные файлы:
161. Hla 82 25.07.22 08:46 Сейчас в теме
Добрый день. В публикации описан способ получения среднего заработка для отпуска. А как получить средний для командировки, простоя?
162. hanio 54 01.08.22 14:10 Сейчас в теме
подскажите а почему простые не описаны способы например получение оклада, получение должности и тому подобное или считаете что это уже ниже плинтуса описывать?
163. ubnkfl 05.08.22 15:26 Сейчас в теме
(162) Это всё описано. В вашем случае - это получение кадровых данных "ТарифнаяСтавка,Должность".
164. hanio 54 19.08.22 00:57 Сейчас в теме
Спасибо, только начинаю разбираться с ЗУП 3.1, подскажите а как получить оклад сотрудника?
165. GeterX 1319 19.08.22 08:55 Сейчас в теме
(164)
Смотрите получение плановых начислений или получение кадровых данных реквизит тарифная ставка.
166. WorkerPavel 06.09.22 17:46 Сейчас в теме
В разделе "Получить работающих сотрудников" лишний код:

	СтруктураДанных = Новый Структура();
	
	СтруктураДанных.Вставить("ДатаНачала",);
	СтруктураДанных.Вставить("ДатаОкончания",);
	СтруктураДанных.Вставить("РазмерОклада",);
167. user1732300 17.11.22 16:34 Сейчас в теме
Добрый день! Как получить все зарплатные проекты сотрудников? У каждого сотрудника может быть несколько зарплатных проектов.
Процедура КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников возвращает по одному зарплатному проекту на сотрудника:

Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ВТОсновныеСотрудникиФизическихЛиц.Сотрудник КАК Сотрудник,
	|	ДАТАВРЕМЯ(1, 1, 1) КАК Период
	|ПОМЕСТИТЬ ВТСотрудники
	|ИЗ
	|	ВТОсновныеСотрудникиФизическихЛиц КАК ВТОсновныеСотрудникиФизическихЛиц";
	Запрос.Выполнить();
	
	ОписательВременныхТаблиц = 
	КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотруднико­в(
	МенеджерВременныхТаблиц, 
	"ВТСотрудники",
	"Сотрудник,Период");
	
	КадровыеДанные = "ЗарплатныйПроект";
	КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(
	ОписательВременныхТаблиц,
	Истина,
	КадровыеДанные);
Показать
170. GeterX 1319 24.11.22 21:08 Сейчас в теме
(167) Мне не попадались такие процедуры, в типовом исполнении можно получить текущий зарплатный проект и последний лицевой счет (выбирается максимальный по дате).

Есть нечто похожее но возвращает ТЗ СпособыПрямыхВыплатФСС.ТаблицаЗарплатныхПроектовИБанковскихСчетов(ФизическиеЛица)
168. Student1C 57 24.11.22 18:53 Сейчас в теме
Как корректно получить Банковские реквизиты организации?
169. GeterX 1319 24.11.22 20:55 Сейчас в теме
(168) а разве для Организации есть хранение Банковских реквизитов? Откуда вы хотите получить эти данные?
Насколько помню, банковские реквизиты можно вводить только в нескольких документах связанных с возмещением ФСС,
и то там алгоритм заполнения реализован на основании последнего введенного документа (данные берутся из последнего документа).
171. Student1C 57 25.11.22 10:00 Сейчас в теме
(169) Хочу получить из Зарплатного проекта, но понимаю, что их может быть несколько...да еще и по разному распределено: на организацию, по подразделениям...
172. WorkerPavel 25.11.22 10:09 Сейчас в теме
(168)В учётной политике есть раздел "Бухучет и выплата зарплаты". Там есть зарплатный проект по умолчанию. Если по умолчанию у вас выплата через зарплатный проект. Ну вот только если эти реквизиты считать банковскими реквизитами организации...
Student1C; +1 Ответить
173. Student1C 57 07.12.22 15:39 Сейчас в теме
А как можно рассчитать Размер по определенному Начислению?
174. ssn5810 79 22.12.22 14:15 Сейчас в теме
Подскажите пож. дополнительные модули, формы с префиксом ДИТ в конфе. ЗКГУ для чего нужны ( например обработка ДИТ_ПодготовкаФорм)
175. ssn5810 79 22.12.22 15:04 Сейчас в теме
(174)Понял добавлять, управлять реквизиты..... через макеты.
176. Torin57 7 01.01.23 21:45 Сейчас в теме
Как получить табличный документ с расчетным листком сотрудника, может кому пригодиться. Печатная форма расчетного листка:
	
Возврат Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток(ФизическоеЛицо, Организация, ДатаНачала);
179. VmvLer 10.07.23 10:25 Сейчас в теме
(178) Боты, с так называемым ИИ, будут "радостно" копипастить отсюда блоки кода и множить трясину хаоса: малоэффективные для бизнеса механизмы, "отчетные" бесполезные в жизни методики, бесконечный ворох бюрократической статусности запретов, согласований, одобрений, прочего "очковтирательства"... в которые бодро погружается мир новых технологий.

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

Хронология: Еще пять лет будем будем тонуть, потом еще пять захлебываться в собственных ошибках, потом еще пять лет "выжившие" будут в растерянности от осознания собственной глупости и стыда. Наконец, спустя 20 лет станут вертеть этот ИИ на здравомом смысле.

Ок, каждые 5 лет спрашивайте меня как дела - всегда рад цинично просветить реальность)
180. GeterX 1319 10.07.23 11:14 Сейчас в теме
(179) ВАШ образ мысли, просто восхищает.
Да, столько лет прошло, а вы все заходите в эту публикацию, следите за комментариями, неожиданно и приятно.
181. Torin57 7 11.07.23 10:56 Сейчас в теме
(180) Ход мыслей в том что если ты не можешь самостоятельно, без такой инструкции как ваша, изучить незнакомую конфигурацию, то тебе не место в 1С. Можешь пойти работать поваром, водителем, но не 1с программистом.

У меня диаметрально противоположная точка. Можно взять на работу в IT бывшего повара, официанта и он будет прекрасно работать. Так ДОЛЖНО быть, но это не так. Экзамен 1С Эксперт по технологическом вопросам в этом плане очень хороший пример почему это не так. За 10 лет экзамен 800 человек. И то, не все в полной мере готовы к практической работе. Это сам экзаменатор на своей лекции рассказал. Потому что это ненормально когда человек разбирается и в железе, и в СУБД, причем в разных СУБД. Естественно что таких людей мало.
Правильный подход в идеале - заниматься ТОЛЬКО ЗУП 3.1, разбираться в методической части и знать наизусть где какая функция лежит и зачем она нужна. Тогда если даже ты не очень умный, то ничего страшного. Выучил наизусть как запрограммировать доплату до оклада и программируешь ее по шаблону в разных организациях. Точно знаешь сколько у тебя часов на это уйдет, говоришь заказчику сколько часов у тебя на это уйдет. И все довольны.
Поэтому иногда быть умным плохо. Ты начинаешь и от себя и от других требовать прыжков выше головы. И ты от этого хода мыслей не откажешься потому что тебе это доставляет. Ты чего-то достиг по жизни, ты не какой-нибудь лошара типа тех 1016 человек которые плюсы к статье поставили.

Кстати, включите, пож-та, в инструкцию как получить табличный документ расчетного листка. По-моему, неочевидно.
   
Возврат Отчеты.АнализНачисленийИУдержаний.РасчетныйЛисток(ФизическоеЛицо, Организация, ДатаНачала);
183. aleksey2 86 16.08.23 11:52 Сейчас в теме
(181)
Выучил наизусть как запрограммировать доплату до оклада

и как же это сделать через БСП ?
184. Torin57 7 16.08.23 12:30 Сейчас в теме
(183) Вроде прямо в форме больничного листа программно рассчитывал и добавлял в ТЧ начисления строчку с начислением "Доплата до оклада". Таким "лоховским" способом действовал. Поэтому даже не подскажу где здесь БСП.
Но было бы интересно услышать как это делать правильно.
182. RealSurfer 35 11.07.23 18:31 Сейчас в теме
Добрый день.
А можно ли получить список сотрудников на указанную дату, находящихся в отпуске по уходу за ребенком?
185. Gaffer 85 13.10.23 00:38 Сейчас в теме
Функция ТекущиеНачисленияСотрудников перестала быть экспортной почему-то. Поэтому блок "Получить действующие плановые начисления на дату" не актуален:

ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудников(МассивСотрудник, ТекущаяДата(),,);
187. Roootru 17.04.24 04:38 Сейчас в теме
Который раз уже пользуюсь данной страничкой как библией по ЗУПу. Спасибо большое автору <3
Оставьте свое сообщение