Прошу помочь с выгрузкой из Альфа Авто в бухгалтерию 4.5

Декоративное изображение

Для получения доступа к форуму необходимо авторизоваться
или зарегистрироваться на сайте.

Интересующийся
RSS
Добрый день. Поставлена задача периодического переноса данных из Альфы Автосалон+Автосервис+Автозапчасти ПРОФ. Редакция 5 (5.0.02.02) в бухгалтерию 4.5 ред 7.70.539. Использовал обработку из комплекта "ЗагрузкаДанныхБух4.5.ert". версия вроде 1.1.6

Не загружает новые элементы:

Внимание! Импортирование не удалось <тип объекта> <представление объекта> <код> ... неверное значение!
.....
Невозможно загрузить значение <тип> <УИД>

ковырял саму обработину
вылетает в основном на строке 3490
"Спр.ИспользоватьРодителя(Родитель);"
Тут у родителя тип "строка", значение - уникальный идентификатор

1с 7.7 подзабыл, но предполагаю, что по строке 3421
Родитель = ПолучитьРеквизит("_1С_Родитель");
наверное получается ссылка, а если объекта нет, тогда мы и получаем нашу ошибку.

вероятно моя версия обработки уже успела устареть - вышлите пжлст новую.
Декоративное изображение 124
Сотрудник 1С-Рарус
Добрый день.
Это последнее что у нас есть. Последние изменения были 2009 года.

не совсем понятна ошибка.
Но общий смысл такой.
На момент загрузки объекта всё ссылочное должно быть уже загружено.
Иначе перемещаем этот элемент в конец очереди загрузки.

Используемый способ с очередью по моему мнению не совсем хорош.
И необходимо использовать загрузку по ссылкам как в конвертации данных.
Но увы уже сделано так.

Небольшая оптимизация это как выход что если родитель ещё небыл загружен.
Нет необходимости перемещать загружаемый элемент в конце очереди (как сделано сейчас) а достаточно вызвать рекурсию предварительно получив реквизиты родителя
а по выходу получить обратно реквизиты объета.

Прикрепленные файлы

Интересующийся
Цитата
Евгений Машаров пишет:
Небольшая оптимизация это как выход что если родитель ещё небыл загружен.
Нет необходимости перемещать загружаемый элемент в конце очереди (как сделано сейчас) а достаточно вызвать рекурсию предварительно получив реквизиты родителя
а по выходу получить обратно реквизиты объета.

по этому вопросу помогите пожалуйста
Сотрудник 1С-Рарус
Пример для номенклатуры

---------------------
// Получим родителя элемента
Родитель = ПолучитьРеквизит("_1С_Родитель");
Если ПустоеЗначение(Родитель) = 0 Тогда
НайденыйРодитель = ПолучитьОбъект(Родитель);
Если ПустоеЗначение(НайденыйРодитель) = 1 Тогда
ПолучитьСписокРеквизитов(ПредТипОбъекта + "/Объект[@_1С_ИдентификаторБД=""" + Родитель + """]", спРеквизитов, спТаблиц);
ЗагрузитьСправочник_Номенклатура(Спр, Родитель);
ПолучитьСписокРеквизитов(ПредТипОбъекта + "/Объект[@_1С_ИдентификаторБД=""" + ИдентОбъекта + """]", спРеквизитов, спТаблиц);
Родитель = ПолучитьОбъект(Родитель);
Иначе
Родитель = НайденыйРодитель;
КонецЕсли;
КонецЕсли;

---------------------
Интересующийся
пардон а каким образом закинуть "...все ссылочное..."?
Сотрудник 1С-Рарус
Если имеется ввиду что на момент загрузки загрузить все объекты необходимые для загружаемого.
То необходимо вызвать процедуры их загрузки.

Для родителя проще всего искользтвать рекурсию.
Для ссылок доругих типов справочников это не подойтет так как кроме списка текущих реквизитов
Есть ещё список Где хранятся данные для конкретного типа справочника.


Поэтому проше если не существует объекта который надо поставить в реквизит проще переместить загружаемый в конце очереди. (Это делает переменной "Переместить" - как -то так).
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С