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

20.02.26

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

В статье размещен список стандартных процедур и функций с примерами, которые могут помочь при разработке (доработке) конфигураций Зарплата и управление персоналом ред. 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


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

Вступайте в нашу телеграмм-группу Инфостарт

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

9675 руб.

27.05.2021    60620    537    129    

374

Кадровый учет 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 2.5 1С:Зарплата и Управление Персоналом 3.x Россия Управленческий учет Платные (руб)

Подключаемый модуль для миграционного учета в конфигурациях 1С:ЗУП и 1С:ЗУП КОРП, по запросу можно адаптировать под 1С:УТ и ERP. Подсистема миграционного учета содержит в себе справочники, документы, отчеты, регистры, которые позволяют вести учет патентов, хранить историю тарифов и отслеживать оплаты. Добавлена интеграция с МВД - возможность автоматической проверки сотрудников по реестру контролируемых лиц (подключение обсуждается отдельно).

52000 руб.

03.07.2025    5338    11    1    

11

Зарплата Консолидация данных 1С:Зарплата и Управление Персоналом 3.x Россия Управленческий учет Платные (руб)

Расширение для создания и настройки обмена с консолидированной базой ЗУП. Код разработки под определенные требования проекта.

85400 руб.

11.07.2025    7147    6    1    

6

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

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

85400 руб.

05.10.2022    14576    17    8    

17

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Аналитик Пользователь Руководитель проекта 1С:Предприятие 8 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Торговля и склад 7.7 Бытовые услуги, сервис Оптовая торговля, дистрибуция, логистика Электротехника и микроэлектроника Управленческий учет Платные (руб)

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

15500 руб.

01.11.2012    108860    137    1    

144

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

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

20740 руб.

28.07.2016    73811    196    160    

160

Зарплата Кадровый учет Бухгалтер 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Предлагаем расширить возможности конфигурации 1С:УНФ 3.0 в части ведения кадрового учета. С помощью данного расширения в конфигурацию будут добавлены новые документы: "Отпуск" и "Командировка". Документы облегчат работу кадровика и расчетчика, а также повысят эффективность работы за счет оптимизации и упрощения процесса ведения учета.

36600 руб.

31.10.2024    4224    4    0    

3
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. lord_soth 293 14.11.18 16:36 Сейчас в теме
Так как адрес физ.лиц в ЗУП 3 хранится в виде XML, то довольно часто требуется получить структуру адреса, пользуюсь вот это типовой функцией, у меня она правда переделана, но суть понятна:
АдресСтруктура = МодульРаботаСАдресами.СведенияОбАдресе(АдресXML, ДополнительныеПараметры);
VKuser2513456; FarhadIlyazov; adhocprog; AliceLight; rusmm93; noon; Lilia; MGraf; GeterX; welder; +10 – Ответить
2. VmvLer 14.11.18 17:16 Сейчас в теме
можно (нужно) потратить день на вдумчивое пролистывание общих модулей ЗУПа с составлением похожих заметок в свой блокнотик(сразу в мозг) - знания станут более глубоки, полезны и свои.

а представленная выборка годна лишь для отчетов и слишком мелка, мое мнение может не совпадать с мнением... и бла бла бла
Aleksey3A; Neuroproton; Qarasique; sukorskis; SlavaKron; acanta; +6 –34 Ответить
3. GeterX 1478 14.11.18 18:15 Сейчас в теме
(2) Вы как более опытный специалист, не могли бы поделиться своими заметками?
Не у всех есть огромный опыт работы с конфигурацией.
Albert_verhoshentsev; rebuzx; user938650; Nior; WeLap; azmon; gucci76; SAGerasimov; teplova; avmironov; burni4; TeMochkiN; Lacoste4life; Anasoft1C; Gendelf; AliceLight; trickster; mrChOP93; asdPerepel; practik1c; olegans; Award; mongiilol; Tolpinski; KEV8383; dbachinsky; Dmitri93; payta; alanto23; ambabas; sansys; Kavar; ivnik; NNomad; haereticus; rintik; Hans; json; +38 – Ответить
4. ixijixi 2177 14.11.18 22:29 Сейчас в теме
(2) Вы все 1150 общих модулей предлагаете пролистать? Не считая прочих
Прикрепленные файлы:
Aleksey3A; rebuzx; WeLap; kaaasteeen; zoikins; Natalia29; avmironov; TeMochkiN; ipzotov; Rjhev; AliceLight; Eillecho; Varozh; titan84clc; nata_v_m; Nelli_A86; olegans; mongiilol; alanto23; NNomad; +20 – Ответить
6. json 3438 15.11.18 06:40 Сейчас в теме
(2) у вас есть возможность выложить свою выборку, годную не только для отчетов.
Но вы ею скорее всего не воспользуютесь, потому что гундеть на чужие статьи это одно, а написать свою это совсем другое.
newsleon; rebuzx; user600203_7377360; irtk; natal_tihom; Nior; azmon; gucci76; Santa1; kaaasteeen; VitaliyCeban; user2075496; SAGerasimov; user1937902; teplova; avmironov; _SeA; TeMochkiN; Lacoste4life; ipzotov; Anasoft1C; Gendelf; AliceLight; mrChOP93; VAAngelov; cefey-kurgan; u_n_k_n_o_w_n; maxdmt; titan84clc; shalupov61; savinkoff; kulabuha; itoptimum; olegans; adamst; alanto23; d4rkmesa; tulakin_s; gradi; Kavar; NNomad; NatalkaBal; +42 – Ответить
8. VmvLer 15.11.18 08:55 Сейчас в теме
(6) совершенно верно, гундеть дело нужное и правильное - это хоть как-то может задержать вал Г-кода!
Goggy; Qarasique; +2 –10 Ответить
9. json 3438 15.11.18 09:21 Сейчас в теме
(8)а вы не выкладывайте Г-код, выкладывайте нормальный.
Смотрю вы на ходу показания меняете, то не устраивает количество функций, а теперь уже вы беспокоитесь за качество кода.

Сначала покажите свою компетентность, а потом критикуйте других. А так получается просто троллинг. Таких умников много, только их комментарии доверия не вызывают.
newsleon; rebuzx; VitaliyCeban; user693240_abramovskaya; avmironov; user1586879; TeMochkiN; Anasoft1C; AliceLight; xslava2008; titan84clc; kulabuha; asdPerepel; alanto23; +14 – Ответить
11. VmvLer 15.11.18 10:01 Сейчас в теме
(9) Я не нуждаюсь в вашем доверии. И тут выражают мнения.

Если с моим мнением кто-то не согласен, то это повод приводить контраргументы,
а не пенять на компетентность. Если бомбит - идите отчитайте своих подчиненных,
возьмите с них показания, наконец.
Goggy; Qarasique; +2 –9 Ответить
12. json 3438 15.11.18 10:16 Сейчас в теме
(11)
вот мои контраргументы:
человек постарался и выложил статью. Потратил свое свободное время на то, чтобы поделиться с другими.
Но ему пишут типа: молодец конечно, но это не то что нужно (а представленная выборка годна лишь для отчетов и слишком мелка). Это вы называете контраргументом? И где тут конструктив?

Каков итог? Он больше не будет ничего выкладывать, потому что осадок остается, и пропадает желание делиться с другими.
А мне как разработчику выгодно, чтобы появлялись такие статьи с наработками. Тем более, что у автора нет Г-кода, как вы его назвали. Лучше статьи зарабатывают высокий рейтинг и другие смогут использовать чужие наработки.

А теперь аргументируйте свое нытье. Если вы умеете рассуждать логически, то ожидаю от Вас контраргументов. А если это просто задето Ваше ЧСВ, то можете сделать из этого вывод или не сделать.
irtk; WeLap; gucci76; Santa1; marinelle; kaaasteeen; R8s; uk512; DrMatroskin; user1660981; Mx00; al5prog; user1541233; myvik; teplova; avmironov; _SeA; yekaterinaryzhova; user1586879; TeMochkiN; Anasoft1C; Anchoret; Raskad; yegorovnv; AliceLight; Наиля; Varozh; Pete; dassin; titan84clc; portalUg; kulabuha; Hirondelle; Feelthis; Award; mongiilol; snood; dbachinsky; d4rkmesa; Kavar; MikStyle; NNomad; +42 – Ответить
15. VmvLer 15.11.18 10:56 Сейчас в теме
(12)
а представленная выборка годна лишь для отчетов и слишком мелка

да это мое мнение, лаконичное и понятное.

И в ответ на это я не увидел никаких контраргументов от вас и попытки представить
мое мнение как нытье выглядят непорядочно и нелепо.

Добавлю, я по прежнему считаю, что копипастить методы общих модулей в некие
блокнотики - непродуктивно. Образно таких людей называют "кэп" или "Копетан Америка"

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

ах да - это вообще смех:

Каков итог? Он больше не будет ничего выкладывать, потому что осадок остается, и пропадает желание делиться с другими.

Профессиональные разработчики не пятиклассницы чтобы плакать если кому-то не понравился их бант.
Профессионалы берут из критики рациональное зерно и становятся опытнее, а ваш тезис полезен для защиты профанов и халтурщиков.
Goggy; Qarasique; +2 –17 Ответить
17. fxmike 84 15.11.18 12:25 Сейчас в теме
(15)
Просто Ваше мнение выглядит как чуть более детальное КГАМ. Пройди Вы мимо, пользы было ровно столько же.
ansonat; kaaasteeen; RealSurfer; TeMochkiN; AliceLight; titan84clc; user774630; itoptimum; d4rkmesa; Ponommax; json; +11 – Ответить
18. VmvLer 15.11.18 12:29 Сейчас в теме
(17) все верно, но почему это воспринимают в штыки я сам в шоке.
Goggy; Qarasique; +2 –2 Ответить
19. json 3438 15.11.18 12:51 Сейчас в теме
(15)могу сказать, что я своими комментариями убил двух зайцев
- Поддержал автора
- Дал обратную связь троллю, который в следующий раз возможно подумает, прежде чем критиковать других

И то и другое полезно для развития нашего с Вами сообщества.

А какой цели добились вы - решайте сами
rebuzx; Santa1; ansonat; gucci76; Carpenter; Kernel38; R8s; avmironov; TeMochkiN; AliceLight; shoy; Varozh; Pete; Award; alanto23; MGraf; d4rkmesa; mnb-next; NNomad; +19 – Ответить
21. VmvLer 15.11.18 13:18 Сейчас в теме
114. kulabuha 04.08.20 09:56 Сейчас в теме
(19) согласен с вами, автор молодец, я как начинающий разработчик воспользовался этой статьей для создания печатной формы в зуп. а критики не избежать чтобы и какбы ты не делал, найдется человек, которому это не понравиться. так что авторам всех статей терпения и пусть желание поделиться знаниями не угасает никогда!
ansonat; Santa1; Kernel38; avmironov; TeMochkiN; Anasoft1C; AliceLight; cefey-kurgan; Varozh; Pete; +10 – Ответить
23. SlavaKron 17.11.18 13:16 Сейчас в теме
(6) При всём уважении, посыл в (2) верный. Большую часть полезных процедур я почерпнул анализируя модули, которые всплывали в процессе отладки, анализируя экспортные методы, имеющие описание интерфейса в комментарии. Приведённые приёмы в статье будут полезны для начинающих, но чаще требуется всё таки что-то вокруг расчётов – в комментариях увидел более интересную информацию.
Aleksey3A; Goggy; +2 – Ответить
24. json 3438 17.11.18 14:17 Сейчас в теме
(23)не готов с вами спорить по поводу полезности процедур, т.к. ЗУПа не касался уже много лет. Но судя по звездам полезность все таки присутствует.

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

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

