Регламентные задания не выполняется.

1. 23.09.22 05:47 Сейчас в теме
Есть 2 общие модули,

1-Выгружает в xml из 1с в 1-ИБ.(проверяю файл, все норм. пишет)

2-загружает в 1С из файла в 2-ИБ.(обновляю Справочник, а там нет изменении)

они размещены в Регламентных заданиях

расписание настроена.

Полный доступ к папке.

В журнале регистрации пишет везде:

Фоновое задание. Успешное завершение

Помогите пожалуйста, где искать свою ошибку.

Спасибо.
Найденные решения
20. custer 23.09.22 09:07 Сейчас в теме
(19) Это:
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", Элемент.Код);
Надо заменить на это:
ФорматированныйКодЭлемента = СтрЗаменить(Элемент.Код, Символы.НПП, "");        

НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", ФорматированныйКодЭлемента);


Так же, я бы не использовал реквизит с именем "Код", лучше переименовать его в "ВнешнийКод". Соответственно, если изменишь наименование реквизита "Код" на "ВнешнийКод", тогда и в коде используй поиск контрагента по реквизиту "ВнешнийКод".
G_118211003767742849645; +1 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. G_118211003767742849645 23.09.22 06:28 Сейчас в теме
Вот код обработки:
ЧтениеXML=Новый ЧтениеXML;
    
    ЧтениеXML.ОткрытьФайл("C:\data\agents.xml");
    
    Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
        
    Для каждого Элемент Из Результат.ЭлементСправочника Цикл 
		
		Если ТипЗнч(Элемент.Код) <> Тип("Строка") Тогда
			Продолжить
		КонецЕсли;
                
        НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", Число(Элемент.Код));
    
        Если НайденныйКонтрагент <> Неопределено Тогда
            Продолжить;
        КонецЕсли; 
        
        НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
        НовыйКонтрагент.Наименование = Элемент.Наименование;
        НовыйКонтрагент.Код = Элемент.Код;
        НовыйКонтрагент.ПолноеНаименование = Элемент.ПолноеНаименование;
	НовыйКонтрагент.ЮридическоеЛицо = Элемент.ЮридическоеЛиц;
	НовыйКонтрагент.Прочие = Элемент.Прочие;
        НовыйКонтрагент.Поставщик = Элемент.Поставщик;
	НовыйКонтрагент.Покупатель = Элемент.Покупатель;
	НовыйКонтрагент.Телефоны = Элемент.Телефоны;
	НовыйКонтрагент.Адрес = Элемент.Адрес;
	НовыйКонтрагент.Записать();
		
        
    КонецЦикла; 

Показать


По отладке вижу это чаcть не выполняется:
        НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
        НовыйКонтрагент.Наименование = Элемент.Наименование;
        НовыйКонтрагент.Код = Элемент.Код;
        НовыйКонтрагент.ПолноеНаименование = Элемент.ПолноеНаименование;
	НовыйКонтрагент.ЮридическоеЛицо = Элемент.ЮридическоеЛиц;
	НовыйКонтрагент.Прочие = Элемент.Прочие;
        НовыйКонтрагент.Поставщик = Элемент.Поставщик;
	НовыйКонтрагент.Покупатель = Элемент.Покупатель;
	НовыйКонтрагент.Телефоны = Элемент.Телефоны;
	НовыйКонтрагент.Адрес = Элемент.Адрес;
	НовыйКонтрагент.Записать();
Показать
5. RustamZz 23.09.22 07:37 Сейчас в теме
(2) НайтиПоРеквизиту Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>.
Ссылка на найденный элемент справочника. Если не существует ни одного элемента с требуемым значением реквизита, то будет возвращена пустая ссылка.
13. custer 23.09.22 08:28 Сейчас в теме
(2) проще установить всем реквизитам справочника контрагенты свойство "Заполнять из данных заполнения" и использовать процедуру Заполнить(). Меньше кода будет)
3. flinttaman 23.09.22 06:31 Сейчас в теме
УТ или Бухгалтерия?
G_118211003767742849645; +1 Ответить
4. G_118211003767742849645 23.09.22 07:03 Сейчас в теме
Забыла написать: учебная версия 8.3.20.
6. Vlan 36 23.09.22 07:38 Сейчас в теме
А код выгружается точно строкой? Проверьте, возможно, там число, и цикл завершается.
G_118211003767742849645; +1 Ответить
7. umev 23.09.22 07:52 Сейчас в теме
Код у Справочники.Контрагенты по идее строка же.
Ну и (5)
G_118211003767742849645; +1 Ответить
14. Vlan 36 23.09.22 08:28 Сейчас в теме
(7) Далее там при загрузке код из текста преобразуется в число. Сильно подозреваю, что в базе-источнике тот же формат кода.
G_118211003767742849645; +1 Ответить
8. G_118211003767742849645 23.09.22 08:10 Сейчас в теме
Все ваши подсказки применила, не получается.
Прикрепленные файлы:
1Cv8__рег_зад.dt
9. custer 23.09.22 08:20 Сейчас в теме
(8) Зачем ты базу прикрепила? Чтобы за тебя выполнили учебное задание? Ты же учишься, не сдавайся)

Исправь вот так:
Если Не НайденныйКонтрагент.Пустая() Тогда
    Продолжить;
КонецЕсли;

и проверь.

А так ставь точку останова и поймешь где у тебя цикл не продолжается
G_118211003767742849645; +1 Ответить
17. G_118211003767742849645 23.09.22 08:49 Сейчас в теме
(9)Работает, но теперь не проверяет если ли такая запись.
18. custer 23.09.22 08:52 Сейчас в теме
(17) измененный код покажи теперь. И кусок xml кода файла обмена тоже выложи (один блок из xml)
G_118211003767742849645; +1 Ответить
19. G_118211003767742849645 23.09.22 08:59 Сейчас в теме
(18)
	<ЭлементСправочника>
		<Код>192 467 219</Код>
		<Наименование>1-Й КИЛОМЕТР</Наименование>
		<ПолноеНаименование>ЧСУП "1-Й КИЛОМЕТР"</ПолноеНаименование>
		<Адрес/>
		<Телефоны/>
		<Покупатель>Да</Покупатель>
		<Поставщик>Нет</Поставщик>
		<Прочее>Нет</Прочее>
		<ЮридическоеЛицо>Да</ЮридическоеЛицо>
	</ЭлементСправочника>
Показать



Процедура Команда1НаСервере()
	
	ЧтениеXML=Новый ЧтениеXML;
    
    ЧтениеXML.ОткрытьФайл("C:\Data\doc.xml");
    
    Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
        
    Для каждого Элемент Из Результат.ЭлементСправочника Цикл 
		
		Если ТипЗнч(Элемент.Код) <> Тип("Строка") Тогда
			Продолжить
		КонецЕсли;
                
        НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", Элемент.Код);
        
		
		Если Не НайденныйКонтрагент.Пустая() Тогда
    		    Продолжить;
		КонецЕсли;

        
        НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
        НовыйКонтрагент.Наименование = Элемент.Наименование;
        НовыйКонтрагент.Код = Элемент.Код;
        НовыйКонтрагент.ПолноеНаименование = Элемент.ПолноеНаименование;
	НовыйКонтрагент.ЮридическоеЛицо = Элемент.ЮридическоеЛицо;
	НовыйКонтрагент.Прочее = Элемент.Прочее;
        НовыйКонтрагент.Поставщик = Элемент.Поставщик;
	НовыйКонтрагент.Покупатель = Элемент.Покупатель;
	НовыйКонтрагент.Телефоны = Элемент.Телефоны;
	НовыйКонтрагент.Адрес = Элемент.Адрес;
        НовыйКонтрагент.Записать();
		
        
    КонецЦикла; 
КонецПроцедуры
Показать
20. custer 23.09.22 09:07 Сейчас в теме
(19) Это:
НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", Элемент.Код);
Надо заменить на это:
ФорматированныйКодЭлемента = СтрЗаменить(Элемент.Код, Символы.НПП, "");        

НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоРеквизиту("Код", ФорматированныйКодЭлемента);


Так же, я бы не использовал реквизит с именем "Код", лучше переименовать его в "ВнешнийКод". Соответственно, если изменишь наименование реквизита "Код" на "ВнешнийКод", тогда и в коде используй поиск контрагента по реквизиту "ВнешнийКод".
G_118211003767742849645; +1 Ответить
10. custer 23.09.22 08:21 Сейчас в теме
(8) еще сделай так:
Справочники.Контрагенты.НайтиПоКоду(Элемент.Код)
G_118211003767742849645; +1 Ответить
11. G_118211003767742849645 23.09.22 08:22 Сейчас в теме
на всякий случай
Прикрепленные файлы:
12. custer 23.09.22 08:24 Сейчас в теме
(11) зачем ты создала реквизит код? он же стандартный у справочников
Прикрепленные файлы:
15. custer 23.09.22 08:37 Сейчас в теме
(11) и в чем вообще смысл? Код используете как ключ для разных баз?
G_118211003767742849645; +1 Ответить
16. Vlan 36 23.09.22 08:43 Сейчас в теме
Я бы сделал точку останова на каждом из Продолжить, и посмотрел, в каком месте спотыкается.
G_118211003767742849645; +1 Ответить
Оставьте свое сообщение
Вакансии
Программист 1С
Электросталь
зарплата до 200 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Автор новостей об 1С, налогах и бухучете на INFOSTART.RU
Санкт-Петербург
По совместительству

Программист 1С
Екатеринбург
зарплата от 50 000 руб.
По совместительству

Ведущий разработчик 1С (техлид внутреннего учета)
Новосибирск
зарплата от 230 000 руб.
Полный день