gifts2017

Процедура для заполнения табличной части обработки "Печать ценников" по документу Установка цен номенклатуры (УТ 10.3)

Опубликовал Константин Шалаев (dr2c) в раздел Программирование - Практика программирования

Процедура позволит распечатать ценники по товару из документа Установка цен номенклатуры

Данная процедура дополняет функционал стандартной, для УТ 10.3, обработки "Печать ценников". В меню Заполнить добавляем элемент ЗаполнитьПоУстановкаЦен и (соответственно ему) действие КоманднаяПанельТоварыЗаполнитьПоУстановкаЦен

Процедура КоманднаяПанельТоварыЗаполнитьПоУстановкаЦен(Кнопка)
	
	Документ = Документы.УстановкаЦенНоменклатуры.ПолучитьФормуВыбора().ОткрытьМодально();
	
	Если Документ = Неопределено Тогда
		Возврат;
	КонецЕсли;	
	
	Товары.Очистить();
	Если Документ.Товары.Количество()>0 Тогда
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	УстановкаЦенНоменклатурыТовары.Номенклатура,
		|	УстановкаЦенНоменклатурыТовары.Цена,
		|	УстановкаЦенНоменклатурыТовары.ЕдиницаИзмерения
		|ИЗ
		|	Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары
		|ГДЕ
		|	УстановкаЦенНоменклатурыТовары.Ссылка = &Ссылка
		|	И УстановкаЦенНоменклатурыТовары.ТипЦен = &ТипЦен";
		
		Запрос.УстановитьПараметр("Ссылка", Документ);
		Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
		
		Результат = Запрос.Выполнить().Выбрать();
		ТЗ=Новый ТаблицаЗначений;
		ТЗ.Колонки.Добавить("Номенклатура");
		ТЗ.Колонки.Добавить("Цена");
		ТЗ.Колонки.Добавить("ЕдиницаИзмерения");
		ТЗ.Колонки.Добавить("Количество");
		ТЗ.Колонки.Добавить("Печать");
		Пока Результат.Следующий() Цикл
			Стр					=ТЗ.Добавить();
			Стр.Номенклатура	=Результат.Номенклатура;
			Стр.Цена			=Результат.Цена;
			Стр.ЕдиницаИзмерения=Результат.ЕдиницаИзмерения;
			Стр.Количество		=1;
			Стр.Печать			=Истина;
		КонецЦикла;
		//
		Если ТЗ.Количество()>0 тогда		
			Товары.Загрузить(ТЗ);
		иначе
			Если  ПустаяСтрока(ТипЦен) тогда
				Сообщить("Не выбрана цена");
			иначе
				Сообщить("В документе отсутствует цена- "+ТипЦен.Наименование+" или у документа неправильно заполнена табличная часть"); 
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры//КоманднаяПанельТоварыЗаполнитьПоУстановкаЦен

Также эту процедуру легко можно переделать под любой другой документ.

См. также

Подписаться Добавить вознаграждение
Комментарии
1. John Papilion (Papilion) 19.08.15 10:59
Чтобы не менять конфу можно добавить как внешнюю обработку через "Внешние обработки заполнения табличных частей", используя
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта = Неопределено) Экспорт.
2. НЕ ЗНАЮ (NE_ZNAIY) 24.08.15 09:46
А разве нельзя прямо из установки цен напечатать ценники?
Я печатаю. В какой момент эта обработка может понадобиться?
3. Константин Шалаев (dr2c) 24.08.15 13:38
(1) Papilion, Безусловно. Здесь нет ни слова, что эти изменения можно(нужно) вносить только в обработку из состава конфигурации.
4. Константин Шалаев (dr2c) 24.08.15 13:39
(2) NE_ZNAIY, Уверены, что у вас стандартное решение? В оригинальной поставке можно распечатать Прайс, но не ценники
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа