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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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