Регистрация в плане обмена для регистров сведений

1. Anjut-ka4 16.10.20 16:29 Сейчас в теме
Всем доброго времени суток!
Пишу план обмена между Розница для Украины 2.0 упр формы и УПП для Украины 1.3 обычные формы.
Подскажите, пожалуйста, как правильно регистрировать регистр сведений Штрихкоды из УПП - подпиской на событие при записи или перед записью?
Смотрю на существующие обмены в УПП и в одном подписка "при записи", в другом - "перед записью".

И еще подскажите, пожалуйста, используются ли в обычных формах макеты с правилами регистрации? Смотрю по конфигурации - нигде нет такого. Команду "Загрузить правила регистрации" в режиме Предприятия (как в упр формах) тоже не нахожу. Получается все условия регистрации прописывать в подписке?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AskezaMax 19.10.20 09:21 Сейчас в теме
А почему не подходит стандартная регистрация к обмену в составе плана обмена?

Если нужно как-то по-особому фильтровать и контролировать регистрацию записей, то можно попробовать через подписку на событие ПередЗаписью для соотв. регистра Штрих-кодов и делать Отказ = Истина, если данные не проходят правило фильтрации.

А ПриЗаписи - это уже, код, выполняемый, после фактической записи данных в регистр. То есть, он больше предназначен для дополнительной постобработки. К примеру, записали цены и нужно как-то скорректировать штрих-коды после обновления цен. Тогда действительно писать лучше сюда.
3. Anjut-ka4 20.10.20 11:02 Сейчас в теме
(2) а что вы имеете ввиду под стандартной регистрацией? свойство "Разрешить"?
в принципе можно, если не получится, попробую так и сделать, но хотелось бы штрихкод регистрировать не по каждой номенклатуре, а только с определенным типом номенклатуры.
Я пробовала ставить подписку на событие и "ПередЗаписью" и "ПриЗаписи".
Если ставить "ПередЗаписью", то регистрируется старый штрихкод, а не измененный (я делала по примеру https://its.1c.ru/db/metod8dev/content/2267/hdoc Но добавила в запросе отбор по номенклатуре, чтоб не все штрихкоды выгружались). Т.е сначала отрабатывает подписка на событие, регистрируется старый штрихкод, а потом уже происходит запись нового штрихкода. Но мне то нужно зарегистрировать новый штрихкод. При загрузке в базу-приемник никаких ошибок, все норм.

Если ставить "При записи", то штрихкод регистрируется новый, но при загрузке в приемник выпадает ошибка записи объекта

ТипОбъекта = Регистр сведений набор записей: Штрихкоды
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: Штрихкод: , 2000000000127, , EAN13, (Регистр сведений: Штрихкоды; Номер строки: 1; Поле: Владелец)
ПозицияМодуля = Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(1588)
КСообщенияОбОшибках = 26

Поэтому я хочу понять при каком событии надо регистрировать регистр сведений?
4. AskezaMax 20.10.20 14:38 Сейчас в теме
(3)
а что вы имеете ввиду под стандартной регистрацией? свойство "Разрешить"?

Да, но если нужно фильтровать, то это уже отпадает.


(3)
Если ставить "ПередЗаписью", то регистрируется старый штрихкод, а не измененный

Да, так и есть, так как изменения еще не сохранены в базе, а просто "висят" в памяти.


(3)
ТипОбъекта = Регистр сведений набор записей: Штрихкоды
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: Штрихкод: , 2000000000127, , EAN13, (Регистр сведений: Штрихкоды; Номер строки: 1; Поле: Владелец)
ПозицияМодуля = Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(1588)
КСообщенияОбОшибках = 26


А это уже похоже на отдельную ошибку, не касающуюся порядка записи и регистрации.
Такое впечатление, что при загрузке установили отбор по одной номенклатуре, а при фактическом сохранении указывается другая.
По крайней мере, ругается именно на "Владельца" штрих-кода.

Попробуйте в базе-приемнике включить остановку по ошибке перед запуском загрузки и, отловив момент ошибки, проверьте какие данные ожидаются по отбору, и какие сохраняются по-факту?
5. Anjut-ka4 26.10.20 12:17 Сейчас в теме
Владелец пустой, т.к. в самом файле xml, который формируется на выгрузку, правило по владельцу не выгружается.
Если правила обмена выгружать через обработку выгрузки-загрузки XML - все загружается. Т.е. не в правилах дело?
Правило конвертации по владельцу указаны https://prnt.sc/v6xj4q
Но если смотреть xml, то правила нет https://prnt.sc/v6xjxi
Из-за чего такое может быть?
6. RustamZz 26.10.20 13:24 Сейчас в теме
(5) Нпп=1 это значит, что Владелец был загружен первым по порядку. Посмотрите выше в файле должна быть запись с таким номером.
7. Anjut-ka4 26.10.20 14:06 Сейчас в теме
(6) да, сама номенклатура, если в ней что-то меняешь, загружается. Но когда загружается сам штрихкод владелец пустой.
Если при загрузке должно подставляться ранее загруженное значение, тогда не пойму смысла кода, когда устанавливается отбор при загрузке штрихкода
ИначеЕсли ИмяУзла = "Нпп" Тогда
			
			ФайлОбмена.Прочитать();
			Нпп = Число(ФайлОбмена.Значение);
			Если Нпп <> 0 Тогда
				Значение  = НайтиОбъектПоНомеру(Нпп, Тип);
				НаличиеСвойств = Истина;
			КонецЕсли;			
			ФайлОбмена.Прочитать();
Показать

где
Функция НайтиОбъектПоНомеру(Нпп, ТипОбъекта, РежимПоискаОсновногоОбъекта = Ложь)
	
	Возврат Неопределено;
	
КонецФункции

поэтому у меня значение у Владельца пустое.
Но что это за логика?
Обработка КонвертацияОбъектовИнформационныхБаз - типовая.
8. RustamZz 26.10.20 15:56 Сейчас в теме
(7) Там должен быть всегда УИД владельца, если он не выгружается в этой выгрузке. ПКО номенклатуры покажите, может понятно станет причина.
10. Anjut-ka4 26.10.20 16:59 Сейчас в теме
(8) В ПКО номенклатуры Перед выгрузкой стоит ТолькоПолучитьУзелСсылки = Ложь;
а в настройках https://prnt.sc/v74j8q
9. Anjut-ka4 26.10.20 16:56 Сейчас в теме
(6) заметила, что если у номенклатуры поставить "Не запоминать выгруженные объекты", то эта проблема обходится.
Владелец ищется другим путем и все хорошо.
Но это работает только для новых штрихкодов, а если изменить существующий, то в базу приемник добавляется новый штрихкод, а не заменяется существующий
11. RustamZz 27.10.20 08:42 Сейчас в теме
(9) Это уже специфика конфигурации. Возможно ШК это не ресурс, а измерение.
12. Anjut-ka4 27.10.20 10:32 Сейчас в теме
(11) да, штрихкод - это измерение.
вроде разобралась)
Спасибо большое!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот