Сначала списки, потом произведения

Клиент сначала попросил, чтобы в колонку «Фасовка» добавлялись списки чисел, которые нужно суммировать и подставлять в колонку «Количество»:

Я сделал, но потом вдруг еще пожелали чтобы можно было произведения добавлять. Ну что же, сделал и это:

Вот код расширения формы заказа покупателя:

&НаКлиенте
Процедура мл_ФасовкаПриИзменении(Элемент)
	//Пересчитываем количество
	Если Элементы.Запасы.ТекущиеДанные = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ТекущиеДанные = Элементы.Запасы.ТекущиеДанные;
	
	//Суммируем количества в фасовке
	Фасовка = ТекущиеДанные.мл_Фасовка;
	М = СтрРазделить(Фасовка, ",");
	НовоеКоличество = 0;
	Для Каждого Эл Из М Цикл
		М2 = СтрРазделить(Эл, "*");
		Если М2.Количество() > 1 Тогда
			Ч = мл_КлиентСервер.ЧислоИзСтроки(М2[0]) * мл_КлиентСервер.ЧислоИзСтроки(М2[1]);
		Иначе
			Ч = мл_КлиентСервер.ЧислоИзСтроки(Эл);
		КонецЕсли;
		НовоеКоличество = НовоеКоличество + Ч;
	КонецЦикла;
	
	ТекущиеДанные.Количество = НовоеКоличество;
	//Обрабатываем изменение количества типовой процедурой обработки изменения количества
	ЗапасыКоличествоПриИзменении(Неопределено);
КонецПроцедуры

Среда: УНФ 3.0.1.248. Объем 1 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

комментария 2

  1. rzd:

    А если три множителя? Сразу универсально нельзя было?

    • три не используется у них. Зачем автоматизировать ненужное?
      Универсально можно, но дороже.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *