|
Замена префикса у всех номеров документов. | ☑ | ||
---|---|---|---|---|
0
lirt82
01.08.17
✎
08:08
|
Наваял обработку, она должна перебирать все доки если находит в номере дока первый символ как букву тогда должна взять из реквизита формы НовыйПрефикс и заменить первые три символа на новый префикс из поля реквизита НовыйПрефикс, в результате выполнения у меня ошибка был номер 000000001 а после выполнения обработки становиться БУХБУХБУХ1, подскажите как исправить, должен быть номер БУХ000001.
|
|||
1
lirt82
01.08.17
✎
08:08
|
Наваял обработку, она должна перебирать все доки если находит в номере дока первый символ как букву тогда должна Процедура КнопкаВыполнитьНажатие(Кнопка)
Если НЕ ЗначениеЗаполнено(НовыйПрефикс) Тогда Предупреждение("Укажите новый префикс!"); Возврат КонецЕсли; //переберем все документы содержащие префикс (буквы) Запрос=Новый Запрос; Текст=""; Для Каждого Документ Из Метаданные.Документы Цикл Текст=Текст+"ВЫБРАТЬ Ссылка ИЗ Документ."+Документ.Имя+" ОБЪЕДИНИТЬ "; КонецЦикла; Запрос.Текст=Лев(Текст,СтрДлина(Текст)-СтрДлина(" ОБЪЕДИНИТЬ ")); Выборка=Запрос.Выполнить().Выгрузить(); //выгрузили в ТЗ Для каждого Стр Из Выборка Цикл //ищем префикс содержащий буквы, если первый символ в номере это буква тогда убираем префикс и добавляем свой Док = Стр.Ссылка.ПолучитьОбъект(); ИщемБуквы = Найти("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ", Лев(Док.Номер, 1)); Если ИщемБуквы = 0 Тогда Продолжить; Иначе НовыйНомерДока = СтрЗаменить(Док.Номер, Лев(Док.Номер, 3), НовыйПрефикс); Док.Номер = НовыйНомерДока; Док.Записать(); Сообщить(Док); Выборка.Удалить(Стр); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
2
Lexey_
01.08.17
✎
08:19
|
(1) вопрос-то какой?
|
|||
3
lirt82
01.08.17
✎
08:21
|
в результате выполнения этого кода был номер 000000001 а после выполнения обработки становиться БУХБУХБУХ1, а должен быть номер БУХ000001
|
|||
4
1dvd
01.08.17
✎
08:22
|
//НовыйНомерДока = СтрЗаменить(Док.Номер, Лев(Док.Номер, 3), НовыйПрефикс);
НовыйНомерДока = НовыйПрефикс + Сред(Док.Номер, СтрДлина(Док.Номер)+1); |
|||
5
1dvd
01.08.17
✎
08:23
|
(4)* пардон, не так
НовыйНомерДока = НовыйПрефикс + Сред(Док.Номер, СтрДлина(НовыйПрефикс )+1); |
|||
6
mehfk
01.08.17
✎
08:24
|
(0) >> ...подскажите как исправить...
Наваять правильную обработку. |
|||
7
DrZombi
гуру
01.08.17
✎
08:35
|
Используй
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) УстановитьНовыйНомер (SetNewNumber) Синтаксис: УстановитьНовыйНомер(<ПрефиксНомера>) Параметры: <ПрефиксНомера> (необязательный) Тип: Строка. Префикс устанавливаемого номера. Значение по умолчанию: Пустая строка. Описание: Устанавливает новый номер документа для заданного префикса номера. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Для документов с нумерацией в пределах периода, номер устанавливается в пределах периода, соответствующего установленной дате документа. Если дата - пустая, процедура установит номер в пределах периода соответствующего пустой дате. Пример: РасходнаяНакладная.УстановитьНовыйНомер(ПрефиксИБ); |
|||
8
catena
01.08.17
✎
08:36
|
За 8 лет ни разу СтрЗаменить не применял??
|
|||
9
DrZombi
гуру
01.08.17
✎
08:37
|
+(0)Познай для себя
Глобальный контекст (Global context) ОбновитьНумерациюОбъектов (RefreshObjectsNumbering) Синтаксис: ОбновитьНумерациюОбъектов(<Метаданные>) Параметры: <Метаданные> (необязательный) Тип: Массив; ОбъектМетаданных: |
|||
10
lirt82
01.08.17
✎
08:47
|
(7) то что нужно:-)
|
|||
11
lirt82
01.08.17
✎
11:09
|
Сделал так
Для каждого Стр Из Выборка Цикл Док = Стр.Ссылка.ПолучитьОбъект(); Док.УстановитьНовыйНомер(НовыйПрефикс); Док.Записать(); Сообщить(Док); КонецЦикла; теперь если у документа был номер БУХ000001, то в поле реквизита я поставил ККК, после обработки номер стал БУХККК001, не совсем правильно |
|||
12
lirt82
01.08.17
✎
11:10
|
было БУХ000001 а должно стать ККК000001
|
|||
13
Дмитрий
01.08.17
✎
11:18
|
(12) УстановитьНовыйНомер() тебе и числовую часть перенумерует.
смотри (5), если у тебя старый и новый префиксы одинаковой длины |
|||
14
Ц_У
01.08.17
✎
11:21
|
смотри подписку на событие установки номера
префиксбазы + префиксорганизации + префикс + номер |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |