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

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 63 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].Номенклатура.Код);
				Если  ЗначениеЗаполнено(ВладелецР) Тогда
					ОТКАЗ =	ВладелецР.ПринадлежитЭлементу(ГруппаИскл);
				Иначе
					ОТКАЗ = ИСТИНА;
				КонецЕсли;    
			Иначе
				ОТКАЗ = ИСТИНА;
			КонецЕсли; 
		Иначе
			Отказ = Истина;
		КонецЕсли;
	КонецЕсли; 
Показать


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

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Бизнес-аналитик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Аналитик 1C
Москва
зарплата от 110 000 руб.
Полный день