Есть 2 общие модули,
1-Выгружает в xml из 1с в 1-ИБ.(проверяю файл, все норм. пишет)
2-загружает в 1С из файла в 2-ИБ.(обновляю Справочник, а там нет изменении)
они размещены в Регламентных заданиях
расписание настроена.
Полный доступ к папке.
В журнале регистрации пишет везде:
Фоновое задание. Успешное завершение
Помогите пожалуйста, где искать свою ошибку.
Спасибо.
1-Выгружает в xml из 1с в 1-ИБ.(проверяю файл, все норм. пишет)
2-загружает в 1С из файла в 2-ИБ.(обновляю Справочник, а там нет изменении)
они размещены в Регламентных заданиях
расписание настроена.
Полный доступ к папке.
В журнале регистрации пишет везде:
Фоновое задание. Успешное завершение
Помогите пожалуйста, где искать свою ошибку.
Спасибо.
По теме из базы знаний
Найденные решения
(19) Это: Надо заменить на это:
Так же, я бы не использовал реквизит с именем "Код", лучше переименовать его в "ВнешнийКод". Соответственно, если изменишь наименование реквизита "Код" на "ВнешнийКод", тогда и в коде используй поиск контрагента по реквизиту "ВнешнийКод".
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", Элемент.Код);
ФорматированныйКодЭлемента = СтрЗаменить(Элемент.Код, Символы.НПП, "");
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", ФорматированныйКодЭлемента);
Так же, я бы не использовал реквизит с именем "Код", лучше переименовать его в "ВнешнийКод". Соответственно, если изменишь наименование реквизита "Код" на "ВнешнийКод", тогда и в коде используй поиск контрагента по реквизиту "ВнешнийКод".
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вот код обработки:
По отладке вижу это чаcть не выполняется:
ЧтениеXML=Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("C:\data\agents.xml");
Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
Для каждого Элемент Из Результат.ЭлементСправочника Цикл
Если ТипЗнч(Элемент.Код) <> Тип("Строка") Тогда
Продолжить
КонецЕсли;
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", Число(Элемент.Код));
Если НайденныйКонтрагент <> Неопределено Тогда
Продолжить;
КонецЕсли;
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент.Наименование = Элемент.Наименование;
НовыйКонтрагент.Код = Элемент.Код;
НовыйКонтрагент.ПолноеНаименование = Элемент.ПолноеНаименование;
НовыйКонтрагент.ЮридическоеЛицо = Элемент.ЮридическоеЛиц;
НовыйКонтрагент.Прочие = Элемент.Прочие;
НовыйКонтрагент.Поставщик = Элемент.Поставщик;
НовыйКонтрагент.Покупатель = Элемент.Покупатель;
НовыйКонтрагент.Телефоны = Элемент.Телефоны;
НовыйКонтрагент.Адрес = Элемент.Адрес;
НовыйКонтрагент.Записать();
КонецЦикла;
ПоказатьПо отладке вижу это чаcть не выполняется:
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент.Наименование = Элемент.Наименование;
НовыйКонтрагент.Код = Элемент.Код;
НовыйКонтрагент.ПолноеНаименование = Элемент.ПолноеНаименование;
НовыйКонтрагент.ЮридическоеЛицо = Элемент.ЮридическоеЛиц;
НовыйКонтрагент.Прочие = Элемент.Прочие;
НовыйКонтрагент.Поставщик = Элемент.Поставщик;
НовыйКонтрагент.Покупатель = Элемент.Покупатель;
НовыйКонтрагент.Телефоны = Элемент.Телефоны;
НовыйКонтрагент.Адрес = Элемент.Адрес;
НовыйКонтрагент.Записать();
Показать
(8) Зачем ты базу прикрепила? Чтобы за тебя выполнили учебное задание? Ты же учишься, не сдавайся)
Исправь вот так:
и проверь.
А так ставь точку останова и поймешь где у тебя цикл не продолжается
Исправь вот так:
Если Не НайденныйКонтрагент.Пустая() Тогда
Продолжить;
КонецЕсли;
и проверь.
А так ставь точку останова и поймешь где у тебя цикл не продолжается
(18)
<ЭлементСправочника>
<Код>192 467 219</Код>
<Наименование>1-Й КИЛОМЕТР</Наименование>
<ПолноеНаименование>ЧСУП "1-Й КИЛОМЕТР"</ПолноеНаименование>
<Адрес/>
<Телефоны/>
<Покупатель>Да</Покупатель>
<Поставщик>Нет</Поставщик>
<Прочее>Нет</Прочее>
<ЮридическоеЛицо>Да</ЮридическоеЛицо>
</ЭлементСправочника>
ПоказатьПроцедура Команда1НаСервере()
ЧтениеXML=Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл("C:\Data\doc.xml");
Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
Для каждого Элемент Из Результат.ЭлементСправочника Цикл
Если ТипЗнч(Элемент.Код) <> Тип("Строка") Тогда
Продолжить
КонецЕсли;
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", Элемент.Код);
Если Не НайденныйКонтрагент.Пустая() Тогда
Продолжить;
КонецЕсли;
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент.Наименование = Элемент.Наименование;
НовыйКонтрагент.Код = Элемент.Код;
НовыйКонтрагент.ПолноеНаименование = Элемент.ПолноеНаименование;
НовыйКонтрагент.ЮридическоеЛицо = Элемент.ЮридическоеЛицо;
НовыйКонтрагент.Прочее = Элемент.Прочее;
НовыйКонтрагент.Поставщик = Элемент.Поставщик;
НовыйКонтрагент.Покупатель = Элемент.Покупатель;
НовыйКонтрагент.Телефоны = Элемент.Телефоны;
НовыйКонтрагент.Адрес = Элемент.Адрес;
НовыйКонтрагент.Записать();
КонецЦикла;
КонецПроцедуры
Показать
(19) Это: Надо заменить на это:
Так же, я бы не использовал реквизит с именем "Код", лучше переименовать его в "ВнешнийКод". Соответственно, если изменишь наименование реквизита "Код" на "ВнешнийКод", тогда и в коде используй поиск контрагента по реквизиту "ВнешнийКод".
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", Элемент.Код);
ФорматированныйКодЭлемента = СтрЗаменить(Элемент.Код, Символы.НПП, "");
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", ФорматированныйКодЭлемента);
Так же, я бы не использовал реквизит с именем "Код", лучше переименовать его в "ВнешнийКод". Соответственно, если изменишь наименование реквизита "Код" на "ВнешнийКод", тогда и в коде используй поиск контрагента по реквизиту "ВнешнийКод".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот