Заполнение реквизита из регистра сведений

1. cycl_2412 21.01.22 13:45 Сейчас в теме
Добрый день. Подскажите, есть реквизит табличной части - "Штрихкод" и регистр сведений "Штрихкоды номенклатуры". Каким образом сделать так, чтобы реквизит заполнялся, когда выбираешь номенклатуру. Шаблон УТ11. База учебная. Буду очень благодарен за совет.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user5300 1028 21.01.22 13:48 Сейчас в теме
(1) В табличной части, реквизит" Номенклатура" , процедура "ПриИзменении()"..

Кто обучает ?
4. cycl_2412 21.01.22 13:50 Сейчас в теме
6. user5300 1028 21.01.22 14:11 Сейчас в теме
(1)
&НаСервере
Функция ТоварыНоменклатураПриИзмененииНаСервере(Номенклатура,Характеристика,Упаковка)
	Возврат РегистрыСведений.ШтрихкодыНоменклатуры.ШтрихкодыНоменклатуры(Номенклатура,Характеристика,Упаковка);
КонецФункции

&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент) 
	ТекЭлемент = Элементы.Товары.ТекущиеДанные;
	Если ТекЭлемент = Неопределено Тогда
		возврат;
	КонецЕсли;
	
	МассивШтрихКодов = ТоварыНоменклатураПриИзмененииНаСервере(ТекЭлемент.Номенклатура,ТекЭлемент.ХарактеристикиНоменклатуры,ТекЭлемент.УпаковкиЕдиницыИзмерения); 
	
	Если МассивШтрихКодов.Количество()=0 Тогда
		Возврат;      //Нет штрихкода
	КонецЕсли;
	
	ТекЭлемент.ШтрихКод = МассивШтрихКодов[0]; //Первый штрхкод из списка полученных	
КонецПроцедуры

Показать
8. DesertPunk 21.01.22 14:24 Сейчас в теме
(1) Писал не в конфе, но как-то так:
	Соответствие = Новый Соответствие;
	Массив = Новый Массив;
	Для каждого СтрТЧ Из Объект.Номенклатура Цикл
		
		Соответствие.Вставить(Стр.Номенклатура,Стр);
		Массив.Добавить(Стр.Номенклатура);	
	
	КонецЦикла;

	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Массив", Массив);
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ШтрихкодНоменклатуры.Номенклатура КАК Номенклатура,
		|	ШтрихкодНоменклатуры.Штрихкод КАК Штрихкод
		|ИЗ
		|	РегистрСведений.ШтрихкодНоменклатуры КАК ШтрихкодНоменклатуры
		|ГДЕ
		|	ШтрихкодНоменклатуры.Номенклатура В(&Массив)";
	
	РезультатЗапроса = Запрос.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		СтрокаТЧ = Соответствие.Получить(Выборка.Номенклатура);
		Если СтрокаТЧ.Штрихкод.Пустая() Тогда
			СтрокаТЧ.Штрихкод = Выборка.Штрихкод;
		КонецЕсли;
	КонецЦикла;
Показать
2. wladimirpav 2 21.01.22 13:48 Сейчас в теме
Процедура при изменении номенклатуры, запрос к регистру сведений с отбором по номенклатуре, результат - в ТЧ
5. JBoy 2 21.01.22 14:09 Сейчас в теме
(2) Все как бы так, но у номенклатуры может быть несколько штрих-кодов. Выбирать первый?
7. wladimirpav 2 21.01.22 14:18 Сейчас в теме
(5) Пусть первый будет, какая разница?
9. JBoy 2 21.01.22 14:27 Сейчас в теме
(7) Абсолютно никакой, просто ТС должен понимать этот ньюанс
10. FatPanzer 21.01.22 18:20 Сейчас в теме
11. МимохожийОднако 142 22.01.22 08:02 Сейчас в теме
(9) (10) правильно "нюанс"
Кстати, какой нюанс надо понимать?
Оставьте свое сообщение

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