Имя: Пароль:
1C
1С v8
автоматически генерировать номер или код если он не задан, не сработало.
0 zippygrill
 
14.07.11
13:51
Поставил галку у загружаемого объекта, но код по прежднему образовался из источника. что за фигня?
1 zippygrill
 
14.07.11
13:55
в Конвертации.
2 sereban
 
14.07.11
13:58
Убери код из ПКС если он не нужен.
3 Aleksey
 
14.07.11
14:00
(0)
"автоматически генерировать номер или код если он НЕ ЗАДАН"
и
"код по прежднему образовался из источника"

Найди отличия
4 zippygrill
 
14.07.11
14:00
(2)а его как раз и НЕТУ в ПКС объекта. еще идеи?
5 Aleksey
 
14.07.11
14:01
(4) Если код перенеся, значит есть правило конвертации свойства "код"
6 Aleksey
 
14.07.11
14:01
, если конечно ты его сам конечно не формируешь из параметров
7 zippygrill
 
14.07.11
14:03
(6) плеа.... нету никакой ПКС Код или Номер в ПКО. да и без параметров работаю.
8 Aleksey
 
14.07.11
14:07
(7) Ну чудес же не бывает? Точно перенеся, или просто совпал код? Есть ли код в xml файле
9 zippygrill
 
14.07.11
14:12
(8) в xml тоже нету это свойства.
10 zippygrill
 
14.07.11
14:25
фигня.
11 zippygrill
 
14.07.11
14:27
ап
12 zippygrill
 
14.07.11
14:39
ну?
13 zippygrill
 
14.07.11
14:46
нет?
14 pavig
 
14.07.11
14:56
(0) значит перегружаемый элемент справочника уже был в применике, и у него был назначенный код
15 pavig
 
14.07.11
14:57
не?
16 GenV
 
14.07.11
14:58
(0) Галка "автоматически генерировать номер или код если он не задан" означает, что когда ты загрузил объект и у него пустой код/номер, то этот код/номер будет сгенерирован, а не останется пустым. Т.ч. имеет смыл только для новых объектов или для объектов у которых при загрузке будет пустой код/номер.
17 zippygrill
 
14.07.11
15:18
(16) пример: перенос, скажем, контрагент с синхронизацией по ИНН. при загрузки если не будет найден контрагент с ИНН-123456 то создается новый объект. Вот у этого нового объекта и будет уникальная нумерация(Новый Код) приемника.
не так разве все?
18 zippygrill
 
14.07.11
15:38
ок. тогда как задать новый код объекту?
19 GenV
 
14.07.11
15:40
(17) Да.
ЗЫ Для обработки УниверсальныйОбменДаннымиXML так же должна быть установлена галка "ОбменДанными.Загрузка = Истина". Будет присвоен новый код через УстановитьНовыйКод()
20 zippygrill
 
14.07.11
15:48
(19) И в Правах и в обработке установлены галки. В обработке она по умолчанию стойт.
21 zippygrill
 
14.07.11
15:49
*Правилах
22 zippygrill
 
14.07.11
16:05
вот ПКС объекта(нету никакого ПКС "Код"): http://i53.tinypic.com/1269zd2.jpg
вот Настройка объекта с галкой автогенерировать: http://i52.tinypic.com/i290ed.jpg
вот галка "ОбменДанными.Загрузка = Истина" в обработке: http://i56.tinypic.com/126cqrn.jpg

что еще блин?
23 GenV
 
14.07.11
16:23
(22) Что у тебя в обработчике(-ах) загрузки для ПКО Контрагенты?
24 zippygrill
 
14.07.11
16:29
(23) в ПоляПойска если этогруппа то идет пойск по родитель,наименование,этогруппа иначе по инн и этогруппа.
в ПослеЗагрузки если родитель пустой тогда подставляю этот параметр.
Параметр:
спрКонтрагенты = Справочники.Контрагенты.НайтиПоНаименованию("Контрагенты МЦБ(7.7)",Истина,Справочники.Контрагенты.ПустаяСсылка());
Если спрКонтрагенты.Пустая() Тогда
   спрКонтрагенты = Справочники.Контрагенты.СоздатьГруппу();
   спрКонтрагенты.Наименование = "Контрагенты МЦБ(7.7)";
   спрКонтрагенты.Записать();
КонецЕсли;
Параметры.Вставить("Контрагент", спрКонтрагенты.Ссылка);

ну и все.
25 zippygrill
 
14.07.11
16:44
+ и почему-то у программной созданой группы Контрагенты МЦБ(7.7) "Код" уже из источника. что и неправильно.
26 GenV
 
14.07.11
16:49
(24) Добавь в ПослеЗагрузки ПКО Контрагенты код:
Сообщить("ГенерироватьНовыйНомерИлиКодЕслиНеУказан=" + ГенерироватьНовыйНомерИлиКодЕслиНеУказан);
Сообщить("ИмяТипаОбъекта=" + ИмяТипаОбъекта);

или в отладчике при загрузке проверь, что для этих объектов заходит в процедуру ПровестиГенерациюКодаНомераПриНеобходимости

ЗЫ Может правила не обновил? Попробуй переименовать твою программную группу (естественно в тестовой базе) и поставить её другой код.
27 zippygrill
 
14.07.11
16:58
вот что на картинке. Как видишь коды не те: http://i51.tinypic.com/118ocoo.jpg
28 GenV
 
14.07.11
17:12
(27) Ну, это скорее всего коды не из источника, а последний код из приемника (если у тебя в приемнике есть где-то в справочнике элемент с префиксом "Й", то при создании группы и присвоении нового кода через УстановитьНовыйКод() у тебя будет код с таким префиксом как самый последний).
29 zippygrill
 
14.07.11
17:15
(28)согласен. Но до этого я же загружал, можно сказать в чистую базу. а код всеравно из источника брался.
30 GenV
 
14.07.11
17:19
(29) Тогда добавь в ПослеЗагрузки
Сообщить("Код=" + Объект.Код);
и сразу будет видно загружается код или генерируется после загрузки объекта из-за префикса.
ЗЫ Можно и самому его генерировать, если хочешь что бы начинался с "0" в ПослеЗагрузки через:
Объект.УстановитьНовыйКод("0").
31 zippygrill
 
14.07.11
17:21
+ вот из картинке видно что код Й00001466 был первый загружен. Откуда он взялся если в спр нету вообще такого кода.

(30)я ранее пробовал Объект.УстановитьНовыйКод() но ругался что нету такого метода :)
32 GenV
 
14.07.11
17:25
(31) Вот если бы убрал иерархический просмотр и сделал сортировку по коду тогда да, было бы видно )
Плохо пробывал или не в ПослеЗагрузки. В любом случае можешь проверить в отладчике: на входе в ПровестиГенерациюКодаНомераПриНеобходимости кода быть не должно, а на выходе уже сгенерированный код.
33 zippygrill
 
14.07.11
17:59
(30) вот что пишет с Сообщить("Код=" + Объект.Код);

Код=
34 zippygrill
 
14.07.11
18:21
+ Написал Объект.УстановитьНовыйКод("0"). У всех элементов присваивался код кроме моей программно созданой группы.
35 GenV
 
14.07.11
21:39
(33) Правильно пишет. Код же генерируется потом.
(34) Ну, ты же не назначаешь своей группе код с префиксом "0", а последний префикс элементов у тебя "Й"
36 zippygrill
 
15.07.11
13:51
(35)спс. получилось без Объект.УстановитьНовыйКод("0"). Плохо что еще не понял до конца почему до этого не работало((