Вывод копеек отдельно в макет ценника. Розница 3.0

Клиент захотел, чтобы в макете копейки выводились отдельно:

К сожалению, с помощью форматирования нельзя выделить дробную часть из числа (недостаток 1С, оставил пожелание).

Поэтому приходится брать в руки код и писать расширение модуля менеджера обработки ПечатьЭтикетокИЦенников:


&Вместо("СформироватьПечатныеФормыЭтикетокИЦенников")
Функция M_СформироватьПечатныеФормыЭтикетокИЦенников(НастройкиПечати, ПечататьЭтикетки, ПечататьЦенники)
	
	КоллекцияПечатныхФорм = ПродолжитьВызов(НастройкиПечати, ПечататьЭтикетки, ПечататьЦенники);
	
	Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
		ТабличныйДокумент = ПечатнаяФорма.ТабличныйДокумент;
		Начало = Неопределено;
		Пока истина Цикл
			Область = ТабличныйДокумент.НайтиТекст("#КОП:", Начало);
			Если Область = Неопределено Тогда
				Прервать;
			КонецЕсли;          
			Текст = Область.Текст;
			Текст = СтрЗаменить(Текст, "#КОП:", "");
			Поз = Найти(Текст, ".");
			Если Поз <> 0 Тогда
				Текст = Сред(Текст, Поз + 1);
			Иначе 
				Текст = "0";
			КонецЕсли;   
			Текст = Формат(Число(Текст), "ЧЦ=2; ЧН=00; ЧВН=");
			Область.Текст = Текст;
		КонецЦикла;
	КонецЦикла;

	
	Возврат КоллекцияПечатныхФорм;
КонецФункции

К сожалению, функция печати ценников монолитна, в нее нельзя вмешаться, поэтому делаем обработку уже после формирования готового табличного документа с ценниками.

В макете поле выглядит так:

В начале поля добавляю префикс #КОП: подобрал такой префикс, чтобы не встречался в наименованиях товаров.

Результат я привел в первой картинке этой статьи.

Среда: 3.0.3.147.

fixin

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

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

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

Ваш адрес email не будет опубликован.