нумерация с разными префиксами в одном справочнике
Доброе время суток!
Помогите пожалуйста - знающие?!*
Имеется один справочник "Реестр Актов"
Как создать нумерацию в одном справочнике с тремя префиксами (реквизит с перечислением "АКТ Брак", "АКТ о несоответствии", "АКТ об отсутствии документации")
К примеру: при выборе (форме элементов) реквизит с перечислением Актов (Код Акта) присваивался автоматически номер с префиксом выбранного акта.
АКТ Брак - Б-001
АКТ о несоответствии - Н-002
АКТ об отсутствии документации - Д-003
Помогите пожалуйста - знающие?!*
Имеется один справочник "Реестр Актов"
Как создать нумерацию в одном справочнике с тремя префиксами (реквизит с перечислением "АКТ Брак", "АКТ о несоответствии", "АКТ об отсутствии документации")
К примеру: при выборе (форме элементов) реквизит с перечислением Актов (Код Акта) присваивался автоматически номер с префиксом выбранного акта.
АКТ Брак - Б-001
АКТ о несоответствии - Н-002
АКТ об отсутствии документации - Д-003
По теме из базы знаний
- Перенумерация документов и справочников с учетом префиксов (учет уникальности кодов) для обычных и управляемых форм
- Получение максимального кода справочника при конвертации данных
- Как изменить нумерацию документов в БП 3.0
- Нумерация документов с префиксом по дате (настройка префикса документов)
- Универсальная замена префиксов объектов
Найденные решения
В модуле справочника
Процедура ПередЗаписью(Отказ)
ЭтотОбъект.УстановитьНовыйКод( ПолучитьПрефиксАкта(ВидАкта) );
КонецПроцедуры
Функция ПолучитьПрефиксАкта(ВидАкта)
Если ВидАкта = Перечисления.ВидыАктов.Брак Тогда
Возврат "Б-";
ИначеЕсли ВидАкта = Перечисления.ВидыАктов.Несоответствие Тогда
Возврат "Н-";
ИначеЕсли ВидАкта = Перечисления.ВидыАктов.ОтсутствиеДокументации Тогда
Возврат "Д-";
Иначе
Возврат "А-";
КонецЕсли;
КонецФункции
Показать
(2)
Немного подкорректировал )))
спасибо все получилось.
п.с. хочу еще разобраться (скрин во вложении) с префиксами все отлично получилось теперь количество точнее длину кода увеличьте до "4", а то к примеру Б-01 маловато будет т.к. объем актов за день может достигать до 30 и более, четверо сотрудников одновременно работают и в среднем делают на одного пользователя актов шт. 10.
В модуле справочник
Немного подкорректировал )))
Процедура ПередЗаписью(Отказ)
ЭтотОбъект.УстановитьНовыйКод(ПолучитьПрефиксАкта(КодАкта));
КонецПроцедуры
Функция ПолучитьПрефиксАкта(КодАкта)
Если КодАкта = Перечисления.Акты.АКТБрак Тогда
Возврат "Б-";
ИначеЕсли КодАкта = Перечисления.Акты.АКТОНесоответствии Тогда
Возврат "Н-";
ИначеЕсли КодАкта = Перечисления.Акты.АКТОбОтсутствииДокументации Тогда
Возврат "Д-";
Иначе
Возврат "А-";
КонецЕсли;
КонецФункции
Показатьспасибо все получилось.
п.с. хочу еще разобраться (скрин во вложении) с префиксами все отлично получилось теперь количество точнее длину кода увеличьте до "4", а то к примеру Б-01 маловато будет т.к. объем актов за день может достигать до 30 и более, четверо сотрудников одновременно работают и в среднем делают на одного пользователя актов шт. 10.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В модуле справочника
Процедура ПередЗаписью(Отказ)
ЭтотОбъект.УстановитьНовыйКод( ПолучитьПрефиксАкта(ВидАкта) );
КонецПроцедуры
Функция ПолучитьПрефиксАкта(ВидАкта)
Если ВидАкта = Перечисления.ВидыАктов.Брак Тогда
Возврат "Б-";
ИначеЕсли ВидАкта = Перечисления.ВидыАктов.Несоответствие Тогда
Возврат "Н-";
ИначеЕсли ВидАкта = Перечисления.ВидыАктов.ОтсутствиеДокументации Тогда
Возврат "Д-";
Иначе
Возврат "А-";
КонецЕсли;
КонецФункции
Показать
(2)
Немного подкорректировал )))
спасибо все получилось.
п.с. хочу еще разобраться (скрин во вложении) с префиксами все отлично получилось теперь количество точнее длину кода увеличьте до "4", а то к примеру Б-01 маловато будет т.к. объем актов за день может достигать до 30 и более, четверо сотрудников одновременно работают и в среднем делают на одного пользователя актов шт. 10.
В модуле справочник
Немного подкорректировал )))
Процедура ПередЗаписью(Отказ)
ЭтотОбъект.УстановитьНовыйКод(ПолучитьПрефиксАкта(КодАкта));
КонецПроцедуры
Функция ПолучитьПрефиксАкта(КодАкта)
Если КодАкта = Перечисления.Акты.АКТБрак Тогда
Возврат "Б-";
ИначеЕсли КодАкта = Перечисления.Акты.АКТОНесоответствии Тогда
Возврат "Н-";
ИначеЕсли КодАкта = Перечисления.Акты.АКТОбОтсутствииДокументации Тогда
Возврат "Д-";
Иначе
Возврат "А-";
КонецЕсли;
КонецФункции
Показатьспасибо все получилось.
п.с. хочу еще разобраться (скрин во вложении) с префиксами все отлично получилось теперь количество точнее длину кода увеличьте до "4", а то к примеру Б-01 маловато будет т.к. объем актов за день может достигать до 30 и более, четверо сотрудников одновременно работают и в среднем делают на одного пользователя актов шт. 10.
Прикрепленные файлы:
(2) спасибо за помощь все получилось, только вот проблема одна появилась.
Когда в справочник, хочу внести изменения в реестре после записи и сохранения изменяется номер Акта (пример: Б-0001 после корректировки и записи номер изменяется по порядку на Б-0002 и так далее).
Как устранить эту проблему?!
Когда в справочник, хочу внести изменения в реестре после записи и сохранения изменяется номер Акта (пример: Б-0001 после корректировки и записи номер изменяется по порядку на Б-0002 и так далее).
Как устранить эту проблему?!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот