Правила регистрации объектов (ПРО), Регистры Сведений/Накопления

1. user1617484 05.03.23 22:32 Сейчас в теме
Приветствую.
В КД 2.1 набросал следующее правило для регистрации Регистра накопления - "Товары к оформлению излишков и недостач" :

Товар = Справочники.Номенклатура;
Значение = Товар.НайтиПоКоду("КодГруппы-00012"); 
Если  ЗначениеЗаполнено(Значение) Тогда  // Здесь всё проходит
	Если ЗначениеЗаполнено(Объект[0].Номенклатура)  Тогда // И тут всё проходит
ОТКАЗ =	Объект[0].Номенклатура.ПринадлежитЭлементу(Значение);
Иначе
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Показать


По итогу при запуске обмена получаю следующее сообщение :

Объект метаданных: РегистрНакопления.ТоварыКОформлениюИзлишковНедостач;
Описание ошибки: Элемент не выбран!


Получается, что везде, вроде как, значение заполнено, но по итогу не выбран элемент.
В справочниках Номенклатуры отрабатывает без проблем.
Аналогичные действия с документами их реквизитами по другим справочникам - всё работает.

А тут уже не понимаю, куда копать. Смерено прошу подсказки и помощи.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. RustamZz 06.03.23 10:45 Сейчас в теме
(1) Использовать для переменной имя "Значение" при разработке правил КД - моветон.
4. user1617484 06.03.23 21:42 Сейчас в теме
(3)
Благодарю. Поправил, от греха подальше.
6. user1617484 06.03.23 22:10 Сейчас в теме
(1)
Добавлю следующее:
Ошибка выдается при попытке создать начальный образ.
При обычной синхронизации всё идёт отлично и регистры ведут себя послушно.
2. user-z99999 68 06.03.23 09:56 Сейчас в теме
Создай пустую базу и на ней тренируйся.
И КД для неё напиши.
Вначале перекинь весь регистр, а потом ограничивай.

Возможно получиться в правиле написать для проверки:
Сообщить(Объект[0].Номенклатура);
5. user1617484 06.03.23 21:59 Сейчас в теме
(2)
Создай пустую базу и на ней тренируйся.
И КД для неё напиши.
Вначале перекинь весь регистр, а потом ограничивай.


Решил попробовать, с некоторым исключением, загрузил туда те-же правила и вот момент. Всё проходит хорошо до момента, где выходит следующее окно с ошибкой:
Поле объекта не обнаружено (МагазинОтправитель).


Забавно. Стало только интереснее. Но тут видимо проблема с перемещениями и их регистрами.

Кстати Сообщить не отрабатывает.
Прикрепленные файлы:
7. user1617484 08.03.23 13:41 Сейчас в теме
Итак, вроде похоже на прогресс. Ошибок по регистрам вроде не выдает, за чет следующего кода:
	ТоварИск = Справочники.Номенклатура;
	ГруппаИскл = ТоварИск.НайтиПоКоду("КодГруппы-00012");
	ТоварР = Справочники.Номенклатура;
	Если  ЗначениеЗаполнено(ГруппаИскл) Тогда  
		Если ЗначениеЗаполнено(Объект[0].Номенклатура)  Тогда  
			Если (Объект[0].Номенклатура<> Неопределено) Тогда 
				ВладелецР = ТоварР.НайтиПоКоду(Объект[0].Номенклатура.Код);
				Если  ЗначениеЗаполнено(ВладелецР) Тогда
					ОТКАЗ =	ВладелецР.ПринадлежитЭлементу(ГруппаИскл);
				Иначе
					ОТКАЗ = ИСТИНА;
				КонецЕсли;    
			Иначе
				ОТКАЗ = ИСТИНА;
			КонецЕсли; 
		Иначе
			Отказ = Истина;
		КонецЕсли;
	КонецЕсли; 
Показать


НО! Проблема теперь следующая -
Поле объекта не обнаружено (МагазинОтправитель)
. Никаких магазинов на своей памяти я не трогал. Да и без памяти.
Прикрепленные файлы:
Оставьте свое сообщение

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