Имя: Пароль:
1C
1С v8
Конвертация данных.
0 palm1c
 
14.03.12
17:11
Добрый день.

Есть КД, из 1с 7 в 1с 8.
в 1с 7 есть спр. Склады. в 1с 8 есть спр. Подразделения.
В 1с 8 в для каждого элемента спр Склады заполнен реквизит подразделение.

Нужно сделать ПКО Склады - Подразделения. Возможно ли это, и если да, то как?

Спасибо.
1 Fish
 
гуру
14.03.12
17:12
Поройся здесь: http://www.mykod.info/
2 Amra
 
14.03.12
17:13
(1) НЕ поможет. Оперелись, какое соответсвие между складом и подразделением
3 palm1c
 
14.03.12
17:14
В 1с 8 в для каждого элемента спр Склады заполнен реквизит подразделение.
4 Kondarat
 
14.03.12
17:14
(0) Конфигурации секрет?
5 palm1c
 
14.03.12
17:15
(4) 1с 7 Торговля, 1с 8 УТП
6 Kondarat
 
14.03.12
17:16
(5) УТП не знаю. Если там есть пользователи и значение по умолчанию как и везде "Основное подразделение", то им и заполни. Или не вариант? И надо под каждый склад создать подразделение?
7 palm1c
 
14.03.12
17:23
(6) У меня задача общая.
Сделать выгрузку. Выгрузить в документ из из 1с 7, реквизит "Склад" в 1с 8, реквизит "Подразделение", если:
В 1с 8 Склады синхронизированы по коду.
В 1с 8 в каждом элементе "Склад" есть заполненный реквизит "Подразделение".
8 Kondarat
 
14.03.12
17:27
(7) Ну если в 8-ке есть склады, в которых подразделения заполнены, и эти склады в 8-ке синхронизированы со складами в 7-ке по коду, то нафик эти подразделения выгружать?
9 palm1c
 
14.03.12
17:31
В документ нужно проставить подразделение при выгрузке, в документе реквизита Склад в 1с 8 нет, есть только подразделение. Как сделать средствами конвертации?
10 takefive
 
14.03.12
17:34
Передать в параметр
11 y22-k
 
14.03.12
17:38
(0)
см справку
Обработчики "Правила конвертации объектов"
При загрузке
Условия возникновения события
Только для платформы V8.
Событие выполняется после попытки идентификации. В случае успешной синхронизации доступен найденный объект. В противном случае его значение Неопределено. Можно произвести произвольную инициализацию, заполняемого данными объекта.

Параметры:
ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе

Объект - Произвольный. Загружаемый, модифицируемый объект, созданный по ссылке или найденный в информационной базе. Если способ идентификации объекта в файле не указан (т.е. отсутствует узел "Ссылка"), то параметр содержит значение Неопределено. В этом случае в обработчике возможна произвольная инициализация загружаемого объекта, в противном случае, объект будет создан автоматически.

НеЗамещатьОбъект - Булево - Если установить значение Истина, то существующий объект информационной базы не будет изменен.

ОбъектМодифицирован – Булево. Флажок указывает на то, что в обработчике объект был модифицирован. По умолчанию содержит значение Истина. То есть обработка загрузки считает, что если выполнялся какой-либо обработчик, то объект мог быть модифицирован, и его необходимо записать в информационную базу. Параметр относится только к текущему обработчику и только к найденным объектам. Если объект не был найден, то при любом значении он будет создан и записан. Только для платформы 1С:Предприятие 8.

Пример:
Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(Объект.Код));
Если Пользователь = Неопределено Тогда
Пользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
Пользователь.Имя      = СокрЛП(Объект.Код);
Пользователь.ПолноеИмя = СокрЛП(Объект.Код);
КонецЕсли;
Пока ФайлОбмена.Прочитать() Цикл
ИмяУзла = ФайлОбмена.ЛокальноеИмя;
ТипУзла = ФайлОбмена.ТипУзла;
Если ИмяУзла = "ИнформацияОПользователе" И (ТипУзла = одТипУзлаXML_НачалоЭлемента) Тогда
 Пользователь.АутентификацияОС          = одАтрибут(ФайлОбмена, одТипБулево, "АутентификацияОС");
 Пользователь.АутентификацияСтандартная = одАтрибут(ФайлОбмена, одТипБулево, "АутентификацияСтандартная");
 Пользователь.ПоказыватьВСпискеВыбора   = одАтрибут(ФайлОбмена, одТипБулево, "ПоказыватьВСпискеВыбора");
 Пользователь.ПользовательОС            = одАтрибут(ФайлОбмена, одТипСтрока, "ПользовательОС");
 Пользователь.ПолноеИмя                 = одАтрибут(ФайлОбмена, одТипСтрока, "ПолноеИмя");
 СтрокаРоль1 = одАтрибут(ФайлОбмена, одТипСтрока, "Роль1");
 СтрокаРоль2 = одАтрибут(ФайлОбмена, одТипСтрока, "Роль2");
 СтрокаРоль3 = одАтрибут(ФайлОбмена, одТипСтрока, "Роль3");
ИначеЕсли (ИмяУзла = "ИнформацияОПользователе") И (ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда
 Прервать;
КонецЕсли;
КонецЦикла;            
Пользователь.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Полный;
Пользователь.Язык              = Метаданные.Языки.Русский;
Пользователь.Роли.Очистить();
Роль1 = Метаданные.Роли.Найти(СокрЛП(СтрокаРоль1));
Роль2 = Метаданные.Роли.Найти(СокрЛП(СтрокаРоль1));
Роль3 = Метаданные.Роли.Найти(СокрЛП(СтрокаРоль1));
Если НЕ Роль1 = Неопределено Тогда
Пользователь.Роли.Добавить(Роль1);
КонецЕсли;
Если НЕ Роль2 = Неопределено Тогда
Пользователь.Роли.Добавить(Роль2);
КонецЕсли;
Если НЕ Роль3 = Неопределено Тогда
Пользователь.Роли.Добавить(Роль3);
КонецЕсли;
Пользователь.Записать();
12 palm1c
 
14.03.12
17:39
(10), (11) ОК, пробую.
13 fisher
 
14.03.12
17:42
А я бы не делал при загрузке.
Я бы тупо прописал соответствие на стороне источника.
Или в базе или тупо в коде КД.
14 palm1c
 
14.03.12
17:43
(11) То есть, я делаю ПКО СкладыВПодразделения, не указываю, по чем искать, и в обработчике пишу свой код? Так?
15 Kondarat
 
14.03.12
17:49
(14) Если какое-нибудь соответствие между складами в 7-ке и подразделениями в 8-ке есть, то это самый простой вариант.
16 palm1c
 
14.03.12
17:54
Всем спасибо.
17 Skylark
 
14.03.12
17:59
Происходит выгрузка данных. Если в 7.7 сведений о соответствии складов-подразделений нет, то выгружать надо сведения о складе, а потом при загрузке по этим сведениям искать подразделение в 8.
А выгрузка в параметр по-моему доступна только при выгрузке из 8.
Так что в первую очередь надо придумывать куда из 7.7 выгружать, чтобы потом это при загрузке в 8 поймать.
18 y22-k
 
15.03.12
10:38
(14) давно не занимался конвертацией

Можно попытаться извратиться Код ставить в ##
Объект будет не найден
Поставить в правилах, не создавать если не найден
А при загрузке искать подразделение по коду без ## и ставить его

А проще всего синхронизировать по кодам склады и подразделения содать правило Склад - Подразделение и не париться
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn