Skip to content
лого - блог 1с программиста

Блог 1С программиста

Наработки, заметки и другая информация по 1С

  • Главная
  • ЗУП 3.1
    • Разработка
      • Обработки
      • Отчеты
      • Печатные формы
      • Расширения
    • Инструкции
    • Ответы техподдержки 1С
    • Общие вопросы
  • УХ 3.2
  • Интеграции и обмены
  • Шаблоны и заготовки
    • Типовые приемы
    • Отчеты
    • Печатные формы
    • Расширения
  • Контакты
  • Toggle search form

Расширение “Присвоение свободного табельного номера ЗУП 3.1”

Posted on 6 декабря 22 г.26 января 23 г. By admin Комментариев к записи Расширение “Присвоение свободного табельного номера ЗУП 3.1” нет

Содержание:

  • Как формируются табельные номера в ЗУП?
  • Что будет если кончаться табельные номера ЗУП?
  • Реализация получения последнего свободного табельного номера в расширении

Расширение “Установка свободных табельных номеров”Скачать

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


Как формируются табельные номера в ЗУП?

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

Что будет если кончаться табельные номера ЗУП?
Табельные номера сотрудников

После переноса данных из другой учетной системы, возникла ситуация, что в базе появился сотрудник с табельным номером 99899 – это означает, что через 100 приемов на работу, нумератор упрется в свой максимум и все последующие сотрудники будут иметь табельный номер 99999 (не смотря на включённый в настройках контроль уникальности табельных номеров). Для решения этой проблемы было разработано расширение по поиску и присвоению свободных табельных номеров.

Реализация получения последнего свободного табельного номера в расширении

Проверено на версии ЗУП 3.1.23.257. Реализовано, через создание эталонной таблицы из 99999 строк типа “0000-00000” и сравнение в запросе с существующими значениями:

1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Функция ПолучитьПоследнийСвободныйКодСотрудника()
Префикс = "";
ПрефиксацияОбъектовСобытия.УстановитьПрефиксИнформационнойБазыИОрганизации(Ссылка, Истина, Префикс);
ТЗДиапазонВсехКодов = Новый ТаблицаЗначений;
ТЗДиапазонВсехКодов.Колонки.Добавить("КодДиапазона", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(10)));
Для Сч = 1 По 99999  Цикл
СтрокаРезультат = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(Строка(Сч), 5, "0", "Слева");    
НоваяСтрока = ТЗДиапазонВсехКодов.Добавить();
НоваяСтрока.КодДиапазона = Префикс+СтрокаРезультат;
КонецЦикла;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТЗДиапазонВсехКодов",ТЗДиапазонВсехКодов);
Запрос.Текст = "ВЫБРАТЬ
               | ТЗДиапазонВсехКодов.КодДиапазона КАК КодДиапазона
               |ПОМЕСТИТЬ ВТДиапазонВсехКодов
               |ИЗ
               | &ТЗДиапазонВсехКодов КАК ТЗДиапазонВсехКодов
               |;
               |
               |////////////////////////////////////////////////////////////////////////////////
               |ВЫБРАТЬ
               | МИНИМУМ(ВТДиапазонВсехКодов.КодДиапазона) КАК КодДиапазона
               |ИЗ
               | ВТДиапазонВсехКодов КАК ВТДиапазонВсехКодов
               | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
               | ПО ВТДиапазонВсехКодов.КодДиапазона = Сотрудники.Код
               |ГДЕ
               | Сотрудники.Код ЕСТЬ NULL
               |;
               |
               |////////////////////////////////////////////////////////////////////////////////
               |УНИЧТОЖИТЬ ВТДиапазонВсехКодов";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.КодДиапазона;
КонецЕсли;
    
Возврат "";
КонецФункции

Ссылка на скачивание расширения в начале описания.

Рекомендации

  • Программная загрузка фото физических лиц в ЗУП 3.1
  • Расширение "Убрать информацию при запуске 1С ЗУП 3.1"
  • Расширение "Фото в карточке сотрудника ЗУП 3.1"
ЗУП 3.1, Разработка, Расширения Tags:табель

Навигация по записям

Previous Post: Получение данных о времени ЗУП 3.1
Next Post: Проверка вывода на печать – если не умещается, печатать с нового листа

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ДзенTelegram

MDM web-сервис XDTO XML КД 2.0 Оплата по среднему заработку П-4 Резервы отпусков СЗВ-СТАЖ СЗВ-ТД СКД СТД-Р СЭДО ФСС ФСС НС ЭЛН больничные листы взносы выплаты вычеты запрос кадровая история кадровые данные кадровые переводы контактная информация легкий труд мастер-данных обмен данными отпуска печать печать без проверки печать с диалогом повышение квалификации пользователи представление прием на работу рабочее время синхронизация ЗУП и БП табель таблица периодов фотография штатное расписание

Рубрики

  • ЗУП 3.1 (33)
    • Инструкции (2)
    • Общие вопросы (11)
    • Ответы техподдержки 1С (8)
    • Разработка (8)
      • Обработки (3)
      • Отчеты (1)
      • Печатные формы (1)
      • Расширения (3)
  • Интеграции и обмены (4)
  • УХ 3.2 (1)
  • Шаблоны и заготовки (16)
    • Отчеты (9)
    • Печатные формы (6)
    • Расширения (1)
    • Типовые приемы (4)
Top.Mail.Ru

© 2022-2023 myblog-1c.ru