|
Как изменить номер документа при сохранении автонумерации? | ☑ | ||
---|---|---|---|---|
0
Stim
14.12.15
✎
12:15
|
В связи с некоторыми особенностями работы клиент-банка, нужно изменить номер платежных поручений, заканчивающихся на "000" - на "001".
т.е. документов пп с номерами типа 0000-018000 не должно быть. У документа указан признак автонумерации и контроля уникальности номера. Изменяю номер при записи в модуле объекта,ПриУстановкеНовогоНомера() в модуле объекта, в подписке при записи, в подписке ПриУстановкеНовогоНомера ЭтотОбъект.номер = "12345678900"; и Источник.номер = "12345678900"; - ничего не помогает, номер инкрементируется стандартным образом. Как изменить номер в транзакции записи документа, при этом не отключая автонумерацию? |
|||
1
aleks_default
14.12.15
✎
12:27
|
ОбменДанными.Загрузка = истина не прокатит?
|
|||
2
Timon1405
14.12.15
✎
12:29
|
ПриУстановкеНовогоНомера(<СтандартнаяОбработка>, <Префикс>)
1й параметр какбы намекает... |
|||
3
Stim
14.12.15
✎
17:51
|
(2) а я там не узнаю, что номер заканчивается на "000", потому что самого номера еще нет
и УстановитьНовыйНомер() я тоже не смогу, вызову бесконечный цикл |
|||
4
AntonyFO
14.12.15
✎
17:59
|
В 2 верно сказали, отключить СтандартнуюОбработку и устанавливать номер в ПередЗаписью
|
|||
5
Stim
21.12.15
✎
17:01
|
ап
|
|||
6
Stim
21.12.15
✎
17:01
|
какая-то фигня.
уже как только не пробовал |
|||
7
hhhh
21.12.15
✎
17:08
|
(6) при записи уже поздно что-то менять. Всё уже записано в базу. Пересиль себя, делай ПередЗаписью()
|
|||
8
Stim
21.12.15
✎
17:13
|
Процедура ПодпискаНаСобытие3ПриЗаписи(Источник, Отказ) Экспорт
// Вставить содержимое обработчика. Номер = Источник.Номер; ДлинаНомера = стрДлина(Номер); Если Сред(Номер,ДлинаНомера -2) = "000" Тогда Источник.установитьНовыйНомер(); Конецесли; КонецПроцедуры не работает |
|||
9
Stim
21.12.15
✎
17:14
|
(7) перед записью номера еще нет. и я не могу его изменить никак, потому что не знаю, какой номер будет присвоен
|
|||
10
Stim
21.12.15
✎
17:15
|
+ причем, если я пишу
Процедура ПодпискаНаСобытие3ПриЗаписи(Источник, Отказ) Экспорт Источник.установитьНовыйНомер(); КонецПроцедуры то номера остаются только четные. а (8) не срабатывает |
|||
11
Stim
21.12.15
✎
17:16
|
в подписке при установке нового номера я тоже не могу узнать, какой номер будет иметь документ
|
|||
12
Масянька
21.12.15
✎
17:17
|
(10) Освобождать нумерация (как-то так) в конфигурации (свойства, по-моему) - истина?
|
|||
13
rabbidX
21.12.15
✎
17:21
|
После записи документа с номером на 999 генерировать новый документ и сразу помечать на удаление.
|
|||
14
rabbidX
21.12.15
✎
17:23
|
Кстати, почему не можешь узнать какой-номер? Построй запрос по нужным условиям, возьми последний док, и прикинь какой будет следующий.
|
|||
15
Stim
21.12.15
✎
17:24
|
(13) мимо
|
|||
16
Stim
21.12.15
✎
17:26
|
(14) платформа может по-другому отработать номер.
|
|||
17
Stim
21.12.15
✎
17:27
|
млин, ну почему такая конструкция не работает(((
Процедура ПодпискаНаСобытие1ПриУстановкеНовогоНомера1(Источник, СтандартнаяОбработка, Префикс) Экспорт Если Источник.дополнительныеСвойства.Свойство("ПринудительноИзменитьНомер") Тогда СтандартнаяОбработка = ЛОЖЬ; Номер = Источник.Номер; ДлинаНомера = стрДлина(Номер); Номер = Сред(Номер,1,ДлинаНомера -1 )+"1"; Источник.Номер = Номер; КонецЕсли; КонецПроцедуры Процедура ПодпискаНаСобытие3ПриЗаписи(Источник, Отказ) Экспорт Номер = Источник.Номер; ДлинаНомера = стрДлина(Номер); Если Сред(Номер,ДлинаНомера -2) = "000" Тогда Источник.дополнительныеСвойства.Вставить("ПринудительноИзменитьНомер",ЛОЖЬ); Источник.установитьНовыйНомер(); Конецесли; КонецПроцедуры и отладчик заходит во все модули, как положено.. |
|||
18
Stim
21.12.15
✎
17:30
|
Отладчег говорит, что в ПодпискаНаСобытие1ПриУстановкеНовогоНомера1
Источник.Номер = 00001001 а док все равно записывается с номером 00001000 |
|||
19
Гёдза
21.12.15
✎
17:42
|
А гле записать в ПриЗаписи?
|
|||
20
hhhh
21.12.15
✎
17:45
|
(18) еще раз: при записи документ УЖЕ записан в базу, второй раз он не будет записан, тхоть головой об стенку бейся. Смотри перед записью, там уже должен быть номер.
|
|||
21
Stim
21.12.15
✎
17:47
|
(20) нету там!
|
|||
22
Гёдза
21.12.15
✎
17:49
|
без записи нет номера. Поэтому двойной записи не избежать
|
|||
23
Stim
21.12.15
✎
17:51
|
(22) да, а вот как её сделать.. желательно в подписке
|
|||
24
Cyberhawk
21.12.15
✎
17:52
|
(23) В шары долбишься? Подписка у тебя ПриЗаписи в (17), а ключевое замечание - в (19)
|
|||
25
Гёдза
21.12.15
✎
17:52
|
Записать(), только нужно подумать чтоб не зациклилось
|
|||
26
Stim
21.12.15
✎
17:57
|
(25) оно в любом случае зациклится, если выполнять записать() в подписке на запись
|
|||
27
Stim
21.12.15
✎
17:58
|
+ зацикливается:
Процедура ПодпискаНаСобытие1ПриУстановкеНовогоНомера1(Источник, СтандартнаяОбработка, Префикс) Экспорт Если Источник.дополнительныеСвойства.Свойство("ПринудительноИзменитьНомер") Тогда СтандартнаяОбработка = ЛОЖЬ; Номер = Источник.Номер; ДлинаНомера = стрДлина(Номер); Номер = Сред(Номер,1,ДлинаНомера -1 )+"1"; Источник.Номер = Номер; КонецЕсли; КонецПроцедуры Процедура ПодпискаНаСобытие3ПриЗаписи(Источник, Отказ) Экспорт Номер = Источник.Номер; ДлинаНомера = стрДлина(Номер); Если Сред(Номер,ДлинаНомера -2) = "000" Тогда Источник.дополнительныеСвойства.Вставить("ПринудительноИзменитьНомер",ЛОЖЬ); Источник.записать(); КонецЕсли; КонецПроцедуры |
|||
28
Гёдза
21.12.15
✎
18:00
|
(26) ты программист или кто???
|
|||
29
Stim
21.12.15
✎
18:01
|
ура. вроде такое работает:
Процедура ПодпискаНаСобытие1ПриУстановкеНовогоНомера1(Источник, СтандартнаяОбработка, Префикс) Экспорт Если Источник.дополнительныеСвойства.Свойство("ПринудительноИзменитьНомер") Тогда СтандартнаяОбработка = ЛОЖЬ; Номер = Источник.Номер; ДлинаНомера = стрДлина(Номер); Номер = Сред(Номер,1,ДлинаНомера -1 )+"1"; Источник.Номер = Номер; КонецЕсли; КонецПроцедуры Процедура ПодпискаНаСобытие3ПриЗаписи(Источник, Отказ) Экспорт Номер = Источник.Номер; ДлинаНомера = стрДлина(Номер); Если Сред(Номер,ДлинаНомера -2) = "000" Тогда Источник.дополнительныеСвойства.Вставить("ПринудительноИзменитьНомер",ЛОЖЬ); Источник.УстановитьНовыйНомер(); Источник.записать(); КонецЕсли; КонецПроцедуры но это пздц |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |