Имя: Пароль:
1C
1С v8
Правила конвертации!
, ,
0 Aleksei_Pro
 
14.12.12
12:32
Мне нужно в правилах проверку на номер  документа, если с таким номером документ уже существует - то перелить документ с новым номером.
В процедуре при загрузке пишу:
Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Дата",Год(Объект.Дата));
   Запрос.УстановитьПараметр("ДатаТек",Объект.Дата);
   Запрос.УстановитьПараметр("НомерДокумента",Объект.номер);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Ссылка
   |ИЗ
   |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |    ГОД(РеализацияТоваровУслуг.Дата) = &Дата
   |    И РеализацияТоваровУслуг.Номер = &НомерДокумента
   |    И РеализацияТоваровУслуг.Дата <> &ДатаТек";
   Если НЕ Запрос.Выполнить().Пустой()Тогда
       Объект.Комментарий = "№-"+Объект.номер + ","+ Объект.Комментарий;
       Объект.УстановитьНовыйНомер();
   КонецЕсли;
В итоге если он находит такой документ с таким номером , то он не переносит а просто замещает старый документ ( хотя поиск только по уникальному идент стоит)
1 informts
 
14.12.12
12:35
хм, странные действия ))
2 Stim
 
14.12.12
12:35
не проще в попытке записать объект, в исключении - Объект.УстановитьНовыйНомер();
3 Aleksei_Pro
 
14.12.12
12:36
(1) проблема в том что во 2 базе уже есть документы под такими номерами и мне ндо если такие доки есть - то для них создать новый номер
4 Aleksei_Pro
 
14.12.12
12:36
(2) в процедуре перед загрузкой?
5 Stim
 
14.12.12
12:37
(4) после загрузки!
6 Stim
 
14.12.12
12:37
когда объект создан, но еще не записан
7 Aleksei_Pro
 
14.12.12
12:38
попробую щас, спасибо
8 Popkorm
 
14.12.12
12:40
может сначало надо ПолучитьОбъект();
9 Popkorm
 
14.12.12
12:41
+(8) Объект = Объект.ПолучитьОбъект();
10 Stim
 
14.12.12
12:42
(8) пля. Объект - это и есть ДокументОбъект, не надо ничего получать
11 Redkiy
 
14.12.12
12:42
В обработчике ПКО "После загрузки" проверяй параметр ОбъектНайден.
12 Popkorm
 
14.12.12
12:44
тут не надо: Объект.УстановитьНовыйНомер(Префикс)
13 Redkiy
 
14.12.12
12:46
+(11) и убери нафик поиск по гуид, оставь только по номеру
14 К_Дач
 
14.12.12
12:47
Вообще-то там в настройках есть галочка "не замещать объекты, найденные в приемники, а только создавать новые". Поставь для своего документа в ПКО поиск по номеру и дате и взведи этот флаг. И никакой код в обработчике "при загрузки" не надо писать
15 К_Дач
 
14.12.12
12:48
(13) +1, и это тоже
16 Aleksei_Pro
 
14.12.12
13:46
не работает
17 Aleksei_Pro
 
14.12.12
13:55
убрал гуид , поля поиска поставил - СтрокаИменСвойствПоиска = "Номер, Дата";
загрузил документ , поменял дату, повторно гружу - он не создает новый а меняет старый
18 Aleksei_Pro
 
14.12.12
14:26
Ребят подскажите как мне если документ найден , создать новый документ с новым номером?
19 Aleksei_Pro
 
14.12.12
14:29
проблема в том что номера такие уже есть в базе и при загрузке он не переносит руается что такие номера сущ.
20 Aleksei_Pro
 
14.12.12
15:05
сделал
Закон Брукера: Даже маленькая практика стоит большой теории.