поиск по двум кодам справочника

1. kolbaska228 26.07.17 12:10 Сейчас в теме
Здравствуйте возникла такая проблема , нужно чтобы в отчете выводились документы с метками (то есть с меткой один и с меткой 2) по отдельности я реализовал , а вот чтобы они вместе выводились не могу , (НайтиПоКоду- выводится только первое значение как сделать чтобы выводились обе?

Процедура двоеПриИзменении(Элемент)                            
	ВидОплаты = Справочники.ВидыОплатыТЧ.НайтиПоКоду ("000000002 + 000000001");
	Запрос.Текст = 

    Реализация = Ложь;
    ОплатаСегодня = Ложь;

КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 302 26.07.17 12:18 Сейчас в теме
ну так, сделай список значений или массив, и добавь в него 2 элемента, каждый из которых ты найдешь по своему коду.
Этот список значений состоящий из двух элементов, загоняешь параметром в свой запрос - только вместо "=&ВидОплаты" используй "В &ВидыОплаты"
3. necropunk 11 26.07.17 12:19 Сейчас в теме
Очень сложно по такому описанию понять, что именно нужно сделать, ни отчета ни скринов... Но попробую позаниматься телепатией.

ВидОплаты1 = Справочники.ВидыОплатыТЧ.НайтиПоКоду ("000000002");
ВидОплаты2 = Справочники.ВидыОплатыТЧ.НайтиПоКоду ("000000001");

В запросе условие "Поле1 = &ВидОплаты1 ИЛИ Поле1 = &ВидОплаты2"
Или, если видов оплаты много, через В(&СписокВидовОплаты)
4. kolbaska228 26.07.17 12:24 Сейчас в теме
(3)
Процедура ПриОткрытии()
	НачПериода = НачалоМесяца(ТекущаяДата());
	КонПериода = ТекущаяДата();
	

КонецПроцедуры

Процедура ДействияФормыОтчетСформировать(Кнопка)
	ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
	Отчет(ТабДок);
КонецПроцедуры

Процедура Отчет(ТабДок) Экспорт
	Макет = ОбработкаОбъект.ПолучитьМакет("Отчет");
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
|		РеализацияТоваровУслуг.Ссылка КАК ДокументПродажи
|	ПОМЕСТИТЬ Продажи
|		ИЗ
|		Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|	ГДЕ
|		РеализацияТоваровУслуг.ВидОплаты = &ВидОплаты
|		

|		И РеализацияТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода
|		И РеализацияТоваровУслуг.Проведен = ИСТИНА
|;

////////////////////////////////////////////////////////////­////////////////////
|	ВЫБРАТЬ
|		Продажи.ДокументПродажи.Контрагент КАК Контрагент,
|		Продажи.ДокументПродажи КАК ДокументПродажи,
|		ПриходныйКассовыйОрдер.Ссылка КАК ПКО,
|		Продажи.ДокументПродажи.СуммаДокумента КАК СуммаПродажи,
|		ПриходныйКассовыйОрдер.СуммаДокумента КАК СуммаПКО
|	ИЗ
|		Продажи КАК Продажи
|			ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
|				ПО Продажи.ДокументПродажи = ПриходныйКассовыйОрдер.ДокументОснование
|	ИТОГИ
|		СУММА(СуммаПродажи),
|		СУММА(СуммаПКО)
|	ПО
|		ОБЩИЕ,
|		Контрагент";

	Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
	Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));	
	Запрос.УстановитьПараметр("ВидОплаты", ВидОплаты);
	

	Результат = Запрос.Выполнить();

	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");  	
	ОбластьКонтрагентИерархия = Макет.ПолучитьОбласть("КонтрагентИерархия");
	ОбластьКонтрагент = Макет.ПолучитьОбласть("Контрагент");
	ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    ОбластьИтоги =  Макет.ПолучитьОбласть("Итог");

	ТабДок.Очистить();
	
	ОбластьЗаголовок.Параметры.Период = "Нач. период: " + Формат(НачПериода, "ДЛФ=D") + " Конеч. период: " + Формат(КонПериода,"ДЛФ=D") + Символы.НПП + ВидОплаты; 
	ОбластьЗаголовок.Параметры.ДатаВремяПечати ="Печать документа - " + ТекущаяДата();
	ТабДок.Вывести(ОбластьЗаголовок);
	
	ТабДок.Вывести(ОбластьШапкаТаблицы);
	ТабДок.НачатьАвтогруппировкуСтрок();	
	ВыборкаРезультат = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

	Пока ВыборкаРезультат.Следующий() Цикл 
  		ОбластьИтоги.Параметры.Заполнить(ВыборкаРезультат);
  		ТабДок.Вывести(ОбластьИтоги, ВыборкаРезультат.Уровень());
  		ВыборкаКонтрагент = ВыборкаРезультат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
		
  		Пока ВыборкаКонтрагент.Следующий() Цикл
   			ОбластьКонтрагентИерархия.Параметры.Заполнить(ВыборкаКонтрагент);
   			ТабДок.Вывести(ОбластьКонтрагентИерархия, ВыборкаКонтрагент.Уровень());
   			ВыборкаДетали = ВыборкаКонтрагент.Выбрать();
			
   			Пока ВыборкаДетали.Следующий() Цикл
    			ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
    			ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
   			КонецЦикла;
  		КонецЦикла;
	КонецЦикла;
		         	
	
	ТабДок.ЗакончитьАвтогруппировкуСтрок();
		
	//ТабДок.Вывести(ОбластьПодвал);
КонецПроцедуры


Процедура ОплатаСегодняПриИзменении(Элемент)
	ВидОплаты = Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001");
	 Реализация = Ложь;
	  Двое = Ложь;

КонецПроцедуры

Процедура РеализацияПриИзменении(Элемент)
	ВидОплаты = Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000002");
	ОплатаСегодня = Ложь;
	Двое = Ложь;

КонецПроцедуры
Показать
5. necropunk 11 26.07.17 12:44 Сейчас в теме
(4) Так, хорошо, я так понимаю, на форме две галочки, когда все по отдельности (ОплатаСегодня или Реализация) - формируется нормально, а по двум сразу у вас сформировать не получается, так?

Если да, то в запросе меняем "ГДЕ РеализацияТоваровУслуг.ВидОплаты = &ВидОплаты" на "ГДЕ РеализацияТоваровУслуг.ВидОплаты В (&СписокВидовОплаты)", в процедурах ПриИзменении код "ВидОплаты = Справочники...." меняем на "ВидОплаты = Новый СписокЗначений; ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001"))", соответственно, когда нужно по одному из значений - помещаете в список одно значение, когда два - помещаете два. И все должно заработать.
6. kolbaska228 26.07.17 13:05 Сейчас в теме
(5)
в конце получилось что то типа этого
Процедура двоеПриИзменении(Элемент)                            
	ВидОплаты = Новый СписокЗначений; 	
    ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001"));
    ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000002"));
	
	Реализация = Ложь;
    ОплатаСегодня = Ложь;

КонецПроцедуры

Показать


но выдает ошибку

{Обработка.ПроверкаОплаты.Форма.Отчет(119)}: Метод объекта не обнаружен (Добавить)
    ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001"));
7. Boneman 302 26.07.17 13:08 Сейчас в теме
(6)
но выдает ошибку
переменная вид оплаты, у тебя случайно не совпадает с именем реквизита формы или объекта ?
8. kolbaska228 26.07.17 13:17 Сейчас в теме
(7) да
Прикрепленные файлы:
9. Linx-p 26.07.17 13:22 Сейчас в теме
(8)
Переименовали, работает? )
Оставьте свое сообщение

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