Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 20:48

Нумерация документов

Автор Кот_Леопольд, 30 янв 2019, 08:35

0 Пользователей и 1 гость просматривают эту тему.

Кот_Леопольд

Всем добрый день. Подскажите пожалуйста как сделать свою нумерацию документов. Конфигурацию пишу с нуля, платформа 8.3. На данный момент у меня идет стандартная нумерация "00000001", хочу чтобы нумерация для документов Договора была например такой: "2019/0001/БК" где "2019" год, "0001" непосредственно номер и "БК" тип договора.  Подскажите как лучше это сделать.

LexaK

откройте модуль документа, и перехватите обработку процедуры
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    СтандартнаяОбработка = Ложь;
   // дальше ваш код по формированию нужного номера
КонецПроцедуры
если помогло нажмите: Спасибо!

Поиск родных

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

Кот_Леопольд

Цитата: Геннадий ОбьГЭС от 30 янв 2019, 13:45
Поменяйте документ по нужному Вам шаблону и автонумерация подзхватит ее со следующего документа.
Выложите скриншоты - что пробовали и что (не) получилось

Мне нужно что бы при разных типа договора был разный префикс
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    СтандартнаяОбработка = Ложь;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Договор.Номер КАК Номер
|ИЗ
| Документ.Договор КАК Договор
|
|УПОРЯДОЧИТЬ ПО
| Договор.Номер УБЫВ";


Ном = СокрЛП(Запрос.Выполнить().Выгрузить()[0].Номер);
//Номер = "2019/0001/БК" ;
ДлинаНомераСПрефиксом = 12;

   
    Номер =Строка(Формат(Дата,"ДФ=yyyy")+"/"+Формат(Число(Сред(ном,СтрДлина(Префикс)+1))+1,"ЧВН= ; ЧЦ="+(ДлинаНомераСПрефиксом-8)+" ; ЧГ=")+"/"+ТипДоговора);

КонецПроцедуры;


Ошибка выскакивает в отладчики при записи документа
Ошибка при выполнении обработчика - 'ПриУстановкеНовогоНомера'
по причине:
{Документ.Договор.МодульОбъекта(20)}: Преобразование значения к типу Число не может быть выполнено
    Номер =Строка(Формат(Дата,"ДФ=yyyy")+"/"+Формат(Число(Сред(ном,СтрДлина(Префикс)+1))+1,"ЧВН= ; ЧЦ="+(ДлинаНомераСПрефиксом-8)+" ; ЧГ=")+"/"+ТипДоговора);

Добавлено: 31 янв 2019, 16:40


Цитата: LexaK от 30 янв 2019, 10:14
откройте модуль документа, и перехватите обработку процедуры
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    СтандартнаяОбработка = Ложь;
   // дальше ваш код по формированию нужного номера
КонецПроцедуры

Макет номера получилось сделать, но почему то не прибавляет 1 к следующим документам

Функция ВернутьНомерЧислом(Знач ПодСтрока)
    Сч=2;
    Пока Истина Цикл
        Если ПустаяСтрока(ПодСтрока) тогда
            Возврат 0;
        КонецЕсли;
        Попытка
            Число = Число(ПодСтрока);
            Возврат Число;
        Исключение
            ПодСтрока = Сред(ПодСтрока,Сч);
            Сч = Сч+1;
        КонецПопытки;
    КонецЦикла

КонецФункции

Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    СтандартнаяОбработка = Ложь;

Запрос = Новый Запрос();
     Запрос.Текст =
     "ВЫБРАТЬ
     | МАКСИМУМ(Договор.Номер) КАК Номер
     |ИЗ
     | Документ.Договор КАК Договор";

Результат = Запрос.Выполнить().Выбрать();
Результат.Следующий();

Длинна = Ссылка.Метаданные().СтандартныеРеквизиты.Номер.Тип.КвалификаторыСтроки.Длина;
Номер = Строка(Формат(Дата,"ДФ=yyyy"))+"/"+Строка(Формат(ВернутьНомерЧислом(Результат.Номер)+1,"ЧВН= ; ЧЦ="+(Длинна-8)+" ; ЧГ="))+"/"+Строка(ТипДоговора); КонецПроцедуры;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск