Имя: Пароль:
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"). Плохо что еще не понял до конца почему до этого не работало((
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn