INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Федотов Виталий | Ведущий специалист | ГК Невада

«Повышение эффективности работы отдела разработки»

Основные слагаемые успеха: - Архитектура - Грамотный код - Ориентация на повторное использование кода - Управление ошибками Методы: - Обучение линейного и руководящего состава - Внимание на архитектуру - Итерационный подход к разработке API - Профилирование Результат: Повышение производительности труда отдела разработки в 2-3 раза. Особенность доклада заключается в изложении личного опыта построения работы отдела, где описанные методы были с успехом применены и повысили производительность труда отдела разработки.

1. user797918 01.01.18 01:40 Сейчас в теме

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

Доброе время суток!
Помогите пожалуйста - знающие?!*
Имеется один справочник "Реестр Актов"
Как создать нумерацию в одном справочнике с тремя префиксами (реквизит с перечислением "АКТ Брак", "АКТ о несоответствии", "АКТ об отсутствии документации")
К примеру: при выборе (форме элементов) реквизит с перечислением Актов (Код Акта) присваивался автоматически номер с префиксом выбранного акта.
АКТ Брак - Б-001
АКТ о несоответствии - Н-002
АКТ об отсутствии документации - Д-003
Найденные решения
2. 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. 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. schweigen 12.01.18 03:01 Сейчас в теме
(6)
Процедура ПередЗаписью(Отказ)
    Если ЭтоНовый() Тогда
         УстановитьНовыйКод(ПолучитьПрефиксАкта(КодАкта));
    КонецЕсли;
КонецПроцедуры
8. user797918 12.01.18 23:20 Сейчас в теме
(7)
Процедура ПередЗаписью(Отказ)
Если ЭтоНовый() Тогда
УстановитьНовыйКод(ПолучитьПрефиксАкта(КодАкта));
КонецЕсли;
КонецПроцедуры


Спасибо огромное)))))
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии


Программист 1С
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Удаленный бизнес-аналитик 1С
Санкт-Петербург
Временный (на проект)