Имя: Пароль:
1C
1C 7.7
v7: Конвертация справочника номенклатура
,
0 renowka
 
27.09.21
15:29
Добрый день,

Не могу разобраться в чем дело. Пишу правила конвертации справочника номенклатура из 7.7 на основе ут. Справочник иерархический. В 8.3 эта иерархия переносится неполностью, часть позиций переносится в правильные группы, а часть в пустые папки. В исходной базе такого нет.
В ПКО стоит искать по коду, это группа.

В чем может быть причина?
1 ДенисЧ
 
27.09.21
15:36
Код не уникальный.
А так, ошибка там же, где и всегда. В кислоте.
2 renowka
 
27.09.21
15:43
(1)
В базе 7.7 в одной группе лежит 7 товаров, в 8.3 переносится 4 в эту группу, остальные в пустую
3 hhhh
 
27.09.21
17:14
(2) ну значит в правилах переноса накосячил. Или база косячная, может в 7.7 код - число, а в 8 строка, и она просто код не находит. Делайте поиск по наименованию.
4 renowka
 
27.09.21
19:07
(1) Вы были правы, код мало того что не уникален в 7.7, так еще и текстом записан.
Еще проблема вылезла. Код правильно сформировал в конвертации, но в 8.3 он не записывается. В файле xml в реквизитах все есть
5 big
 
27.09.21
20:01
Перед выгрузкой Номенклатуры в ПКО сформировать уникальный "код". Лучше всего из ID элемента справочника, хотя потом при надобности будет неудобно искать визуально. И ещё - неуникальный код все равно уникален в пределах подчинения. Перед выгрузкой можно формировать составной код - из элемента и родителя.
6 renowka
 
27.09.21
20:42
(5) Код сформирован в пко перед выгрузкой Значение = ПривестиНомерКДлине(ПолучитьЗначение(Источник, "Код"), 11);
В xml имею следующее
-<Свойство Тип="Строка" Имя="Код">
<Значение>С000000028</Значение>
</Свойство>

но этот код игнорируется при загрузке в 8.3 вообще. новые элементы создаются с пустым кодом
7 Злопчинский
 
27.09.21
21:04
хм.. такая основополагающая сущность как код идет как Свойство в выгрузке..?
8 acanta
 
27.09.21
21:10
Идеологически старый код из 7ки делается отдельным реквизитом с галочкой отбор, а код создается в 8ке сам.
После перезагрузки реквизит можно будет убрать, но к сожалению нельзя частично замок восстановить. Только загрузкой конфигурации (можно копии конфигурации хранить)
9 серый КТУЛХУ
 
27.09.21
21:17
в 7-ке уникальность полная (в пределах справочника) или в пределах группы?
10 hhhh
 
27.09.21
21:27
(7) в восьмерке код не используется. То есть физически он есть, но его задвинули очень и очень глубоко, то есть на практике он вообще не используется.
11 big
 
28.09.21
07:14
(6) Ведь неправильно же. Так уникальность кода не получить. Уникальность в пределах группы будет что-то типа такого:

Значение = ПривестиНомерКДлине((ПолучитьЗначение(Источник.Родитель, "Код") + ПолучитьЗначение(Источник, "Код")), 11);

(10) Искать-то в любом случае можно, да и на форме в 8-ке код видно