Если бы автор второго поста написал бы, что мол "выборка неполная, я бы еще добавил вот такую процедуру, такую и такую". И выложил свои примеры, то это был бы конструктив. Комментатору был бы респект.

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

Ну и по поводу того, что нужно изучать модули - никто ж не спорит. Это приходится делать всем.
Просто некоторые процедуры приходится использовать чаще других. И подход, когда часто используемые процедуры вы ищете в своем блокноте, а не в конфигурации - экономит время. Автор вместо блокнота использует ИС, я тоже так делаю периодически.
TeMochkiN; АннаШ; azmon; gucci76; RealSurfer; avmironov; Raskad; AliceLight; Varozh; kulabuha; cefey-kurgan; Torin57; Nelli_A86; snood; hopter; SvetaH; Dmitri93; alanto23; mnb-next; rybolovlev_ms; +20 – Ответить
73. SanchoD 393 16.07.19 09:15 Сейчас в теме
(2) В ЗУП 3.1 свыше 21 тысячи экспортных процедур/функций. За день вдумчиво пролистать? Ну-ну.
gucci76; kaaasteeen; avmironov; Raskad; AliceLight; Varozh; Pete; Torin57; +8 – Ответить
74. VmvLer 16.07.19 09:59 Сейчас в теме
(73) не вижу сложности.

все таки считаю, что изучать модули и функции проще и удобнее именно в дереве конфигурации.
а эту поделку можно использовать ну разве что один раз для создания реперных точек у себя в голове если вы полный новичок в конфигурации. С опытом дерево модулей удобнее.
75. SanchoD 393 16.07.19 10:13 Сейчас в теме
(74) Понятно дело, что изучать функции придется в конфигурации. Но во-первых, это дело не одного дня. Во-вторых, когда нужна конкретная информация, а времени в обрез, то вдумчивое изучение всех модулей/функций не вариант. Результат (в виде отчета/обработки) нужен уже сейчас.
Andr0med; avmironov; Flinky; Raskad; AliceLight; Varozh; Pete; +7 – Ответить
76. VmvLer 16.07.19 10:21 Сейчас в теме
(75) для меня такие отчеты это информационный мусор, исключая реперные точки для первичной оценки.
если вам непонятна моя картина мира, то вряд ли имеет смысл открывать ее более чем.
79. NoRazum 31 17.07.19 09:47 Сейчас в теме
(2) Потратить время перечитать. Вышел новый релиз. Опять это надо делать.
Пока не успокоится там с модулями. Бесполезное занятие.
adhocprog; Raskad; AliceLight; Varozh; +4 – Ответить
80. VmvLer 17.07.19 10:16 Сейчас в теме
(79) доколе! Вот в 7.7. был один глобальный модуль, а теперь сиди перечитывай, да.
178. Torin57 45 09.07.23 12:24 Сейчас в теме
(2) Прошло пять лет, статья набрала 1016 плюсов. Что думаете об этой статье сейчас?
5. Malfarion 258 15.11.18 02:46 Сейчас в теме
Очень полезная статья, было бы очень здорово если вы поддерживали ее в актуальном состоянии и обновляли, не так давно все тоже самое приходилось рыскать самому.
RealSurfer; AliceLight; Varozh; kulabuha; adamst; +5 – Ответить
7. SlavaKron 15.11.18 08:40 Сейчас в теме
Пример использования УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаРабочегоВремениСотрудников (данные, формирующие Т-13):
&НаСервере
Процедура Команда1НаСервере()
	ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыПолученияДанныхУчетаВремени();
	ДатаНачала = '20181001';
	ДатаОкончания = КонецМесяца(ДатаНачала);
	ПараметрыПолученияДанных.ДатаНачала = ДатаНачала;
	ПараметрыПолученияДанных.ДатаОкончания = ДатаОкончания;
	
	МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	МассивСотрудников = Новый Массив;
	МассивСотрудников.Добавить(Справочники.Сотрудники.НайтиПоНаименованию("Иванов Иван Иванович"));
	СоздатьВТСотрудники(МенеджерВременныхТаблиц, МассивСотрудников, ДатаНачала);
	УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаРабочегоВремениСотрудников(МенеджерВременныхТаблиц, Истина, ПараметрыПолученияДанных);
	ТЗ = МенеджерВременныхТаблиц.Таблицы.Найти("ВТДанныеУчетаРабочегоВремениСотрудников").ПолучитьДанные().Выгрузить()
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
	Команда1НаСервере();
КонецПроцедуры

&НаСервереБезКонтекста
Процедура СоздатьВТСотрудники(МенеджерВременныхТаблиц, МассивСотрудников, Месяц, ДатаАктуальности = Неопределено, ДатаНачала = Неопределено, ДатаОкончания = Неопределено)
	ТаблицаСотрудники = Новый ТаблицаЗначений;
	ТаблицаСотрудники.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
	ТаблицаСотрудники.Колонки.Добавить("Месяц", Новый ОписаниеТипов("Дата"));
	ТаблицаСотрудники.Колонки.Добавить("ДатаАктуальности", Новый ОписаниеТипов("Дата"));
	ТаблицаСотрудники.Колонки.Добавить("ДатаНачала", Новый ОписаниеТипов("Дата"));
	ТаблицаСотрудники.Колонки.Добавить("ДатаОкончания", Новый ОписаниеТипов("Дата"));	
	
	Для Каждого Сотрудник Из МассивСотрудников Цикл
		СтрокаСотрудники = ТаблицаСотрудники.Добавить();
		СтрокаСотрудники.Сотрудник = Сотрудник;
	КонецЦикла;
	
	ТаблицаСотрудники.ЗаполнитьЗначения(Месяц, "Месяц");
	ТаблицаСотрудники.ЗаполнитьЗначения(?(ДатаАктуальности = Неопределено, ТекущаяДата(), ДатаАктуальности), "ДатаАктуальности");
	ТаблицаСотрудники.ЗаполнитьЗначения(?(ДатаНачала = Неопределено, Месяц, ДатаНачала), "ДатаНачала");
	ТаблицаСотрудники.ЗаполнитьЗначения(?(ДатаОкончания = Неопределено, КонецМесяца(Месяц), ДатаОкончания), "ДатаОкончания");
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	ТаблицаСотрудники.Сотрудник,
	|	ТаблицаСотрудники.Месяц,
	|	ТаблицаСотрудники.ДатаАктуальности,		
	|	ТаблицаСотрудники.ДатаНачала,
	|	ТаблицаСотрудники.ДатаОкончания
	|ПОМЕСТИТЬ ВТСотрудники
	|ИЗ
	|	&ТаблицаСотрудники КАК ТаблицаСотрудники");
	
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
	Запрос.УстановитьПараметр("ТаблицаСотрудники", ТаблицаСотрудники);
	Запрос.Выполнить();
КонецПроцедуры
Показать
elena_klytchenko; Goggy; AliceLight; GeterX; acanta; fxmike; +6 – Ответить
14. fxmike 84 15.11.18 10:32 Сейчас в теме
(7) Просто в качестве наблюдения, в БСП, на котором построен ЗУП и практически все современные конфигурации, есть много хороших функций, которые сокращают код, да и вообще радуют глаз, может пригодятся.
Например:

ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Значение); // возвращает массив с элементом = Значение
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицуИзМассива(Таблица, Массив, ИмяПоля); // добавляет в таблицу строки и заполняет поле из массива
urukk; АннаШ; avmironov; AliceLight; Pete; JinAir7460; SlavaKron; +7 – Ответить
27. GeterX 1478 23.11.18 17:14 Сейчас в теме
(7) Спасибо за пример, добавил в статью.
avmironov; AliceLight; Pete; SergeySol-82; +4 – Ответить
30. GeterX 1478 27.11.18 17:59 Сейчас в теме
(7) Процедура УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаРабочегоВремениСотрудников выводит данные только за один месяц, а не знаете каким образом можно получить отработанное время за период, есть ли стандартная процедура получения подобных данных?
190. nightowl5 4 27.07.24 11:39 Сейчас в теме
(7)
Сотрудник в августе уходит в отпуск, (Документы Табель, и Отпуск проведен) но функционал УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаРабочегоВремениСотрудников( возвращает ЯВКУ
Параметры
ДатаНачала= 01.08.2024 0:00:00
ДатаОкончания = 31.08.2024 23:59:59
ИмяВТРезультат = "ВТДанныеУчетаРабочегоВремениСотрудников"
ИмяВТСотрудники = "ВТСотрудники"
НеучитываемыеРегистраторы = Массив (Пустой)
ПолучатьДанныеПлан = Ложь
ПолучатьУсловияТрудаИТерритории = Ложь


Хотя, должен вернуть Отпуска.
Или мои я не прав?
Прикрепленные файлы:
191. SlavaKron 28.07.24 18:21 Сейчас в теме
(190) Попробуйте процедуру СоздатьВТДанныеУчетаВремениИСостоянийСотрудников, честно говоря, уже не помню в каких случаях кукую процедуру следует использовать. Для обеих процедур есть "обёртка", с помощью которой можно посмотреть все ВТ в режиме 1С Предприятие.
Прикрепленные файлы:
Т13.epf
EgorSP; Goggy; nightowl5; +3 – Ответить
214. goodman12 4 31.07.26 19:19 Сейчас в теме
(191) Скажите, пожалуйста, это какая-то штатная обработка? И есть ли есть подобные обработки для других ВТ, то где их можно посмотреть?
10. fxmike 84 15.11.18 09:32 Сейчас в теме
Эх, я только собрался писать похожую статью! Вообще, давно тема назрела.
tatyana_schukina; +1 – Ответить
13. fxmike 84 15.11.18 10:23 Сейчас в теме
Я пользовался следующими функциями:
1. Получение среднего заработка - УчетСреднегоЗаработка.СреднийЗаработок(Сотрудник, ДатаНачалаСобытия, ДополнительныеПараметры = Неопределено);
2. Получение остатка отпусков сотрудника - ОстаткиОтпусков.ОстаткиОтпусковСотрудниковНаДату(СписокСотрудников,ДатаОтпуска,ВидыОтпусков)

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

Скрипт запускал в этой обработке https://infostart.ru/public/610812/ если будете запускать в своей обработке, уберите последнюю строку

ДатаОтпуска 	= Дата(2018,01,01);
ДатаНачала 		= Дата(2017,01,01);
ДатаОкончания 	= Дата(2017,12,31);

ИсходнаяТаблица = УчетСреднегоЗаработка.ПустаяТаблицаИсходныхДанныхРасчетаОбщегоСреднегоЗаработка();
мПараметры = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛи­ц();
мПараметры.НачалоПериода 	= ДатаОтпуска;
мПараметры.ОкончаниеПериода	 = ДатаОтпуска;
мПараметры.КадровыеДанные 		= "Подразделение";

// 1. получаем сотрудников организации

СотрудникиОрганизации = КадровыйУчет.СотрудникиОрганизации(Истина,мПараметры);

// 2. получаем средний заработок сотрудников

СотрудникиОрганизации.Колонки.Добавить("СреднийЗаработок",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15, 2)));
СотрудникиОрганизации.Колонки.Добавить("ОстатокОтпуска",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(4, 0)));
СотрудникиОрганизации.Колонки.Добавить("Сумма",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15, 2)));

ОграничитьКоличество = 10;
// получем данные для расчета среднего
СтрокиКУдалению = Новый Массив;
Индекс = 1;

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

Для каждого пСтрока из СтрокиКУдалению Цикл
	СотрудникиОрганизации.Удалить(пСтрока);
КонецЦикла;

ДанныеДляРасчета = УчетСреднегоЗаработка.ДанныеДляРасчетаОбщегоСреднегоЗаработкаСотрудников(ИсходнаяТаблица, Неопределено, Неопределено, Истина);

Для каждого СтрокаСотрудник из СотрудникиОрганизации Цикл

	Отбор = Новый Структура("Сотрудник",СтрокаСотрудник.Сотрудник);
	
	ДанныеОВремени 		= ДанныеДляРасчета.ДанныеОВремени;
	ДанныеОНачислениях 	= ДанныеДляРасчета.ДанныеОНачислениях;
	ДанныеОбИндексации 	= ДанныеДляРасчета.ДанныеОбИндексации;
	
	ДанныеДляРасчетаСотрудник = Новый Структура("ДанныеОВремени,ДанныеОНачислениях,ДанныеОбИндексации");
	
	ДанныеДляРасчетаСотрудник.ДанныеОВремени 		= ДанныеОВремени.Скопировать(ДанныеОВремени.НайтиСтроки(Отбор));
	ДанныеДляРасчетаСотрудник.ДанныеОНачислениях 	= ДанныеОНачислениях.Скопировать(ДанныеОНачислениях.НайтиСтроки(Отбор));
	ДанныеДляРасчетаСотрудник.ДанныеОбИндексации 	= ДанныеОбИндексации.Скопировать(ДанныеОбИндексации.НайтиСтроки(Отбор));
	
	ДополнительныеПараметры = УчетСреднегоЗаработкаКлиентСервер.ДополнительныеПараметрыРасчетаСреднегоЗаработка();
	
	ДополнительныеПараметры.ДатаНачалаСобытия = ДатаОтпуска;
	
	Если Не ЗначениеЗаполнено(ДополнительныеПараметры.НачалоПериода) 
		Или Не ЗначениеЗаполнено(ДополнительныеПараметры.ОкончаниеПериода) Тогда
		ПериодРасчета = УчетСреднегоЗаработка.ПериодРасчетаОбщегоСреднегоЗаработкаСотрудника(ДатаОтпуска, СтрокаСотрудник.Сотрудник, ДополнительныеПараметры.Начисление);
		ДополнительныеПараметры.НачалоПериода = ДатаНачала;
		ДополнительныеПараметры.ОкончаниеПериода = ДатаОкончания;
	КонецЕсли;
		
	Если ДополнительныеПараметры.ПорядокРасчета = Неопределено Тогда
		ДополнительныеПараметры.ПорядокРасчета = УчетСреднегоЗаработкаКлиентСервер.ПорядокРасчетаОбщегоСреднегоЗаработка(ДатаОтпуска);
	КонецЕсли;
	ДополнительныеПараметры.ПорядокРасчета		 = Перечисления.ПорядокРасчетаСреднегоЗаработкаОбщий.Постановление2010;
	ДополнительныеПараметры.СпособРасчетаОтпуска = Перечисления.СпособыРасчетаНачислений.ОплатаОтпускаПоКалендарнымДням;
		
	ДополнительныеПараметры.Индексации = ДанныеДляРасчета.ДанныеОбИндексации;
	
	СтрокаСотрудник.СреднийЗаработок = УчетСреднегоЗаработкаКлиентСервер.СреднийЗаработокОбщий(ДанныеДляРасчетаСотрудник.ДанныеОНачислениях, ДанныеДляРасчетаСотрудник.ДанныеОВремени, ДополнительныеПараметры);
	
КонецЦикла;

// 3. считаем остатки отпусков

СписокСотрудников = СотрудникиОрганизации.ВыгрузитьКолонку("Сотрудник");
ВидыОтпусков = Неопределено;
//ВидыОтпусков = Новый Массив;
//ВидыОтпусков.Добавить(Справочники.ВидыОтпусков.Основной);

ТаблицаОстаткиОтпусков   = ОстаткиОтпусков.ОстаткиОтпусковСотрудниковНаДату(СписокСотрудников,ДатаОтпуска,ВидыОтпусков);

Для каждого СтрокаСотрудник из СотрудникиОрганизации Цикл

	Отбор = Новый Структура("Сотрудник",СтрокаСотрудник.Сотрудник);
	СтрокиОтпуска = ТаблицаОстаткиОтпусков.НайтиСтроки(Отбор);
	
	ОстатокОтпуска = 0;
	
	Для каждого СтрокаОтпуска из СтрокиОтпуска Цикл
		ОстатокОтпуска = ОстатокОтпуска + СтрокаОтпуска.КоличествоДней;
	КонецЦикла;
	
	СтрокаСотрудник.ОстатокОтпуска = ОстатокОтпуска;
	СтрокаСотрудник.Сумма = ОстатокОтпуска * СтрокаСотрудник.СреднийЗаработок;
	
КонецЦикла;

//СотрудникиОрганизации.Колонки.Добавить("СреднийЗаработок",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15, 2)));
//Сообщить(УчетСреднегоЗаработка.СреднийЗаработок(СотрудникиОрганизации[0].Сотрудник,Дата(2017,12,31)));

ЗаполнитьТаблицуЗначенийНаФорме(СотрудникиОрганизации,"ТЗ2");

Показать
Goggy; starovton; oitnur; for-elenak; GeterX; alex020690; ixijixi; SlavaKron; +8 – Ответить
28. GeterX 1478 23.11.18 17:46 Сейчас в теме
(13) Спасибо за пример, добавил в статью.
86. lushka 6 18.09.19 09:04 Сейчас в теме
(13) У Вас ошибка в коде, надо так:
ДополнительныеПараметры.Индексации = ДанныеДляРасчетаСотрудник.ДанныеОбИндексации;

У меня в организации у нескольких человек нет индексации и по "счастливому совпадению" они в списке оказывались. Долго не могла понять почему по одному сотруднику средний считается правильно, а по нескольким - средний без индексации получается.
(65) Это видимо и на Ваш вопрос ответ.
88. fxmike 84 18.09.19 12:44 Сейчас в теме
(86) Спасибо за уточнение! Поправлю.
139. Гость 25.03.22 11:26
(88) Тоже столкнулся с ошибкой в этой строке, нужно передавать данные только по текущему сотруднику, а не всю таблицу целиком, так же как данные по начислениям и времени. Т.е. вот так:
ДополнительныеПараметры.Индексации = ДанныеОбИндексации.Скопировать(ДанныеОбИндексации.НайтиСтроки(Отбор));

У меня без такой доработки срелний счтался неправильно по некоторым сотрудникам.
16. Skin123 192 15.11.18 11:46 Сейчас в теме
Функция, которая возвращает по сотрудникам их параметры отражения в учете (подразделения, способы отражения, статьи финасирования):
ОтражениеЗарплатыВБухучете.СоздатьВТСведенияОБухучетеЗарплатыСотрудников();

Для её использования нужно сохранить в менеджере временных таблиц таблицу сотрудников, для которых нужно получить сведения.
Ниже пример использования:
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц();
	
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
		
Запрос.Текст =
"ВЫБРАТЬ
|	ТаблицаСотрудников.Сотрудник,
|	ТаблицаСотрудников.Период,
|	ТаблицаСотрудников.Подразделение
|ПОМЕСТИТЬ ВТСотрудники
|ИЗ
|	&ТаблицаСотрудников КАК ТаблицаСотрудников"; 

Запрос.УстановитьПараметр("ТаблицаСотрудников", ТаблицаСотрудников);
Запрос.Выполнить();

ОтражениеЗарплатыВБухучете.СоздатьВТСведенияОБухучетеЗарплатыСотрудников(МенеджерВременныхТаблиц, "ВТСотрудники", "Сотрудник,Период", Организация);
Показать
romulanin; for-elenak; alex020690; ixijixi; SlavaKron; fxmike; +6 – Ответить
43. GeterX 1478 19.12.18 18:46 Сейчас в теме
(16)
СоздатьВТСведенияОБухучетеЗарплатыСотрудников


Добавил процедуру в статью. Только для редакции 3.1.8 пришлось немного изменить запрос.
20. NatalkaBal 29 15.11.18 13:00 Сейчас в теме
СведенияОбОрганизации = РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации(Выборка.Организация, Выборка.Дата, "<Параметры через запятую>");

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

Р.S. Автор расширяй свою статью данными из комментариев. Будет бомба)
elena_klytchenko; nazirovramzil; ixijixi; +3 – Ответить
44. GeterX 1478 19.12.18 19:15 Сейчас в теме
(20)
(37) Добавил функцию в статью.
22. Dmitry77 83 15.11.18 14:27 Сейчас в теме
Статью дополняйте. Из комментариев в статью собирите. Вечером постараюсь выложить функции работы с временем. Получение отработанного времени и норм времени.
barsuk-best; +1 – Ответить
25. lexushka 21.11.18 12:11 Сейчас в теме
А не подскажете -- как при подобной верстке на печать текст статьи вывести? Спасибо
26. GeterX 1478 22.11.18 10:47 Сейчас в теме
(25) Попробуйте раскрыть каждый из спойлеров, выделить нужный материал и вывести выделенное на печать. Правда не все влезает .

(1) Добавил процедуру в статью. Немного ее видоизменил.
29. Hla 73 26.11.18 14:38 Сейчас в теме
Добрый день. Если мне надо получить данные по сотруднику, то пользуюсь механизмом -> https://infostart.ru/public/836840/
31. alexalexme 29.11.18 13:38 Сейчас в теме
Актуально для регионов РКС:
РазмерСН = ПроцентСевернойНадбавки(Объект, ДатаПолученияДанных)


Возвращает процент северной надбавки физического лица или сотрудника.
//
// Параметры:
// Объект - СправочникСсылка.Сотрудники, СправочникСсылка.ФизическиеЛица
// ДатаПолученияДанных
//
// ВозвращаемоеЗначение: Число
g1_tdc; Eillecho; Bene_Valete; +3 – Ответить
32. GeterX 1478 29.11.18 14:31 Сейчас в теме
(31) Спасибо. Вы наверное имели ввиду функцию: КадровыйУчетРасширенный.ПроцентСевернойНадбавки(Объект, ДатаПолученияДанных)
VAAngelov; t278; Eillecho; nofear; user774630; +5 – Ответить
33. Malfarion 258 04.12.18 17:47 Сейчас в теме
Ребят, как получить ДлительностьИспытательногоСрока ? через КадровыеДанныеСотрудников не хочет - не знает такой реквизит. Раньше была функция КадровыйУчет.ДанныеТрудовыхДоговоров() а ее взяли и выпилили в последних версиях программы.
chernovaolga68; cefey-kurgan; alexander-lubich; OneScan; +4 – Ответить
34. haereticus 09.12.18 16:40 Сейчас в теме
Плановые начисления для списка сотрудников

ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудников(МассивСотрудник, ТекущаяДата(),,);

