Загрузка скидки Розница 1.0

1. El_Ninio 26.08.19 07:02 Сейчас в теме
Хотел бы проконсультироваться у спецов по поводу загрузки скидки на кассах. В первом рисунке колонки кассы нет. Это я сам добавил. Загрузка скидки на кассах происходит следующим образом. Выбирается справочнике "скидки и наценки" магазин и загрузка происходит на всех кассах. А хотелось бы реализовать чтобы был выбор конкретной кассы, т.е выбирается магазин и сам пос. Чтобы загрузка скидки проходила только конкретной кассе. Если не выбран пос, то на всех кассах. Первая картина это справочник скидки и наценки, сейчас она работает так как выше описал. Выбирается магазин тогда скидка загружается на все кассы, если нет то не выгружается. Второй картинке выбирается пос которой выгружается вся номенклатура. Как я понял схема скидок загружается по идентификатору выбранной кассы из рисунка 2, по магазину. Вот код загрузки скидки с обработки рисунок 5.

Процедура ЗагрузитьСкидки(Объект, Файл, Товары, ШтрихКассир5);
	Разделитель = ";"; 	
	МенВрТаб = Новый МенеджерВременныхТаблиц;
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Идентификатор", Объект.Идентификатор);
	Запрос.Текст ="
		|Выбрать КассаККМ.ВидКассы ВидКассы Из РегистрСведений.ТорговоеОборудование
		|Где Идентификатор = &Идентификатор
		|";
	Выб = Запрос.Выполнить().Выбрать();
	Если Выб.Следующий() Тогда
		Если Выб.ВидКассы = Перечисления.ВидыКасс.Кассир5 Тогда;
			ШтрихКассир5 = Истина;
		КонецЕсли;
	КонецЕсли;
	
	Если ШтрихКассир5 Тогда
		Запрос.Текст ="
			|ВЫБРАТЬ Код, Наименование Из  Справочник.СкидкиНаценки Где Не НеАктивна
			|";
		Выб = Запрос.Выполнить().Выбрать();
		Пока Выб.Следующий() Цикл
			Строка = "<group_tov code=""" + Выб.Код + """ name=""" + Выб.Наименование + """ />";
			Файл.ДобавитьСтроку(Строка);
		КонецЦикла;
	КонецЕсли;
	
	Запрос.УстановитьПараметр("НачДата", НачалоДня(ТекущаяДата()));
	Запрос.УстановитьПараметр("КонДата", КонецДня(ТекущаяДата()));
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	С.Родитель.Код КАК Код,
	|	С.Родитель.Наименование КАК Наименование,
	|	1 КАК ТипСкидки,
	|	С.Код КАК КодГруппы,
	|	С.ТолькоПоКарте
	|ИЗ
	|	Справочник.СкидкиНаценки КАК С
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СкидкиНаценки.КассыККМ КАК М
	|		ПО (М.Ссылка = С.Ссылка)
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТорговоеОборудование КАК Т
	|		ПО (Т.КассаККМ.Магазин = М.Магазин)
	|			И (Т.Идентификатор = &Идентификатор)
	|ГДЕ
	|	НЕ С.НеАктивна";
	Выб = Запрос.Выполнить().Выбрать();
	Если ШтрихКассир5 Тогда
		Пока Выб.Следующий() Цикл
			Строка = "!" 
			+ СокрЛП(Выб.Код) + ";"
			+ Выб.Наименование + ";"
			+ "0;"
			+ ?(Выб.ТолькоПоКарте,"0","1") + ";"
			+ "0;"
			+ СокрЛП(Выб.КодГруппы) + ";";
			
			Файл.ДобавитьСтроку(Строка);
		КонецЦикла;
	Иначе
		Пока Выб.Следующий() Цикл
			Строка = "!" 
			+ СокрЛП(Выб.Код) + ";"
			+ Выб.Наименование + ";"
			+ ?(Выб.ТолькоПоКарте,"1","0");
			
			Файл.ДобавитьСтроку(Строка);
		КонецЦикла;
	КонецЕсли;
	Запрос.Текст = "
		|Выбрать 
		|	 С.Родитель.Код КодСхемы
		|	,С.Код 
		|	,С.Наименование
		|	,""1"" ТипСкидки
		|	,Выбор ТипПреимуществаПоСкидке
		|		Когда Значение(Перечисление.ТипыПреимуществПоСкидкам.Процент) Тогда ""1""
		|		Иначе ""2""
		|	 Конец ВидСкидки 
		|	,ЗначениеСкидкиНаценки РазмерСкидки
		|	,С.Наименование ТекстДляЧека
		|	,С.НачалоДействия ДатаНачала
		|	,С.КонецДействия ДатаОкончания	
		|	,С.ОбщееВремяНачала ВремяНачала
		|	,С.ОбщееВремяОкончания ВремяОкончания
		|	,Представление(С.УсловиеПредоставленияСкидки) Условие
		|	,С.ЗначениеУсловия  Сумма
		|Из Справочник.СкидкиНаценки С
		|	Внутреннее Соединение Справочник.СкидкиНаценки.КассыККМ М 
		|	По М.ССылка = С.Ссылка 
		|	Внутреннее Соединение РегистрСведений.ТорговоеОборудование Т
		|	ПО Т.КассаККМ.Магазин = М.Магазин И Т.Идентификатор = &Идентификатор
		|Где Не НеАктивна
		|";
	Выб = Запрос.Выполнить().Выбрать();
	Пока Выб.Следующий() Цикл
		Строка = "@" 
			+ СокрЛП(Выб.КодСхемы) + ";" 
			+ СокрЛП(Выб.Код) + ";"
			+ Выб.Наименование + ";"
			+ Выб.ТипСкидки + ";"
			+ Выб.ВидСкидки + ";"
			+ Выб.РазмерСкидки + ";"
			+ Выб.ТекстДляЧека + ";"
			+ Формат(Выб.ДатаНачала, "дФ=""дд.ММ.гг""") + ";"
			+ Формат(Выб.ДатаОкончания, "дФ=""дд.ММ.гг""") + ";"
			+ Формат(Выб.ВремяНачала, "дФ=""ЧЧ:мм:сс""") + ";"
			+ Формат(Выб.ВремяОкончания, "дФ=""ЧЧ:мм:сс""") + ";"
			+ "0;0;" //Время недели не используется
			+ ?(Выб.Условие = "По количеству", Выб.Сумма, "0") + ";0;"
			+ ?(Выб.Условие = "По сумме", Выб.Сумма, "0") + ";0;"
			+ "0;" +?(Выб.Условие = "По сумме", "1", "0") ; //Время недели не используется
			
		Файл.ДобавитьСтроку(Строка);
	КонецЦикла;
		
КонецПроцедуры
Показать

Если магазин выбран и берет идентификатор кассы из рисунка 2.

Вопрос, как сделать так чтобы он брал идентификатор именно со справочника скидки и наценки с выбранной кассой ?
Пытался в обработке указать конкретный идентификатор. Но все равно грузит скидку с выбранного на рис 2 кассы.
Прикрепленные файлы:
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

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