Прошу помочь с выгрузкой из Альфа Авто в бухгалтерию 4.5
Читают тему
Вход в личный кабинет
Для получения доступа к форуму необходимо
авторизоваться
или
зарегистрироваться
на сайте.
{{ formTitle ? formTitle : 'Заказ обратного звонка' }}
{{ formDescription }}
Сообщить об ошибке
Не загружает новые элементы:
Внимание! Импортирование не удалось <тип объекта> <представление объекта> <код> ... неверное значение!
.....
Невозможно загрузить значение <тип> <УИД>
ковырял саму обработину
вылетает в основном на строке 3490
"Спр.ИспользоватьРодителя(Родитель);"
Тут у родителя тип "строка", значение - уникальный идентификатор
1с 7.7 подзабыл, но предполагаю, что по строке 3421
Родитель = ПолучитьРеквизит("_1С_Родитель");
наверное получается ссылка, а если объекта нет, тогда мы и получаем нашу ошибку.
вероятно моя версия обработки уже успела устареть - вышлите пжлст новую.
Это последнее что у нас есть. Последние изменения были 2009 года.
не совсем понятна ошибка.
Но общий смысл такой.
На момент загрузки объекта всё ссылочное должно быть уже загружено.
Иначе перемещаем этот элемент в конец очереди загрузки.
Используемый способ с очередью по моему мнению не совсем хорош.
И необходимо использовать загрузку по ссылкам как в конвертации данных.
Но увы уже сделано так.
Небольшая оптимизация это как выход что если родитель ещё небыл загружен.
Нет необходимости перемещать загружаемый элемент в конце очереди (как сделано сейчас) а достаточно вызвать рекурсию предварительно получив реквизиты родителя
а по выходу получить обратно реквизиты объета.
Прикрепленные файлы
Небольшая оптимизация это как выход что если родитель ещё небыл загружен.
Нет необходимости перемещать загружаемый элемент в конце очереди (как сделано сейчас) а достаточно вызвать рекурсию предварительно получив реквизиты родителя
а по выходу получить обратно реквизиты объета.
по этому вопросу помогите пожалуйста
---------------------
// Получим родителя элемента
Родитель = ПолучитьРеквизит("_1С_Родитель");
Если ПустоеЗначение(Родитель) = 0 Тогда
НайденыйРодитель = ПолучитьОбъект(Родитель);
Если ПустоеЗначение(НайденыйРодитель) = 1 Тогда
ПолучитьСписокРеквизитов(ПредТипОбъекта + "/Объект[@_1С_ИдентификаторБД=""" + Родитель + """]", спРеквизитов, спТаблиц);
ЗагрузитьСправочник_Номенклатура(Спр, Родитель);
ПолучитьСписокРеквизитов(ПредТипОбъекта + "/Объект[@_1С_ИдентификаторБД=""" + ИдентОбъекта + """]", спРеквизитов, спТаблиц);
Родитель = ПолучитьОбъект(Родитель);
Иначе
Родитель = НайденыйРодитель;
КонецЕсли;
КонецЕсли;
---------------------
То необходимо вызвать процедуры их загрузки.
Для родителя проще всего искользтвать рекурсию.
Для ссылок доругих типов справочников это не подойтет так как кроме списка текущих реквизитов
Есть ещё список Где хранятся данные для конкретного типа справочника.
Поэтому проше если не существует объекта который надо поставить в реквизит проще переместить загружаемый в конце очереди. (Это делает переменной "Переместить" - как -то так).