Не срабатывает, по причине того, что эта процедура не экспортная.Смотрел на 3.1.5 и 3.1.7
35. GeterX 1478 09.12.18 20:06 Сейчас в теме
(34) Значит просто скопируйте процедуру к себе.
Или можно попробовать нечто похожее:

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

Показать
eLeMeNtaLe; haereticus; +2 – Ответить
36. haereticus 10.12.18 13:02 Сейчас в теме
(35) Сделал копированием. Однако интересный подход у 1С , взять и на пустом месте закрыть доступ к нужным вещам
Denis_Lebedinsky; +1 – Ответить
37. user_2010 1059 13.12.18 22:18 Сейчас в теме
ЗУП.3.1 ОбщийМобдуль.ЗарплатаКадрыБазовый:
Функция ПолучитьСведенияОбОрганизации

Здесь можно найти все возможные показатели организации:
Если СписокПоказателей = Неопределено Тогда

СписокПоказателей = Новый Массив;
СписокПоказателей.Добавить("ТипНП");
СписокПоказателей.Добавить("КатНП");
СписокПоказателей.Добавить("КодНО");
СписокПоказателей.Добавить("ОснВидДеят");
СписокПоказателей.Добавить("ОКВЭД");
СписокПоказателей.Добавить("ОснВидДеят2");
СписокПоказателей.Добавить("ОКВЭД2");
СписокПоказателей.Добавить("ОГРН");
СписокПоказателей.Добавить("ОКАТО");
СписокПоказателей.Добавить("ОКТМО");
СписокПоказателей.Добавить("РегНомПФР");
СписокПоказателей.Добавить("ОКПО");
СписокПоказателей.Добавить("ОКФС");
СписокПоказателей.Добавить("ДатаРегистрации");
СписокПоказателей.Добавить("АдрПочт");
СписокПоказателей.Добавить("АдрПочт_XML");
СписокПоказателей.Добавить("СвидСН");
СписокПоказателей.Добавить("СвидНО");
СписокПоказателей.Добавить("СвидНОКод");
СписокПоказателей.Добавить("НаимНО");
СписокПоказателей.Добавить("НаимЮЛПол");
СписокПоказателей.Добавить("НаимЮЛСокр");
СписокПоказателей.Добавить("ИННЮЛ");
СписокПоказателей.Добавить("КППЮЛ");
СписокПоказателей.Добавить("АдрЮР");
СписокПоказателей.Добавить("АдрЮР_XML");
СписокПоказателей.Добавить("ПолныйАдрЮР");
СписокПоказателей.Добавить("АдрФакт");
СписокПоказателей.Добавить("АдрФакт_XML");
СписокПоказателей.Добавить("ОргИндекс");
СписокПоказателей.Добавить("ОргСубъект");
СписокПоказателей.Добавить("ОргКодСубъект");
СписокПоказателей.Добавить("ОргРайон");
СписокПоказателей.Добавить("ОргГород");
СписокПоказателей.Добавить("ОргНПункт");
СписокПоказателей.Добавить("ОргУлица");
СписокПоказателей.Добавить("ОргДом");
СписокПоказателей.Добавить("ОргКорпус");
СписокПоказателей.Добавить("ОргКвартира");
СписокПоказателей.Добавить("НаимОППол");
СписокПоказателей.Добавить("КППОП");
СписокПоказателей.Добавить("АдрОП");
СписокПоказателей.Добавить("АдрОП_XML");
СписокПоказателей.Добавить("ИндексОП");
СписокПоказателей.Добавить("СубъектОП");
СписокПоказателей.Добавить("КодСубъектОП");
СписокПоказателей.Добавить("РайонОП");
СписокПоказателей.Добавить("ГородОП");
СписокПоказателей.Добавить("НПунктОП");
СписокПоказателей.Добавить("УлицаОП");
СписокПоказателей.Добавить("ДомОП");
СписокПоказателей.Добавить("КорпусОП");
СписокПоказателей.Добавить("КвартираОП");
СписокПоказателей.Добавить("ФИО");
СписокПоказателей.Добавить("ФамилияИП");
СписокПоказателей.Добавить("ИмяИП");
СписокПоказателей.Добавить("ОтчествоИП");
СписокПоказателей.Добавить("ФИООтпрФЛ");
СписокПоказателей.Добавить("ИННФЛ");
СписокПоказателей.Добавить("СНИЛС");
СписокПоказателей.Добавить("ДатаРожд");
СписокПоказателей.Добавить("МестоРожд");
СписокПоказателей.Добавить("Пол");
СписокПоказателей.Добавить("Гражд");
СписокПоказателей.Добавить("ГраждСтрана");
СписокПоказателей.Добавить("КодУдЛичн");
СписокПоказателей.Добавить("ВидУдЛичн");
СписокПоказателей.Добавить("ОрганВыданУдЛичн");
СписокПоказателей.Добавить("КодПодрУдЛичн");
СписокПоказателей.Добавить("СерияУдЛичн");
СписокПоказателей.Добавить("НомерУдЛичн");
СписокПоказателей.Добавить("ДатаУдЛичн");
СписокПоказателей.Добавить("АдрПрописки");
СписокПоказателей.Добавить("АдрПрописки_XML");
СписокПоказателей.Добавить("АдрМЖ");
СписокПоказателей.Добавить("АдрМЖ_XML");
СписокПоказателей.Добавить("ИндексМЖ");
СписокПоказателей.Добавить("СубъектМЖ");
СписокПоказателей.Добавить("КодСубъектМЖ");
СписокПоказателей.Добавить("РайонМЖ");
СписокПоказателей.Добавить("ГородМЖ");
СписокПоказателей.Добавить("НПунктМЖ");
СписокПоказателей.Добавить("УлицаМЖ");
СписокПоказателей.Добавить("ДомМЖ");
СписокПоказателей.Добавить("КорпусМЖ");
СписокПоказателей.Добавить("КвартираМЖ");
СписокПоказателей.Добавить("ТелСлуж");
СписокПоказателей.Добавить("ТелДом");
СписокПоказателей.Добавить("ФИОРук");
СписокПоказателей.Добавить("ФамилияРук");
СписокПоказателей.Добавить("ИмяРук");
СписокПоказателей.Добавить("ОтчествоРук");
СписокПоказателей.Добавить("ИННРук");
СписокПоказателей.Добавить("ДатаРождРук");
СписокПоказателей.Добавить("МестоРождРук");
СписокПоказателей.Добавить("ПолРук");
СписокПоказателей.Добавить("ГраждРук");
СписокПоказателей.Добавить("ГраждСтранаРук");
СписокПоказателей.Добавить("ТелРук");
СписокПоказателей.Добавить("ДолжнРук");
СписокПоказателей.Добавить("КодУдЛичнРук");
СписокПоказателей.Добавить("ВидУдЛичнРук");
СписокПоказателей.Добавить("ОрганВыданУдЛичнРук");
СписокПоказателей.Добавить("КодПодрУдЛичнРук");
СписокПоказателей.Добавить("СерияУдЛичнРук");
СписокПоказателей.Добавить("НомерУдЛичнРук");
СписокПоказателей.Добавить("ДатаУдЛичнРук");
СписокПоказателей.Добавить("АдрМЖРукРФ");
СписокПоказателей.Добавить("АдрМЖРукРФ_XML");
СписокПоказателей.Добавить("ИндексМЖРук");
СписокПоказателей.Добавить("СубъектМЖРук");
СписокПоказателей.Добавить("КодСубъектМЖРук");
СписокПоказателей.Добавить("РайонМЖРук");
СписокПоказателей.Добавить("ГородМЖРук");
СписокПоказателей.Добавить("НПунктМЖРук");
СписокПоказателей.Добавить("УлицаМЖРук");
СписокПоказателей.Добавить("ДомМЖРук");
СписокПоказателей.Добавить("КорпусМЖРук");
СписокПоказателей.Добавить("КвартираМЖРук");
СписокПоказателей.Добавить("ФИООтпр");
СписокПоказателей.Добавить("ФИОБух");
СписокПоказателей.Добавить("ФамилияБух");
СписокПоказателей.Добавить("ИмяБух");
СписокПоказателей.Добавить("ОтчествоБух");
СписокПоказателей.Добавить("ИННБух");
СписокПоказателей.Добавить("ДатаРождБух");
СписокПоказателей.Добавить("МестоРождБух");
СписокПоказателей.Добавить("ПолБух");
СписокПоказателей.Добавить("ПолУпПред");
СписокПоказателей.Добавить("ГраждБух");
СписокПоказателей.Добавить("ГраждУпПред");
СписокПоказателей.Добавить("ГраждСтранаБух");
СписокПоказателей.Добавить("ГраждСтранаУпПред");
СписокПоказателей.Добавить("ТелБух");
СписокПоказателей.Добавить("ТелОтпр");
СписокПоказателей.Добавить("КодУдЛичнБух");
СписокПоказателей.Добавить("ВидУдЛичнБух");
СписокПоказателей.Добавить("ОрганВыданУдЛичнБух");
СписокПоказателей.Добавить("КодПодрУдЛичнБух");
СписокПоказателей.Добавить("СерияУдЛичнБух");
СписокПоказателей.Добавить("НомерУдЛичнБух");
СписокПоказателей.Добавить("ДатаУдЛичнБух");
СписокПоказателей.Добавить("АдрМЖБухРФ");
СписокПоказателей.Добавить("АдрМЖБухРФ_XML");
СписокПоказателей.Добавить("ИндексМЖБух");
СписокПоказателей.Добавить("СубъектМЖБух");
СписокПоказателей.Добавить("КодСубъектМЖБух");
СписокПоказателей.Добавить("РайонМЖБух");
СписокПоказателей.Добавить("ГородМЖБух");
СписокПоказателей.Добавить("НПунктМЖБух");
СписокПоказателей.Добавить("УлицаМЖБух");
СписокПоказателей.Добавить("ДомМЖБух");
СписокПоказателей.Добавить("КорпусМЖБух");
СписокПоказателей.Добавить("КвартираМЖБух");
СписокПоказателей.Добавить("ФИОУпПред");
СписокПоказателей.Добавить("ИННУпПред");
СписокПоказателей.Добавить("ТелУпПред");
СписокПоказателей.Добавить("КодУдЛичнУпПред");
СписокПоказателей.Добавить("ВидУдЛичнУпПред");
СписокПоказателей.Добавить("ОрганВыданУдЛичнУпПред");
СписокПоказателей.Добавить("СерияУдЛичнУпПред");
СписокПоказателей.Добавить("НомерУдЛичнУпПред");
СписокПоказателей.Добавить("ДатаУдЛичнУпПред");
СписокПоказателей.Добавить("ДатаРождУпПред");
СписокПоказателей.Добавить("АдрМЖУпПредРФ");
СписокПоказателей.Добавить("АдрМЖУпПредРФ_XML");
СписокПоказателей.Добавить("МестоРождУпПред");
СписокПоказателей.Добавить("ИндексМЖУпПред");
СписокПоказателей.Добавить("СубъектМЖУпПред");
СписокПоказателей.Добавить("КодСубъектМЖУпПред");
СписокПоказателей.Добавить("РайонМЖУпПред");
СписокПоказателей.Добавить("ГородМЖУпПред");
СписокПоказателей.Добавить("НПунктМЖУпПред");
СписокПоказателей.Добавить("УлицаМЖУпПред");
СписокПоказателей.Добавить("ДомМЖУпПред");
СписокПоказателей.Добавить("КорпусМЖУпПред");
СписокПоказателей.Добавить("КвартираМЖУпПред");
СписокПоказателей.Добавить("ФаксИсп");
СписокПоказателей.Добавить("ДолжнОтпр");
СписокПоказателей.Добавить("ДатаПереходаНаУСН");
СписокПоказателей.Добавить("БанкСчетНомер");
СписокПоказателей.Добавить("БанкСчетНаимБанка");
СписокПоказателей.Добавить("БанкСчетКоррСчетБанка");
СписокПоказателей.Добавить("БанкСчетБИКБанка");
СписокПоказателей.Добавить("РегистрационныйНомерФСС");
СписокПоказателей.Добавить("КодПодчиненностиФСС");
СписокПоказателей.Добавить("СтраховойТариф");
СписокПоказателей.Добавить("ТелОрганизации");
СписокПоказателей.Добавить("ФаксОрганизации");
СписокПоказателей.Добавить("ОбъектНалогообложенияУСН");
СписокПоказателей.Добавить("НаимГоловнОрг");
СписокПоказателей.Добавить("КППГоловнОрг");
СписокПоказателей.Добавить("ФИОИсп");
СписокПоказателей.Добавить("ДолжнИсп");
СписокПоказателей.Добавить("ТелИсп");
СписокПоказателей.Добавить("АдресЭлПочтыИсп");
СписокПоказателей.Добавить("КодОрганаПФР");
СписокПоказателей.Добавить("АдресЭлектроннойПочтыОрганизации");
СписокПоказателей.Добавить("КодПодчФССДобрСтрах");
СписокПоказателей.Добавить("ШифрСтрахователяФСС");
СписокПоказателей.Добавить("СистемыНалогообложения");
СписокПоказателей.Добавить("ВидПлательщикаСтраховыхВзносов");
СписокПоказателей.Добавить("КодТарифаПлательщикаПоУмолчаниюДляРСВ");
СписокПоказателей.Добавить("КодОрганаФСГС");
sound; men260181; ivnik; LavinVladik; user1235208; +5 – Ответить
38. ixijixi 2177 18.12.18 14:57 Сейчас в теме
Коллеги, не подскажет кто, есть ли типовая функция для получения расчетной базы удержаний?
Bene_Valete; +1 – Ответить
39. GeterX 1478 18.12.18 16:10 Сейчас в теме
(38) стоит посмотреть на процедуру РассчитатьЗначениеПоказателяРасчетнаяБазаУдержаний (Обработки.МенеджерРасчетаЗарплаты)
40. ixijixi 2177 18.12.18 16:20 Сейчас в теме
(39) Смотрел, спасибо. Но там на входе уже есть заполненный МенеджерВременныхТаблиц, и покуда до этой процедуры дойдет, уже прошла куча расчетов с этим менеджером, 48 таблиц рассчитано.
Прикрепленные файлы:
41. GeterX 1478 18.12.18 16:57 Сейчас в теме
(40) мне кажется, выцепить эту процедуру не реально, быстрее и проще написать свой запрос.
Этими запросами часть данных берется из уже начисленных документов, а часть из документа начисления, а затем все это объединятся в одну таблицу.
42. ixijixi 2177 18.12.18 17:20 Сейчас в теме
(41) Да, там полная жесть творится в этих МенеджерахРасчетаЗарплаты,Времени,РасчетнойБазы. Что-то отловить очень трудно, т.к. передача данных идет вся через МенеджерВременныхТаблиц, а этот менеджер еще болтается между несколькими обработками и общими модулями.

Думал, есть готовая ф-ия по типу указанных в публикации, было бы удобно.
Туки Туки; +1 – Ответить
48. leosoft 170 20.12.18 12:37 Сейчас в теме
(40) Не подскажите - каким инструментом это получено?
50. ixijixi 2177 20.12.18 20:27 Сейчас в теме
(48) Отладчик же, Shift+F9 по строке МенеджерВременныхТаблиц
user597231_DNorov; +1 – Ответить
45. krollzlat 20.12.18 07:56 Сейчас в теме
Отличная статья, особенно для тех, кто редко работает с подобными задачами.
46. German_Tagil 43 20.12.18 09:32 Сейчас в теме
47. Rusleg 87 20.12.18 11:14 Сейчас в теме
Господа разработчики ЗУП имеют тенденцию перетряхивать программный интерфейс. Так что все что тут написано, возможно, уже неактуально в ЗУП 3.1.8. Полагаться на их программный интерфейс себе дороже.
Например, почему-то они ликвидировали функцию ДанныеТрудовыхДоговоров из общего модуля КадровыйУчет.
Max27; haereticus; AlX0id; fxmike; +4 – Ответить
51. laperuz 47 21.12.18 14:59 Сейчас в теме
(47)
ДанныеТрудовыхДоговоров - процедура, описанная в области #СлужебныеПроцедурыИФункции.

Разработчики обещали обратную совместимость только для методов, описанных в области #ПрограммныйИнтерфейс
AlexandrUng; user774630; +2 – Ответить
52. Rusleg 87 21.12.18 16:08 Сейчас в теме
(51)Мне об этом обещании ничего неизвестно.
Вот если бы были комментарии к этим областям было бы другое дело.
haereticus; +1 – Ответить
53. laperuz 47 21.12.18 16:41 Сейчас в теме
(52) Как-то так
Прикрепленные файлы:
RealSurfer; user774630; GeterX; +3 – Ответить
54. AlX0id 21.12.18 22:00 Сейчас в теме
(47)
Да не только разработчики ЗУП.. В той же КА/ЕРП/УТ толком пользоваться ИХ АПИ для себя в долгосрочной перспективе всегда ведет к тому, что они что-нибудь переименуют/исправят ошибку в названии функции/ поменяют формат входных данных..
Но с другой стороны - рисовать свои функции может быть еще хуже, ибо можно что-то не учесть в расчетах, это раз. А два - все равно метаданные/алгоритмы будут меняться, и вероятность того, что свой код станет не рабочим не меньше той, что нерабочим станет код с использованием типовых процедур..
AlexO; user1235208; SanchoD; Туки Туки; +4 – Ответить
49. sansys 76 20.12.18 17:35 Сейчас в теме
Автору огромное спасибо, однозначно плюс!!! Коллеги, подобные статьи делают наш труд легче, а зарабатывание денег проще ))) В типовых конфигурациях информацию приходится собирать по крупицам и любая помощь всегда на вес золота.
AlexandrUng; user597231_DNorov; +2 – Ответить
55. d4rkmesa 22.12.18 23:02 Сейчас в теме
Респект! Тут мини-перепись балаболов форумных... По себе знаю, что нужно далеко не один день изучать ЗУП, чтобы понять какие функции можно использовать, а какие нет. Была бы подобная статья полгода назад, существенно бы облегчила работу.
56. user619273_alevtina 30.12.18 18:05 Сейчас в теме
Спасибо за статью.
user597231_DNorov; +1 – Ответить
57. alanto23 35 09.01.19 11:09 Сейчас в теме
Спасибо за статью! В цвет!
user597231_DNorov; +1 – Ответить
58. SlavaKron 26.02.19 10:47 Сейчас в теме
Программное получение начислений, взносов, НДФЛ, удержаний и т.д. – в общем всё то, что рассчитывается в документе начисления зарплаты (проверял на ЗУП 3.1.8.246):
&НаСервереБезКонтекста
Процедура ПолучитьДанныеНачисленийНаСервере(МассивСотрудников, ДатаНачала, ДатаОкончания, Организация)
	ДополнительныеПараметры = РасчетЗарплатыРасширенный.ДополнительныеПараметрыЗаполненияТаблицДокумента();
	ДополнительныеПараметры.Сотрудники = МассивСотрудников;
	ДополнительныеПараметры.ОкончаниеПериода = ДатаОкончания;
	ДополнительныеПараметры.РежимНачисления = Перечисления.РежимНачисленияЗарплаты.ОкончательныйРасчет;	
	
	ПараметрыОписания = Новый Структура;
	ПараметрыОписания.Вставить("ИзменениеБезОграничений" ,Истина);
	ПараметрыОписания.Вставить("РегистрацияНачисленийДоступна", Истина);
	ПараметрыОписания.Вставить("СпособыРасчетаСреднегоЗаработка", Неопределено);
	ПараметрыОписания.Вставить("ПризнакКомпенсацииУдержанияОтпуска", Перечисления.КомпенсацияУдержаниеОтпускаПриУвольнении.НеИспользовать);
	ОписаниеДокумента = КадровыйУчетРасширенныйКлиентСервер.ОписаниеДокумента(ПараметрыОписания);
	
	ДанныеНачислений = РасчетЗарплатыРасширенный.ДанныеДляЗаполненияТаблицДокумента(ОписаниеДокумента, Организация, ДатаНачала, ДополнительныеПараметры);
КонецПроцедуры
Показать
Прикрепленные файлы:
ПолучениеДанныхНачисленийЗУП318.epf
marina2712; MihailP; DimaP; zforall; romulanin; marv-ua; user774630; GeterX; Max27; +9 – Ответить
203. AndreyPonom 138 06.08.25 13:03 Сейчас в теме
(58)
перестала работать

Процедура ПолучитьДанныеНачисленийНаСервере(МассивСотрудников, ДатаНачала, ДатаОкончания, Организация)

Выдает пустые таблицы
Кадош; IYDKMIGTHTKY; +2 – Ответить
59. Somaha 21.03.19 16:32 Сейчас в теме
Доброго времени суток. Код использованный для получения данных табеля Т-13 некорректен.
УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаРабочегоВремениСотрудников(МенеджерВременныхТаблиц, Истина, ПараметрыПолученияДанных);

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

Параметр "ПараметрыЗаполнения" определяется тут:
УчетРабочегоВремениРасширенный.ПараметрыДляЗапросВТДанныеУчетаВремениИСостоянийСотрудников();


Релиз 3.1.9.159
maljaev; alexdm; KamranV21; nightowl5; AmoZ; user1732300; Anna_Volkova; kotlovD; aleksae; AlbinaAAA; begemot; user1078309; kriswell; Skolkovo; uralcentr; SlavaKron; +16 – Ответить
60. SlavaKron 26.03.19 10:32 Сейчас в теме
(59) Точно! Соответственно, решается вопрос в (30) - СоздатьВТДанныеУчетаВремениИСостоянийСотрудников возвращает все дни за период. Исправьте пожалуйста:
&НаСервере
Процедура Команда1НаСервере()
	
	ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыДляЗапросВТДанныеУчетаВремениИСостоянийСотрудников();
	ПараметрыПолученияДанных.ДатаНачала = Период.ДатаНачала;
	ПараметрыПолученияДанных.ДатаОкончания = Период.ДатаОкончания;
	
	ПараметрыПолученияДанных.МесяцДатаНачала = Период.ДатаНачала;
	ПараметрыПолученияДанных.МесяцДатаОкончания = Период.ДатаОкончания;
	ПараметрыПолученияДанных.ДатаАктуальности = ТекущаяДата();
	
	МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	СоздатьВТСотрудники(МенеджерВременныхТаблиц, СписокСотрудников.ВыгрузитьЗначения(), Период.ДатаНачала, Период.ДатаОкончания);
	
	УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаВремениИСостоянийСотрудников(МенеджерВременныхТаблиц, Истина, ПараметрыПолученияДанных);
	ТЗ = МенеджерВременныхТаблиц.Таблицы.Найти("ВТДанныеУчетаВремениИСостоянийСотрудников").ПолучитьДанные().Выгрузить();
	ТЗ.Сортировать("Дата");
	
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
	Команда1НаСервере();
КонецПроцедуры

&НаСервереБезКонтекста
Процедура СоздатьВТСотрудники(МенеджерВременныхТаблиц, МассивСотрудников, ДатаНачала, ДатаОкончания)
	ТаблицаСотрудники = Новый ТаблицаЗначений;
	ТаблицаСотрудники.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
	ТаблицаСотрудники.Колонки.Добавить("ДатаНачала", Новый ОписаниеТипов("Дата"));
	ТаблицаСотрудники.Колонки.Добавить("ДатаОкончания", Новый ОписаниеТипов("Дата")); 
	
	Для Каждого Сотрудник Из МассивСотрудников Цикл
		СтрокаСотрудники = ТаблицаСотрудники.Добавить();
		СтрокаСотрудники.Сотрудник = Сотрудник;
	КонецЦикла;
	
	ТаблицаСотрудники.ЗаполнитьЗначения(ДатаНачала, "ДатаНачала");
	ТаблицаСотрудники.ЗаполнитьЗначения(ДатаОкончания, "ДатаОкончания");
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	ТаблицаСотрудники.Сотрудник,
	|	ТаблицаСотрудники.ДатаНачала,
	|	ТаблицаСотрудники.ДатаОкончания
	|ПОМЕСТИТЬ ВТСотрудники
	|ИЗ
	|	&ТаблицаСотрудники КАК ТаблицаСотрудники");
	
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
	Запрос.УстановитьПараметр("ТаблицаСотрудники", ТаблицаСотрудники);
	Запрос.Выполнить();
КонецПроцедуры
Показать
maljaev; user2122965; user1932344; Anna_Volkova; kotlovD; user1078309; eksetro; user1235208; uralcentr; +9 – Ответить
77. user1235208 16.07.19 13:33 Сейчас в теме
(60) Всем привет, в дополнение к указанному коду рекомендую к использованию остальные ВТ текущего МенеджерВременныхТаблиц, вот список:

ВТСотрудники
ВТПериодыРаботыСотрудников
ВТМесяцы
ВТСотрудникиМесяцы
ВТПериодыДействияГрафиковДляКалендарей
ВТСоответствиеСостоянийВидамУчетаВремени
ВТДатыСостояний
ВТПараметрыЗарегистрированныхДанныхУчетаВремени
ВТСотрудникСРассчитаннымиДанными
ВТПараметрыПолученияДанныхПоСотрудникам
ВТЗарегистрированныеВидыДанныхУчетаВремени
ВТИспользуемыеВидыДанных
ВТВытесняющиеВидыДанных
ВТВспомогательнаяТаблицаОпределенияУстановленныхДнейПериода
ВТИспользуемыеИсточникиДанныхНеотфильтрованные
ВТИсточникиПолученияДанныхУчетаВремени
ВТИзмеренияДатыДляСрезаГрафиков
ВТГрафикРаботыСотрудниковСрезПоследних
ВТГрафикРаботыСотрудниковСрезПервых
ВТГрафикРаботыСотрудников
ВТГрафикРаботыСотрудниковСрезПоследнихДополненный
ВТГрафикиСотрудниковСрезИДвижения
ВТИнтервалыГрафиков
ВТПериодыДейсвияОбщихГрафиковСотрудников
ВТОбщиеГрафики
ВТДанныеОбщихГрафиков
ВТДанныеРегистровУчетаВремени
ВТНормаВремени
ВТДанныеУчетаРабочегоВремениСотрудников
ВТСостоянияСотрудников
ВТДанныеУчетаВремениПоСостояниям
ВТДанныеУчетаВремениИСостоянийСотрудников
user2122965; Batman; kotlovD; ybatiaev; Bene_Valete; +5 – Ответить
78. user1235208 17.07.19 06:41 Сейчас в теме
(60)
ПараметрыПолученияДанных.МесяцДатаНачала = Период.ДатаНачала;


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

ПараметрыПолученияДанных.ДатаНачала = Период.ДатаНачала  //Оставляем без изменений
ПараметрыПолученияДанных.МесяцДатаНачала = НачалоМесяца(Период.ДатаНачала);


------
Версия ЗКГУ 3.1.9.205
186. Stiks1911 27.01.24 17:24 Сейчас в теме
(60) Подскажите пожалуйста, а если нужно получить просто отработанное время за указанный период, а не чтобы каждый день за период возвращал, как это можно сделать?
200. KazanKokos 11 09.07.25 16:45 Сейчас в теме
(60) Привет! Так можно получить плановые данные по графикам работ за период? Мы просто ведем учет фактичекого времени в своем регистре. а мне нужно получить график работ и получить дни когда сотрудник должен был работать но не работал(весь день). Соответственно из чистой ЗУП нужно получить плановые данные по графикам работ.
Там вроде в параметрах можно отключить факт и указать "= Истина" только плановые данные. и получить по всем датам. А потом уже с новым регистром соединить.
201. SlavaKron 09.07.25 16:52 Сейчас в теме
(200) Здравствуйте! С ЗУПом давно не работал. Для себя когда-то сделал обёртку для этих функций, но не уверен, что она будет работать на современных версиях. Сейчас нет даже возможности проверить. Файл прикрепил.
Прикрепленные файлы:
Т13.epf
202. KazanKokos 11 09.07.25 16:56 Сейчас в теме
(201)
Спасибо. Я в общих модулях смотрел. Вроде все совпадает по коду.
61. tamepjlah 4 26.03.19 12:00 Сейчас в теме
Функция, позволяющая получить работающих сотрудников по заданным параметрам отбора
ТаблицаСотрудников = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолучения);

работает некорректно в случае, если в регистре сведений "Данные для подбора сотрудников" нет записи с видом события "Увольнение" по сотруднику, который по факту уволен. У нас такие сотрудники вылезли после переноса из старой базы (думается мне, что была кривая обработка по переносу).
В этом случае данный сотрудник будет считаться трудоустроенным.
Также данного сотрудника нельзя будет выбрать, например, в расчетном листке, если указана организация. База просто не видит этого сотрудника.
62. Somaha 04.04.19 10:06 Сейчас в теме
Доброго времени суток.
Релиз 3.1.9.187. Получение действующих плановых начислений для списка сотрудников не сработает, т.к. функция не экспортная.
ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудников(МассивСотрудник, ТекущаяДата(),,);
63. haereticus 04.04.19 13:32 Сейчас в теме
(62) Выше писали: скопируйте себе эту функцию да и всё
64. Somaha 04.04.19 14:31 Сейчас в теме
(63) Точно... затупил...
65. Centa96 15.05.19 13:49 Сейчас в теме
Ребята у меня вопрос по поводу Получить данные среднего заработка, остатка отпусков, резерва отпусков. Я использовала её для получения данных для печати Подробного расчета начислений, но я не совсем поняла как заполняется индексация.
87. lushka 6 18.09.19 09:07 Сейчас в теме
(65) Исправьте строчку одну
Вместо

ДополнительныеПараметры.Индексации = ДанныеДляРасчета.ДанныеОбИндексации;

надо

ДополнительныеПараметры.Индексации = ДанныеДляРасчетаСорудник.ДанныеОбИндексации;
66. mikeA 1 04.06.19 07:10 Сейчас в теме
1. Статья нужная, плюс однозначно. Автору респект.

2. Как получить с помощью типовых функций периоды работы сотрудника в подразделениях? Там вроде везде только ДатаПриема и ДатаУвольнения. Может что пропустил конечно.
68. GeterX 1478 13.06.19 17:44 Сейчас в теме
(66)
Может что пропустил конечно.

Мне кажется нужная для вас информация содержится в Регистре сведений Кадровая история сотрудников.
Выводится простым запросом.
69. mikeA 1 18.06.19 10:43 Сейчас в теме
(68) Как получить кадровую историю запросом я знаю. У меня даже есть процедура, добавляющая в менеджер временных таблиц таблицу с кадровой историей с блэкджеком и с учётом особенностей компании.

Меня интересует, можно ли получить её с помощью типовых функций. Мы же теперь вроде как API используем?
70. GeterX 1478 18.06.19 11:16 Сейчас в теме
(69) В конфигурации кадровая история получается следующим образом (Справочники - Сотрудники - ФормаИсторииИзмененияМестаРаботы):

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

Показать
aleksey2; mikeA; +2 – Ответить
67. kievol 13.06.19 17:20 Сейчас в теме
Спасибо. Очень полезно и познавательно.
71. Somaha 03.07.19 10:05 Сейчас в теме
Кстати, для пункта "Получить работающих сотрудников по заданным параметрам отбора", в строке
ПараметрыПолучения.КадровыеДанные = "Сотрудник,ФизическоеЛицо,Подразделение,Должность,ДолжностьПоШтатномуРасписанию,КоличествоСтавок,ВидЗанятости,ДатаПриема,ДатаУвольнения,ГрафикРаботы";

Сотрудник и ФизическоеЛицо можно убрать, т.к. это "предопределенные" колонки в возвращаемой ТЗ. Если оставить как есть, то в ТЗ будут колонки Сотрудник, ФизическоеЛицо, Сотрудник1, ФизическоеЛицо1.
user913506; user1235208; GeterX; +3 – Ответить
72. graphbuh 269 09.07.19 17:13 Сейчас в теме
Отличная подборка!
...может загнать ее в html -файл как это было в книге "Простые примеры разработки" ?
А там и до книги недалего.. )
81. user1235208 22.07.19 05:32 Сейчас в теме
Может кому пригодится, или кто предложит как сделать лучше)

Функция для расчета количества полных месяцев стажа по трудовой книжке:

Функция ПолучитьНепрерывныйСтажНадбавку(Сотрудник, ДатаПеревода)
	
	ПолныхМесяцевСтажаПоДатуПеревода = 0;
	НадбавкаЗаСтаж  = 0;
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	СтажиФизическихЛицСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
		|	СтажиФизическихЛицСрезПоследних.ВидСтажа КАК ВидСтажа,
		|	СтажиФизическихЛицСрезПоследних.ДатаОтсчета КАК ДатаОтсчета,
		|	СУММА(СтажиФизическихЛицСрезПоследних.РазмерМесяцев) КАК РазмерМесяцев,
		|	СУММА(СтажиФизическихЛицСрезПоследних.РазмерДней) КАК РазмерДней,
		|	СтажиФизическихЛицСрезПоследних.ИсчисляетсяСДатыПриема КАК ИсчисляетсяСДатыПриема
		|ИЗ
		|	РегистрСведений.СтажиФизическихЛиц.СрезПоследних(&Дата, ) КАК СтажиФизическихЛицСрезПоследних
		|ГДЕ
		|	СтажиФизическихЛицСрезПоследних.ФизическоеЛицо = &ФизическоеЛицо
		|
		|СГРУППИРОВАТЬ ПО
		|	СтажиФизическихЛицСрезПоследних.ВидСтажа,
		|	СтажиФизическихЛицСрезПоследних.ФизическоеЛицо,
		|	СтажиФизическихЛицСрезПоследних.ДатаОтсчета,
		|	СтажиФизическихЛицСрезПоследних.ИсчисляетсяСДатыПриема";
	
	//Запрос.УстановитьПараметр("ВидСтажа", ВидСтажа);
	Запрос.УстановитьПараметр("ФизическоеЛицо", Сотрудник.ФизическоеЛицо);
	Запрос.УстановитьПараметр("Дата", ДатаПеревода);
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	ТаблицаМедицинскихСтажей = Новый ТаблицаЗначений;
	ТаблицаМедицинскихСтажей.Колонки.Добавить("ДатаОтсчета");
	ТаблицаМедицинскихСтажей.Колонки.Добавить("РазмерМесяцев");
	ТаблицаМедицинскихСтажей.Колонки.Добавить("РазмерДней");
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Если СтрНайти(ВРЕГ(ВыборкаДетальныеЗаписи.ВидСтажа), "МЕДИЦИНСКИЙ СТАЖ")>0 Тогда
			СтрокаМедстаж = ТаблицаМедицинскихСтажей.Добавить();
			СтрокаМедстаж.ДатаОтсчета = ВыборкаДетальныеЗаписи.ДатаОтсчета;
			СтрокаМедстаж.РазмерМесяцев = ВыборкаДетальныеЗаписи.РазмерМесяцев;
			СтрокаМедстаж.РазмерДней = ВыборкаДетальныеЗаписи.РазмерДней;
		КонецЕсли;	
	КонецЦикла;
	
	Если ТаблицаМедицинскихСтажей.Количество() = 1 Тогда
		ДатаНачалоСтаж = ДобавитьМесяц(ТаблицаМедицинскихСтажей[0].ДатаОтсчета, -ТаблицаМедицинскихСтажей[0].РазмерМесяцев);
		ДатаНачалоСтаж = НачалоДня(ДатаНачалоСтаж) - ТаблицаМедицинскихСтажей[0].РазмерДней*24*60*60;
		Если ДатаПеревода > ДатаНачалоСтаж Тогда
			
			Запрос = Новый Запрос;
			Запрос.Текст = 
				"ВЫБРАТЬ
				|	РАЗНОСТЬДАТ(&ДатаНачалоСтаж, &ДатаПеревода, МЕСЯЦ) КАК Поле1";
			
			Запрос.УстановитьПараметр("ДатаНачалоСтаж", ДатаНачалоСтаж);
			Запрос.УстановитьПараметр("ДатаПеревода", ДатаПеревода);
			РезультатЗапроса = Запрос.Выполнить();
			ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
			Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
				ПолныхМесяцевСтажаПоДатуПеревода = ВыборкаДетальныеЗаписи.Поле1;
			КонецЦикла;
			ДатаПереводаДень = День(ДатаПеревода);
			ДатаНачалоСтажаДень = День(ДатаНачалоСтаж);
			Если ДатаПереводаДень < ДатаНачалоСтажаДень Тогда  
				ПолныхМесяцевСтажаПоДатуПеревода = ПолныхМесяцевСтажаПоДатуПеревода - 1;
			КонецЕсли;			
		КонецЕсли;	
	ИначеЕсли ТаблицаМедицинскихСтажей.Количество()>1 Тогда	
		Сообщить("У данного сотрудника, зафиксированны более чем 1 запись медицинского стажа, обратитесь к администратору");
	КонецЕсли;
	Если ПолныхМесяцевСтажаПоДатуПеревода>=36 И ПолныхМесяцевСтажаПоДатуПеревода<60 Тогда
		НадбавкаЗаСтаж = 20;
	ИначеЕсли ПолныхМесяцевСтажаПоДатуПеревода>=60 Тогда
		НадбавкаЗаСтаж = 30;
	Иначе
		НадбавкаЗаСтаж = 0;	
	КонецЕсли;
	
	Возврат НадбавкаЗаСтаж;
КонецФункции
Показать
cefey-kurgan; aaguselnikova; +2 – Ответить
82. DoctorRoza 14.08.19 13:26 Сейчас в теме
Комрады, привет. Мне нужно из ЗУП 3.1 (3.1.10.78), получить данные по начислениям и удержаниям по всем организациям. Эти данные нужно залить в УТ 10.3 (для управленческого учета). Делать буду через com регл. заданием с загрузкой в специальный РС. Что-то вроде, Расчетного листка. Подскажите, пожалуйста, в конфигурации есть готовые модули для этого, какими можно воспользоваться? Спасибо
91. marv-ua 30.09.19 09:49 Сейчас в теме
83. lemni 67 20.08.19 16:43 Сейчас в теме
Добрый день! Может кому-то попадалась функция по расчету стоимости часа сотрудника (или списка сотрудников)?
84. artem_savonin 06.09.19 03:04 Сейчас в теме
Добрый день. Подскажите, может есть стандартная функция, чтобы получить данные по начислениям и отработанным часам сотрудника в разрезе подразделений и должностей. Проблема в том, что сотрудники в пределах одного месяца перемещаются между должностями внутри подразделения. В регистре НачисленияУдержанияПоСотрудникам нет информации о должности сотрудника по которой происходит начисление. Оплату по окладу возможно и удастся получить, т.к. в НачисленияУдержанияПоСотрудникам есть дата с которой действует данное начисление, а вот начисления премии регистрируется за период в целом, за весь месяц. Посоветуйте как получить начисленные суммы и отработанные часы в разрезе подразделений и должностей.
85. artem_savonin 08.09.19 06:12 Сейчас в теме
89. gsnls15 53 19.09.19 13:12 Сейчас в теме
(85) Поделитесь, пожалуйста, как Вы его решили. Тоже актуально.
90. artem_savonin 26.09.19 16:35 Сейчас в теме
(89) Если коротко: взял запрос из стандартного отчета "Анализ з/п по сотрудникам в целом за период". Но проблему премий он не решает. Премии распределял пропорционально основному заработку.
95. lushka 6 12.02.20 11:48 Сейчас в теме
(90) А если не коротко? Не могли бы вы поделится отчетом? unk111собакаrambler.ru
92. payta 02.10.19 16:18 Сейчас в теме
для склонения можно еще использовать платформенный метод ПолучитьСклоненияСтроки()
user774630; +1 – Ответить
93. ktibomail 30 04.10.19 04:37 Сейчас в теме
Практически все, что выводится в расчетном листке, можно получить следующим кодом:

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

// Удаляем лишние отборы
	ТекстЗапроса = АнализНачисленийИУдержаний.СхемаКомпоновкиДанных.НаборыДанных.НачисленияУдержанияОбъединенные.Элементы.НачисленияУдержания.Запрос;
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И НЕ ВзаиморасчетыССотрудниками.Регистратор В (&ИсключаемыеСсылки)", "");
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И НЕ НачисленияИУдержания.Регистратор В (&ИсключаемыеСсылки)", "");
	
	// Через построитель устанавливаем нужные отборы (период и физлица)
	ПостроительЗапроса = Новый ПостроительЗапроса(ТекстЗапроса);
	ПостроительЗапроса.Параметры.Вставить("НачалоПериода", НачалоМесяца(Период));
	ПостроительЗапроса.Параметры.Вставить("КонецПериода", КонецМесяца(Период));
	ПостроительЗапроса.Параметры.Вставить("ОкончаниеИнтервалаПредставленияПериоды", ДобавитьМесяц(КонецМесяца(Период),60));
	ПостроительЗапроса.Параметры.Вставить("МаксимальнаяДата", Дата(3999,12,31,23,59,59));
	
	ЭлементОтбора = ПостроительЗапроса.Отбор.Добавить("ФизическоеЛицо");
	ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке;
	ЭлементОтбора.Использование = Истина;
	СписокЗначенийФизлица = Новый СписокЗначений;
	СписокЗначенийФизлица.ЗагрузитьЗначения(Физлица);
	ЭлементОтбора.Значение = СписокЗначенийФизлица;
	
	Запрос = ПостроительЗапроса.ПолучитьЗапрос();
	МенеджерВТ = Новый МенеджерВременныхТаблиц;		
	Запрос.МенеджерВременныхТаблиц = МенеджерВТ;	

	// Результат в ТЗ
	ТЗ = Запрос.Выполнить().Выгрузить();
Показать
marganochka; Matveev_VS; shapoval; GeterX; +4 – Ответить
130. dimmkan 26.04.21 11:45 Сейчас в теме
(93) А не подскажите, как накинуть отбор по подразделению? Почему-то этот код не срабатывает:
Если ОтборПоПодразделению Тогда
		ЭлементОтбора = ПостроительЗапроса.Отбор.Добавить("Подразделение");
		ЭлементОтбора.ВидСравнения = ВидСравнения.Равно;
		ЭлементОтбора.Использование = Истина;
		ЭлементОтбора.Значение = Подразделение;
КонецЕсли;
94. GeterX 1478 22.11.19 12:02 Сейчас в теме
В статью внесены ряд изменений, исправлений и добавлен блок с полезными статьями на тему ЗУП/ЗКГУ 3.1.
Может кому пригодится. Если есть, что дополнить, пишите.
ybatiaev; SergeySol-82; +2 – Ответить
177. ipzotov 17 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 47 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 7 16.03.20 13:58 Сейчас в теме
(96)
ЗарплатаКадрыОбщиеНаборыДанных.ЗапросВТПериоды()
100. Shefer 3 16.03.20 14:27 Сейчас в теме
(99)
ЗарплатаКадрыОбщиеНаборыДанных.ЗапросВТПериоды()

Спасибо!
101. пользователь 26.03.20 15:27
Сообщение было скрыто модератором.
...
102. tamepjlah 4 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 1478 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 1478 02.06.20 09:41 Сейчас в теме
(106) Спасибо за такой вариант получения истории сотрудников.
Более детально просмотрю и опубликую в статье.
Еще раз спасибо.
SergeySol-82; +1 – Ответить
107. kodblack 15 02.06.20 09:12 Сейчас в теме
ЗУП 3.1
Как получить должность?

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

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

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

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

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

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

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

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


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

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

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


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

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


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


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

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

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

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

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

