Имя: Пароль:
1C
1С v8
КонвертацияДанных 2.1 Обработчик ПослеЗагрузки. Как обратиться к реквизиту узла?
0 altaykniga
 
19.06.20
15:47
Доброго времени суток, товарищи.

Для узла установлена дата начала выгрузки документов = 01.06.2020

Загружается документ ЗакрытиеЗаказовПокупателей, дата = 01.06.20.20
В табличной части этого документа содержится ЗаказПокупателя, дата = 20.05.2020.
После завершения обмена в базе данных создается пустой док ЗаказПокупателя, где заполнены только дата и номер документа.
Каким образом избежать загрузки данного документа в базу данных?

Делаю так.
Открыл конвертацию в КонвертацияДанных 2.1. В обработчике ПослеЗагрузки пишу след.код:

Если СтрНайти(Объект.Метаданные().ПолноеИмя(), "Документ") <> 0 Тогда
    Если Объект.Дата < УзелДляОбмена.ДатаНачалаВыгрузкиДокументов Тогда
            Отказ = Истина;
            Сообщить(""+Объект+". Не загружен в базу данных. Начальная дата обмена документами больше даты документа" );
    КонецЕсли;
КонецЕсли;

При выгрузке данных из базы-источника выходит ошибка:
Ошибка при загрузке данных: {Обработка.ОбменДаннымиXML.МодульОбъекта(1596)}: Ошибка в глобальном обработчике события ПослеЗагрузкиОбъекта (конвертация)
ОписаниеОшибки         =  Значение не является значением объектного типа (ДатаНачалаВыгрузкиДокументов)

Прошу подсказать, как нужно изменить код, чтобы цель была достигнута )
1 Ёпрст
 
гуру
19.06.20
15:55
Дык надо передивыгрузкой не давать выгружать жешь
2 altaykniga
 
19.06.20
15:58
(1) как в обработчике ПередВыгрузкой обратится к реквизиту узла?
3 PuhUfa
 
19.06.20
16:03
(0) >> Каким образом избежать загрузки данного документа в базу данных?
И что будет у тебя в ТЧ вместо не загруженного ЗаказаПокупателя?
4 altaykniga
 
19.06.20
16:07
(3) пустая ссылка
5 PuhUfa
 
19.06.20
16:09
(4) И при проведении ЗакрытиеЗаказовПокупателей 1С наверняка скажет, что не могу так как не заполнен ЗаказПокупателя? -)
6 mistеr
 
19.06.20
16:10
(0) В Обработчике Перед выгрузкой ПКГС проверяешь дату, если не подходит, Отказ = Истина
7 mistеr
 
19.06.20
16:11
(6) Обращаешься к ОбъектКоллекции, это строка ТЧ.
8 altaykniga
 
19.06.20
16:17
(6,7) прошу детальней объяснить, как получить реквизит ДатаНачалаВыгрузкиДокументов
9 PuhUfa
 
19.06.20
16:18
А по существу, мне кажется, у тебя ЗаказПокупателя (дата = 20.05.2020) в обмене и нету. А создается он с "заполнены только дата и номер документа" исключительно потому что на него есть ссылка.
Какие галки у тебя выставлены в ПКО "ЗаказПокупателя"?
10 altaykniga
 
19.06.20
16:22
(9) да, так и есть - на него есть ссылка, и поэтому он создается. Каким образом запретить создание дока по ссылке, если дата этого дока меньше, чем датаНачалаВыгрузкиДокументов?
11 PuhUfa
 
19.06.20
16:25
(10) Какие галки у тебя выставлены в ПКО "ЗаказПокупателя"?
Там есть галка "Не создавать объект если он не найден" и есть "Не создавать объект а переносить только ссылку". Точно не помню, лень КД открывать. Надо с ними поиграться
12 altaykniga
 
19.06.20
16:34
13 altaykniga
 
19.06.20
16:35
(11) галки эти будут работать для ВСЕХ заказов покупателя, а мне нужно по условию... только если дата заказа меньше даты начала выгрузки документов!
14 altaykniga
 
19.06.20
16:36
<img src="https://i.paste.pics/9CHRT.png"; width="692" height="462" alt="Screenshot">
15 PuhUfa
 
19.06.20
16:52
При переносе объекта по ссылке НЕ создавать новый объект, а только переносить ссылку - флаг определяет нужно ли создавать новый объект в информационной базе - приемнике, если он не был найден по уникальному идентификатору или по полям поиска в том случае если объект переносится по ссылке. Если объект не находится и у него установлен поиск по уникальносу идентификатору то будет перенесена только ссылка на объект (без полей поиска - одна ссылка). Если же объект выгружается непосредственно (то есть выгружается не только ссылка на объект, но и все его реквизиты), то флаг ни на что не влияет.
16 mistеr
 
19.06.20
17:27
(8) Параметры.ДатаНачалаВыгрузкиДокументов
Закон Брукера: Даже маленькая практика стоит большой теории.