нумерация с разными префиксами в одном справочнике

1. Марвин Хофнер (user797918) 01.01.18 01:40 Сейчас в теме
Доброе время суток!
Помогите пожалуйста - знающие?!*
Имеется один справочник "Реестр Актов"
Как создать нумерацию в одном справочнике с тремя префиксами (реквизит с перечислением "АКТ Брак", "АКТ о несоответствии", "АКТ об отсутствии документации")
К примеру: при выборе (форме элементов) реквизит с перечислением Актов (Код Акта) присваивался автоматически номер с префиксом выбранного акта.
АКТ Брак - Б-001
АКТ о несоответствии - Н-002
АКТ об отсутствии документации - Д-003
Найденные решения
2. Виталий s (schweigen) 01.01.18 07:52 Сейчас в теме
В модуле справочника
Процедура ПередЗаписью(Отказ)
	
	ЭтотОбъект.УстановитьНовыйКод( ПолучитьПрефиксАкта(ВидАкта) );
	
КонецПроцедуры
	
	
Функция ПолучитьПрефиксАкта(ВидАкта)
	
	Если ВидАкта = Перечисления.ВидыАктов.Брак Тогда
		Возврат "Б-";
	ИначеЕсли ВидАкта = Перечисления.ВидыАктов.Несоответствие Тогда
		Возврат "Н-";
	ИначеЕсли ВидАкта = Перечисления.ВидыАктов.ОтсутствиеДокументации Тогда
		Возврат "Д-";
	Иначе
		Возврат "А-";
	КонецЕсли;
	
КонецФункции
Показать
user797918; +1 Ответить
3. Марвин Хофнер (user797918) 01.01.18 15:27 Сейчас в теме
(2)
В модуле справочник


Немного подкорректировал )))


Процедура ПередЗаписью(Отказ)
    
    ЭтотОбъект.УстановитьНовыйКод(ПолучитьПрефиксАкта(КодАкта));
    
КонецПроцедуры
    
    
Функция ПолучитьПрефиксАкта(КодАкта)
    
    Если КодАкта = Перечисления.Акты.АКТБрак Тогда
        Возврат "Б-";
    ИначеЕсли КодАкта = Перечисления.Акты.АКТОНесоответствии Тогда
        Возврат "Н-";
    ИначеЕсли КодАкта = Перечисления.Акты.АКТОбОтсутствииДокументации Тогда
        Возврат "Д-";
    Иначе
        Возврат "А-";
    КонецЕсли;
    
КонецФункции
Показать


спасибо все получилось.

п.с. хочу еще разобраться (скрин во вложении) с префиксами все отлично получилось теперь количество точнее длину кода увеличьте до "4", а то к примеру Б-01 маловато будет т.к. объем актов за день может достигать до 30 и более, четверо сотрудников одновременно работают и в среднем делают на одного пользователя актов шт. 10.
Прикрепленные файлы:
4. Герман Устюжанин (ger_kar) 01.01.18 15:39 Сейчас в теме
(3)Ну так увеличьте длину кода в справочнике до нужного вам размера. Откройте справочник в конфигураторе, и на вкладке "Данные" см. поле "Длина кода".
5. Марвин Хофнер (user797918) 01.01.18 15:46 Сейчас в теме
(4) да все уже так сделал получилось ))))
Остальные ответы
2. Виталий s (schweigen) 01.01.18 07:52 Сейчас в теме
В модуле справочника
Процедура ПередЗаписью(Отказ)
	
	ЭтотОбъект.УстановитьНовыйКод( ПолучитьПрефиксАкта(ВидАкта) );
	
КонецПроцедуры
	
	
Функция ПолучитьПрефиксАкта(ВидАкта)
	
	Если ВидАкта = Перечисления.ВидыАктов.Брак Тогда
		Возврат "Б-";
	ИначеЕсли ВидАкта = Перечисления.ВидыАктов.Несоответствие Тогда
		Возврат "Н-";
	ИначеЕсли ВидАкта = Перечисления.ВидыАктов.ОтсутствиеДокументации Тогда
		Возврат "Д-";
	Иначе
		Возврат "А-";
	КонецЕсли;
	
КонецФункции
Показать
user797918; +1 Ответить
3. Марвин Хофнер (user797918) 01.01.18 15:27 Сейчас в теме
(2)
В модуле справочник


Немного подкорректировал )))


Процедура ПередЗаписью(Отказ)
    
    ЭтотОбъект.УстановитьНовыйКод(ПолучитьПрефиксАкта(КодАкта));
    
КонецПроцедуры
    
    
Функция ПолучитьПрефиксАкта(КодАкта)
    
    Если КодАкта = Перечисления.Акты.АКТБрак Тогда
        Возврат "Б-";
    ИначеЕсли КодАкта = Перечисления.Акты.АКТОНесоответствии Тогда
        Возврат "Н-";
    ИначеЕсли КодАкта = Перечисления.Акты.АКТОбОтсутствииДокументации Тогда
        Возврат "Д-";
    Иначе
        Возврат "А-";
    КонецЕсли;
    
КонецФункции
Показать


спасибо все получилось.

п.с. хочу еще разобраться (скрин во вложении) с префиксами все отлично получилось теперь количество точнее длину кода увеличьте до "4", а то к примеру Б-01 маловато будет т.к. объем актов за день может достигать до 30 и более, четверо сотрудников одновременно работают и в среднем делают на одного пользователя актов шт. 10.
Прикрепленные файлы:
4. Герман Устюжанин (ger_kar) 01.01.18 15:39 Сейчас в теме
(3)Ну так увеличьте длину кода в справочнике до нужного вам размера. Откройте справочник в конфигураторе, и на вкладке "Данные" см. поле "Длина кода".
5. Марвин Хофнер (user797918) 01.01.18 15:46 Сейчас в теме
(4) да все уже так сделал получилось ))))
6. Марвин Хофнер (user797918) 11.01.18 20:13 Сейчас в теме
(2) спасибо за помощь все получилось, только вот проблема одна появилась.
Когда в справочник, хочу внести изменения в реестре после записи и сохранения изменяется номер Акта (пример: Б-0001 после корректировки и записи номер изменяется по порядку на Б-0002 и так далее).
Как устранить эту проблему?!
7. Виталий s (schweigen) 12.01.18 03:01 Сейчас в теме
(6)
Процедура ПередЗаписью(Отказ)
    Если ЭтоНовый() Тогда
         УстановитьНовыйКод(ПолучитьПрефиксАкта(КодАкта));
    КонецЕсли;
КонецПроцедуры
8. Марвин Хофнер (user797918) 12.01.18 23:20 Сейчас в теме
(7)
Процедура ПередЗаписью(Отказ)
Если ЭтоНовый() Тогда
УстановитьНовыйКод(ПолучитьПрефиксАкта(КодАкта));
КонецЕсли;
КонецПроцедуры


Спасибо огромное)))))
Оставьте свое сообщение