Собственно надо рассчитать следующие значения:
ОтработаноДней
ОтработаноЧасов
ОтработаноДнейШестидневка
ОтработаноДнейПятидневка
ОтработаноЧасовПятидневка
ОтработаноДнейКалендарных
154. atb-mdv 13.07.22 20:11 Сейчас в теме
Добрый день. Нет ли функции для подсчета испытательного срока?
155. GeterX 1478 20.07.22 10:51 Сейчас в теме
(154) такой функционал есть только в КОРП версии.
К сожалению его позаимствовать из КОРП нельзя, т.к. это целая подсистема с регистрами и документами.
156. WorkerPavel 21.07.22 19:08 Сейчас в теме
Есть кошерный способ получить фактический адрес организации? Аналог ПолныйАдрЮР. А то АдрФакт возвращает какую то дичь которую в отчёт подставить страшно.
157. GeterX 1478 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 1478 21.07.22 22:01 Сейчас в теме
(159) можно немного по другому:

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

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



Подробнее как работать с контактной информаций разобрано в статье: https://infostart.ru/1c/articles/1260421/
Там и сразу можно отбор установить на нужные данные.
Прикрепленные файлы:
161. Hla 73 25.07.22 08:46 Сейчас в теме
Добрый день. В публикации описан способ получения среднего заработка для отпуска. А как получить средний для командировки, простоя?
162. hanio 58 01.08.22 14:10 Сейчас в теме
подскажите а почему простые не описаны способы например получение оклада, получение должности и тому подобное или считаете что это уже ниже плинтуса описывать?
163. ubnkfl 05.08.22 15:26 Сейчас в теме
(162) Это всё описано. В вашем случае - это получение кадровых данных "ТарифнаяСтавка,Должность".
164. hanio 58 19.08.22 00:57 Сейчас в теме
Спасибо, только начинаю разбираться с ЗУП 3.1, подскажите а как получить оклад сотрудника?
165. GeterX 1478 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 1478 24.11.22 21:08 Сейчас в теме
(167) Мне не попадались такие процедуры, в типовом исполнении можно получить текущий зарплатный проект и последний лицевой счет (выбирается максимальный по дате).

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

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

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

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

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

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

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

ТекущиеДанныеОплатыТруда = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудников(МассивСотрудник, ТекущаяДата(),,);
187. Roootru 9 17.04.24 04:38 Сейчас в теме
Который раз уже пользуюсь данной страничкой как библией по ЗУПу. Спасибо большое автору <3
user1679861; Gantz; GeterX; +3 – Ответить
188. AlexandrUng 03.06.24 01:22 Сейчас в теме
Спасибо! Отличная статья.
189. Kungur 24.06.24 09:27 Сейчас в теме
Хорошая подборка

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

ДанныеФизЛица = КадровыйУчет.ДокументыФизическихЛиц(ВыборкаСтрок.ФизическоеЛицо, Истина);

ОбластьМакетаСтрока.Параметры.Паспорт = "" + ДанныеФизЛица[0].ВидДокумента + ", "
+ ДанныеФизЛица[0].Серия + ", " + ДанныеФизЛица[0].Номер + ", выдан: " + ДанныеФизЛица[0].КемВыдан;
192. Кыссо 1 07.12.24 14:36 Сейчас в теме
В релизе 3.1.31.58 процедура ОпределитьПолПоОтчеству перенесена в общий модуль ФизическиеЛицаЗарплатаКадрыКлиентСервер
193. Кыссо 1 07.12.24 14:49 Сейчас в теме
(192) добавлю, что для определения пола надо вызвать функцию ФизическиеЛицаЗарплатаКадрыКлиентСервер.ПолПоЧастямФИО
194. pentanom 32 26.02.25 12:45 Сейчас в теме
Если бы были комментарии к примерам, было бы супер.
195. pentanom 32 26.02.25 21:18 Сейчас в теме
Сделал обработку (по пункту "Получить начисленную зарплату, ....), но она почему-то не работает. Сотруднику, которого я указал в обработке, зарплата за выбранный период начислялась.
Прикрепленные файлы:
ПолучитьДанныеНачислений.epf
196. marina2712 23 03.03.25 08:21 Сейчас в теме
Указанные методы не получают данные начислений, НДФЛ, взносов. Возвращает пустые таблицы. Может кто знает универсальные методы получения начислений и НДФЛ по сотрудникам?
197. marina2712 23 03.03.25 08:30 Сейчас в теме
(196) поняла, что эта функция работает для будущих начислений, т.е. рассчитывает зарплату. А как получить прошлые начисления через универсальные функции?
198. GeterX 1478 03.03.25 09:12 Сейчас в теме
(197) Таких нет в программе, т.к. получить их можно простейшим запросам к РН НачисленияУдержанияПоСотрудникам, СведенияОДоходахСтраховыеВзносы, СтраховыеВзносыПоФизическимЛицам
199. marina2712 23 03.03.25 12:27 Сейчас в теме
(198) как то странно. Все равно что то должно быть
211. WWWolfy 149 04.03.26 17:06 Сейчас в теме
(197) получить начисленное за период - не всегда легко
Всё из-за того, что есть расчёт первой половины месяца, и часть данных лежит в регистрах авансов.
Можно взять данные из регистра СведенияОДоходахНДФЛ

1С использует в отчёте НачисленныеДоходыВОтчетахПоНДФЛ соединение с тремя регистрами.

Вот пример функции, как можно использовать запрос этого отчёта и получить данные начисленного:

Пример функции для получения фактических Начислений
204. inf012 30.09.25 07:51 Сейчас в теме
Здравствуйте.
Подскажите, можно ли через Представления_
Получить основных сотрудников по списку физ.лиц?
205. GeterX 1478 30.09.25 09:32 Сейчас в теме
(204) насколько помню, то нет.
Можно поизучать процедуру:

КадровыйУчетРасширенный.ОсновнойСотрудникФизЛица()

Может она наталкнет на решение.
206. inf012 02.10.25 16:35 Сейчас в теме
(205) ясно, спасибо, именно такой и был план ее поковырять. Там запрос к 1 регистру в основном, вроде не оч.большой.
207. Vesta1993 24.10.25 11:20 Сейчас в теме
Здравствуйте! в процедуре СоздатьВТДанныеУчетаВремениИСостоянийСотрудников у сотрудника который принят на работу не с начала месяца, норма времени определяется с даты его приема. А каким образом запросом определить норму времени так же, как это делается при расчете зарплаты? Норму считать c начала месяца . А не с даты приема. Эта процедура СоздатьВТДанныеУчетаВремениИСостоянийСотрудников получается для данного случая не подходит... Ведь на первое число месяца сотрудника еще нет и нет никаких состояний. Если какая нибудь процедура или функция которая поможет это значение расcчитать (норма у сотрудника с начала месяца)?
209. GeterX 1478 24.01.26 17:01 Сейчас в теме
(207) Как вариант изменить временную таблицу с периодами и сотрудниками передаваемую в процедуру. Если поделитесь своим вариантом решения подобной задачи, то буду признателен.
212. WWWolfy 149 12.03.26 12:00 Сейчас в теме
(209) Да, для решения либо используем другой запрос, либо меняем этот запрос.

Ниже пример для изменения запроса из СоздатьВТДанныеУчетаВремениИСостоянийСотрудников.
Норма часов будет посчитана независимо от приёма / увольнения сотрудника.
У меня такое решение понадобилось при сдельной работе, когда нужно выплатить не менее регионального МРОТ.

Пример решения - `Норма часов за указанный период`
A_Artem; GeterX; +2 – Ответить
208. INZ 18.11.25 10:20 Сейчас в теме
А как получить данные ССЧ по сотрудникам? Выходят итоговые строки П4.
210. WWWolfy 149 03.03.26 18:32 Сейчас в теме
любую НЕ Экспортную функцию можно легко сделать Экспортной расширением

Например модуль КадровыйУчетРасширенный добавляем в расширение и пишем:

// добавляем экспортную функцию - чисто для вызова НЕэкспортной
Функция    расш_ТекущиеНачисленияСотрудников(Сотрудники, ДатаСведений, ИсключаемыйРегистратор = Неопределено, ФормироватьСПериодичностьДень = Истина) ЭКСПОРТ
	Результат = ТекущиеНачисленияСотрудников(Сотрудники, ДатаСведений, ИсключаемыйРегистратор, ФормироватьСПериодичностьДень);
	Возврат Результат;
КонецФункции
213. djserega 258 18.05.26 14:40 Сейчас в теме
В функции "Получить данные бухучета" либо поменялся модуль со временем, либо опечатка...
ОтражениеЗарплатыВБухучете.СоздатьВТСведенияОБухучетеЗарплатыСотрудников(МенеджерВременныхТаблиц, "ВТСотрудники", "Сотрудник,Период", КадровыеДанныеСотрудника[0].Организация);

Сейчас используется модуль"ОтражениеЗарплатыВБухучетеРасширенный":
ОтражениеЗарплатыВБухучетеРасширенный.СоздатьВТСведенияОБухучетеЗарплатыСотрудников(МенеджерВременныхТаблиц, "ВТСотрудники", "Сотрудник,Период", КадровыеДанныеСотрудника[0].Организация);
215. WWWolfy 149 25.08.26 18:41 Сейчас в теме
Вдруг кому-то пригодится:
сделал решение для просмотра Временных таблиц (МенеджерВременныхТаблиц)

Особенно актуально для ЗуП, но и в других моментах может пригодиться.

описание тут:
https://infostart.ru/1c/tools/2772689/
Прикрепленные файлы:
_Отладка_МенеджерВТ.cfe
216. mikeA 1 09.09.26 11:56 Сейчас в теме
Поиск по "ИмяПредставления) = " в ЗУП КОРП 3.1.38.40 даёт следующие имена таблиц представлений:

СрезПоследних
СотрудникиПодлежащиеАттестации
РезультатыАттестацииСотрудников
Периоды
ТаблицаРегистра
СрезПервых
ТаблицаРегистра
ТаблицаРегистра
СрезПоследних
КадровыеДанныеФизическихЛиц
КадровыеДанныеСотрудников
РабочиеМестаСотрудников
СотрудникиОрганизации
ОтработанноеВремя
КадровыеДанныеСотрудниковАнализНачисленийИУдержаний
ПодразделенияСортировкиСотрудников
НачисленныеДоходыНДФЛ
ШтатноеРасписание
ТекущаяКадроваяРасстановка
ФункциональныеОпцииОрганизаций
ФактическиеОтпускаСотрудников
ПлановыеНачисленияСотрудников
ПлановыеУдержанияСотрудников
СтажиСотрудников
СвойстваСтатейФинансирования
БухучетЗарплатыСотрудников
ПоказателиКадровогоПлана
СертификатыПоСпециальностиФизическихЛиц
СведенияОбАккредитацияхСпециалистов
ОсмотрыПоВреднымФакторамИВидамРаботФизическихЛиц
ОсмотрыПоВреднымФакторамФизическихЛиц
ОсмотрыПоВидамРаботФизическихЛиц
СведенияОКандидатах
ЛичныеДанныеКандидатов
СтажПринятыхКандидатов
РабочиеМестаОхраныТруда
ДАННЫЕУЧЕТАРАБОЧЕГОВРЕМЕНИСОТРУДНИКОВ
ДАННЫЕУЧЕТАВРЕМЕНИИСОСТОЯНИЙСОТРУДНИКОВ
ПлановоеВремя
Показать


И регулярка чтобы привести результаты поиска к человекочитаемому виду: "^.*?\(?"([А-Яа-я]*).*?"
Для отправки сообщения требуется регистрация/авторизация