Здравствуйте возникла такая проблема , нужно чтобы в отчете выводились документы с метками (то есть с меткой один и с меткой 2) по отдельности я реализовал , а вот чтобы они вместе выводились не могу , (НайтиПоКоду- выводится только первое значение как сделать чтобы выводились обе?
Процедура двоеПриИзменении(Элемент)
ВидОплаты = Справочники.ВидыОплатыТЧ.НайтиПоКоду ("000000002 + 000000001");
Запрос.Текст =
Реализация = Ложь;
ОплатаСегодня = Ложь;
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Универсальная обработка поиска и отбора по нескольким подстрокам
- Удаление дубликатов из справочников в 1С8
- Сравнение оборотов по бухгалтерскому учету между двумя базами по COM соединению
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Синхронизация справочников или импорт данных через HTTP-сервис
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ну так, сделай список значений или массив, и добавь в него 2 элемента, каждый из которых ты найдешь по своему коду.
Этот список значений состоящий из двух элементов, загоняешь параметром в свой запрос - только вместо "=&ВидОплаты" используй "В &ВидыОплаты"
Этот список значений состоящий из двух элементов, загоняешь параметром в свой запрос - только вместо "=&ВидОплаты" используй "В &ВидыОплаты"
Очень сложно по такому описанию понять, что именно нужно сделать, ни отчета ни скринов... Но попробую позаниматься телепатией.
ВидОплаты1 = Справочники.ВидыОплатыТЧ.НайтиПоКоду ("000000002");
ВидОплаты2 = Справочники.ВидыОплатыТЧ.НайтиПоКоду ("000000001");
В запросе условие "Поле1 = &ВидОплаты1 ИЛИ Поле1 = &ВидОплаты2"
Или, если видов оплаты много, через В(&СписокВидовОплаты)
ВидОплаты1 = Справочники.ВидыОплатыТЧ.НайтиПоКоду ("000000002");
ВидОплаты2 = Справочники.ВидыОплатыТЧ.НайтиПоКоду ("000000001");
В запросе условие "Поле1 = &ВидОплаты1 ИЛИ Поле1 = &ВидОплаты2"
Или, если видов оплаты много, через В(&СписокВидовОплаты)
(3)
Процедура ПриОткрытии()
НачПериода = НачалоМесяца(ТекущаяДата());
КонПериода = ТекущаяДата();
КонецПроцедуры
Процедура ДействияФормыОтчетСформировать(Кнопка)
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
Отчет(ТабДок);
КонецПроцедуры
Процедура Отчет(ТабДок) Экспорт
Макет = ОбработкаОбъект.ПолучитьМакет("Отчет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК ДокументПродажи
| ПОМЕСТИТЬ Продажи
| ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ГДЕ
| РеализацияТоваровУслуг.ВидОплаты = &ВидОплаты
|
| И РеализацияТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода
| И РеализацияТоваровУслуг.Проведен = ИСТИНА
|;
////////////////////////////////////////////////////////////////////////////////
| ВЫБРАТЬ
| Продажи.ДокументПродажи.Контрагент КАК Контрагент,
| Продажи.ДокументПродажи КАК ДокументПродажи,
| ПриходныйКассовыйОрдер.Ссылка КАК ПКО,
| Продажи.ДокументПродажи.СуммаДокумента КАК СуммаПродажи,
| ПриходныйКассовыйОрдер.СуммаДокумента КАК СуммаПКО
| ИЗ
| Продажи КАК Продажи
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
| ПО Продажи.ДокументПродажи = ПриходныйКассовыйОрдер.ДокументОснование
| ИТОГИ
| СУММА(СуммаПродажи),
| СУММА(СуммаПКО)
| ПО
| ОБЩИЕ,
| Контрагент";
Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
Запрос.УстановитьПараметр("ВидОплаты", ВидОплаты);
Результат = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьКонтрагентИерархия = Макет.ПолучитьОбласть("КонтрагентИерархия");
ОбластьКонтрагент = Макет.ПолучитьОбласть("Контрагент");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ОбластьИтоги = Макет.ПолучитьОбласть("Итог");
ТабДок.Очистить();
ОбластьЗаголовок.Параметры.Период = "Нач. период: " + Формат(НачПериода, "ДЛФ=D") + " Конеч. период: " + Формат(КонПериода,"ДЛФ=D") + Символы.НПП + ВидОплаты;
ОбластьЗаголовок.Параметры.ДатаВремяПечати ="Печать документа - " + ТекущаяДата();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаРезультат = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаРезультат.Следующий() Цикл
ОбластьИтоги.Параметры.Заполнить(ВыборкаРезультат);
ТабДок.Вывести(ОбластьИтоги, ВыборкаРезультат.Уровень());
ВыборкаКонтрагент = ВыборкаРезультат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКонтрагент.Следующий() Цикл
ОбластьКонтрагентИерархия.Параметры.Заполнить(ВыборкаКонтрагент);
ТабДок.Вывести(ОбластьКонтрагентИерархия, ВыборкаКонтрагент.Уровень());
ВыборкаДетали = ВыборкаКонтрагент.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
КонецЦикла;
КонецЦикла;
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
//ТабДок.Вывести(ОбластьПодвал);
КонецПроцедуры
Процедура ОплатаСегодняПриИзменении(Элемент)
ВидОплаты = Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001");
Реализация = Ложь;
Двое = Ложь;
КонецПроцедуры
Процедура РеализацияПриИзменении(Элемент)
ВидОплаты = Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000002");
ОплатаСегодня = Ложь;
Двое = Ложь;
КонецПроцедуры
Показать
(4) Так, хорошо, я так понимаю, на форме две галочки, когда все по отдельности (ОплатаСегодня или Реализация) - формируется нормально, а по двум сразу у вас сформировать не получается, так?
Если да, то в запросе меняем "ГДЕ РеализацияТоваровУслуг.ВидОплаты = &ВидОплаты" на "ГДЕ РеализацияТоваровУслуг.ВидОплаты В (&СписокВидовОплаты)", в процедурах ПриИзменении код "ВидОплаты = Справочники...." меняем на "ВидОплаты = Новый СписокЗначений; ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001"))", соответственно, когда нужно по одному из значений - помещаете в список одно значение, когда два - помещаете два. И все должно заработать.
Если да, то в запросе меняем "ГДЕ РеализацияТоваровУслуг.ВидОплаты = &ВидОплаты" на "ГДЕ РеализацияТоваровУслуг.ВидОплаты В (&СписокВидовОплаты)", в процедурах ПриИзменении код "ВидОплаты = Справочники...." меняем на "ВидОплаты = Новый СписокЗначений; ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001"))", соответственно, когда нужно по одному из значений - помещаете в список одно значение, когда два - помещаете два. И все должно заработать.
(5)
в конце получилось что то типа этого
но выдает ошибку
в конце получилось что то типа этого
Процедура двоеПриИзменении(Элемент)
ВидОплаты = Новый СписокЗначений;
ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001"));
ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000002"));
Реализация = Ложь;
ОплатаСегодня = Ложь;
КонецПроцедуры
Показатьно выдает ошибку
{Обработка.ПроверкаОплаты.Форма.Отчет(119)}: Метод объекта не обнаружен (Добавить)
ВидОплаты.Добавить(Справочники.ВидыОплатыТЧ.НайтиПоКоду("000000001"));
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот