Некоторые картинки не загружаются из РФ и РК, используйте VPN.

четверг, 26 января 2023 г.

1СЗаготовка СБИС сопоставление номенклатуры по наименованию

 Для УТ очень надо. Форма ФормаПросмотраДокумента. Добавить на форму Команду и связать с процедурой. Также добавить Булево Отладка или удалить кусок кода

//arshanskiyav+
&НаСервере
Функция НайтиНоменклатуруПоНаименованию(Наименование) 
	Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(Наименование,Истина);
	Возврат(Новый Структура("Номенклатура,ЕдИзм",Номенклатура,Номенклатура.ЕдиницаИзмерения));
КонецФункции
&НаСервере
Функция НайтиЕдИзмПоНаименованию(Наименование) 
	Возврат(Справочники.УпаковкиЕдиницыИзмерения.НайтиПоНаименованию(Наименование,Истина));
КонецФункции 
&НаКлиенте
Процедура СопоставитьПоНаименованию(Команда)
	//СопоставитьПоНаименованиюНаСервере();
	
	Для Каждого СтрокаТЧ Из ТабличнаяЧасть Цикл  
		Элементы.ТабличнаяЧасть.ТекущаяСтрока=СтрокаТЧ.ПолучитьИдентификатор();
		Если НЕ ЗначениеЗаполнено(СтрокаТЧ.Номенклатура) Тогда 
			ТабЧасть = сбисЭлементФормы(ЭтаФорма,"ТабличнаяЧасть");
			СбисСтрокаТабличнаяЧастьДоИзменения(МестныйКэш, ТабЧасть);
			
			НайденнаяНом=НайтиНоменклатуруПоНаименованию(СтрокаТЧ.Название);
			СтрокаТЧ.Номенклатура=НайденнаяНом.Номенклатура;
			Если ЗначениеЗаполнено(СтрокаТЧ.Номенклатура) Тогда
				СтрокаТЧ.ЕдИзмОрг=НайденнаяНом.ЕдИзм;
			КонецЕсли;
			Если НЕ ЗначениеЗаполнено(СтрокаТЧ.ЕдИзмОрг) и ЗначениеЗаполнено(СтрокаТЧ.ЕдИзм) Тогда
				СтрокаТЧ.ЕдИзмОрг=НайтиЕдИзмПоНаименованию(СтрокаТЧ.ЕдИзм);
			КонецЕсли;
			Если Отладка Тогда
				Сообщить(СтрокаТЧ.Название);   
				Сообщить(НайденнаяНом);
			КонецЕсли;    
			
			ТабЧасть = сбисЭлементФормы(ЭтаФорма,"ТабличнаяЧасть");
			СбисСтрокаТабличнаяЧастьПриИзменении(МестныйКэш, ТабЧасть);
			
		КонецЕсли;
	КонецЦикла;

КонецПроцедуры
//arshanskiyav-

Продуктивностью не отличается, т.к. сбисовские обработчики регистрируют каждое изменение в dbf, но это намного быстрее, нежели вручную!

Комментариев нет:

Отправить комментарий