Форум программистов, компьютерный форум CyberForum.ru

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 99
#1

1с отчет СКД выбор данных в зависимости от значения логического параметра - 1С

22.12.2016, 16:17. Просмотров 447. Ответов 13

Здравствуйте. Платформа 1С: Предприятие 8.3.
Столкнулась с такой проблемой. Имеется отчет "Отчет по грузоперевозкам", созданный с помощью СКД на основании данных документа "CMR", который выводит следующие поля за указываемый период:
Получатель | Грузополучатель | Разрешение | Заявление
Тип полей "Получатель" и "Грузополучатель" = Справочник.Контрагент, тип полей "Разрешение" и "Заявление" = Дата.
Необходимо создать 3 логических параметра (тип - Булево): "Все", "Без подтверждения", "Подтверждено".
Если истина "Все", то просто формируется отчет с учетом указанного период.
Если истина "Без подтверждения", то в отчете должны выводится только те строки, в которых поле "Разрешение" или поле "Заявление", или поля "Разрешение" и "Заявление" не заполнены.
Если истина "Подтверждено", то в отчете должны выводится только те строки, в которых поля "Разрешение" и "Заявление" заполнены.
Подскажите, пожалуйста, где именно нужно прописывать выбор данных в зависимости от значения логических параметров. И может есть у кого пример похожего отбора. Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2016, 16:17     1с отчет СКД выбор данных в зависимости от значения логического параметра
Посмотрите здесь:

Отчет в СКД 1С 1C 8.x
Отчет в СКД: отбор записей по дате 1С 1C 8.x
1С 1C 8.x (тонкий) Отчет в СКД
Отчет через СКД. Вывод итогов 1С
1С Отчет скд, обьеденение таблиц
Отчет СКД и табличное поле 1С
1c СКД Цветной отчет 1С
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Четверг
1 / 1 / 0
Регистрация: 13.10.2016
Сообщений: 59
22.12.2016, 19:00     1с отчет СКД выбор данных в зависимости от значения логического параметра #2
создать форму. на форму 3 реквизита. и там отбор в модуле формы. я б наверное так делал
renat_dmitriev
92 / 92 / 26
Регистрация: 26.08.2016
Сообщений: 308
22.12.2016, 19:42     1с отчет СКД выбор данных в зависимости от значения логического параметра #3
Tatiana21,

Не имеет смысла создавать три логически параметра, достаточно создать в запросе СКД одно поле

РазрешениеЗаявлениеЗаполнены, что-то вроде

1C
1
2
3
4
ВЫБОР КОГДА Разрешение = ДАТА(1, 1, 1, 0, 0, 0) ТОГДА ЛОЖЬ
КОГДА Заявление = ДАТА(1, 1, 1, 0, 0, 0) ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ КАК РазрешениеЗаявлениеЗаполнены
и поместить на форму переключатель с тремя возможными значениями.

Не забудьте в СКД добавить его в отбор

При изменении переключателя устанавливайте программно значение этого поля или снимайте галочку использование, если необходимы все записи.

Пример процедуры программной установки значения отбора

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
Процедура УстановтьОтборПоПолюКомпоновки(Имя,Значение = Неопределено, ВидСравнения = Неопределено)
         Для Каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
              Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Имя) Тогда
                    Если Значение = Неопределено Тогда
                          ЭлементОтбора.Использование = Ложь;
                    Иначе
                          ЭлементОтбора.ВидСравнения = ВидСравнения; 
                          ЭлементОтбора.ПравоеЗначение = Значение; 
                          ЭлементОтбора.Использование = Истина; 
                    КонецЕсли;
              КонецЕсли;
         КонецЦикла;
КонецПроцедуры
Соответственно в первом случае вызываете процедуру

1C
1
УстановтьОтборПоПолюКомпоновки("РазрешениеЗаявлениеЗаполнены", Неопределено, ВидСравнения.Равно);
во втором случае ту же процедуру со вторым параметром ЛОЖЬ
в третьем случае со вторым параметром ИСТИНА
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 99
23.12.2016, 09:07  [ТС]     1с отчет СКД выбор данных в зависимости от значения логического параметра #4
Мне по заданию нужно именно 3 логических параметра.

Добавлено через 28 минут
Возможна ли реализация поставленной задачи без использования формы? Может можно прописать условия выбора данных в каждом из 3-х параметров в конструкторе запроса на вкладке Условия?
Четверг
1 / 1 / 0
Регистрация: 13.10.2016
Сообщений: 59
23.12.2016, 10:37     1с отчет СКД выбор данных в зависимости от значения логического параметра #5
я конечно сам нуб, пользователь где будет выбирать что ему нужно :"по всем", "без подтверждения"..., если не на форме?
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 99
23.12.2016, 10:46  [ТС]     1с отчет СКД выбор данных в зависимости от значения логического параметра #6
Так выбор понятно, что на форме будет осуществляться. А вот можно ли отбор данных прописывать не в модуле формы отчета, а через конструктор запроса в СКД?
Четверг
1 / 1 / 0
Регистрация: 13.10.2016
Сообщений: 59
23.12.2016, 10:57     1с отчет СКД выбор данных в зависимости от значения логического параметра #7
вроде как можно в запросе поставить условие по параметру. а параметр передать из формы
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 99
23.12.2016, 11:00  [ТС]     1с отчет СКД выбор данных в зависимости от значения логического параметра #8
Я отчет делала с помощью СКД. И форма формируется автоматически системой. Поэтому я не хочу создавать форму "вручную", а реализовать задачу с помощью конструктора запроса без использования модуля формы. Может кто-то сталкивался с похожей реализацией?
Четверг
1 / 1 / 0
Регистрация: 13.10.2016
Сообщений: 59
23.12.2016, 11:10     1с отчет СКД выбор данных в зависимости от значения логического параметра #9
в чем проблема создать форму вручную. щелкнуть два раза мышкой
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 99
23.12.2016, 12:37  [ТС]     1с отчет СКД выбор данных в зависимости от значения логического параметра #10
Потому что мне надо сделать это не прибегая к форме отчета.
Четверг
1 / 1 / 0
Регистрация: 13.10.2016
Сообщений: 59
23.12.2016, 12:45     1с отчет СКД выбор данных в зависимости от значения логического параметра #11
пользователи будут выбирать параметры не на форме?
Tatiana21
0 / 0 / 0
Регистрация: 01.11.2015
Сообщений: 99
23.12.2016, 13:24  [ТС]     1с отчет СКД выбор данных в зависимости от значения логического параметра #12
Попробовала написать запрос в СКД с 1 параметром (Фильтр), у которого 3 значения: Все записи, без подтверждения, подтверждено. Со значением Все записи - срабатывает как надо, попробовала добавить условие при значении параметра Подтверждено - нет (отбирает данные, как и в первом случает). Может кто подскажет, что не так?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ВЫБРАТЬ
    CMR.Покупатель,
    CMR.Грузополучатель,
        CMR.Дата,
    CMR.Разрешение,
    CMR.Заявление,
    ВЫБОР
        КОГДА &Фильтр = "ВсеЗаписи"
            ТОГДА ИСТИНА
        КОГДА &Фильтр = "БезПодтверждения"
            ТОГДА ИСТИНА
        КОГДА &Фильтр = "Подтверждено"
                И НЕ CMR.Разрешение = ""
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Поле1
ИЗ
    Документ.CMR КАК CMR
ГДЕ
    CMR.Дата >= &НачалоПериода
    И CMR.Дата <= &КонецПериода
Добавлено через 15 минут
Может нужно что-то в настройках на закладке Отбор указать? Если просто выбираю Поле1 с видом сравнения Заполнено - ничего не меняется.
Dethmontt
Модератор
Эксперт 1С
2409 / 2218 / 331
Регистрация: 10.03.2011
Сообщений: 7,771
Записей в блоге: 1
Завершенные тесты: 1
23.12.2016, 17:12     1с отчет СКД выбор данных в зависимости от значения логического параметра #13
На вкладке Параметры добавляем параметр (например &Фильтр) в возможные значения добавляем
0 - Все записи
1 - Без подтверждения
2 - Подтверждено

В условии запроса (в ГДЕ) пишем
1C
1
ВЫБОР КОГДА &Фильтр = 0 ТОГДА ИСТИНА КОГДА &Фильтр = 1 ТОГДА Разрешение = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) или Заявление =  ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КОГДА &Фильтр = 2 ТОГДА НЕ (Разрешение = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) и Заявление =  ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) ИНАЧЕ ЛОЖЬ КОНЕЦ
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2016, 18:07     1с отчет СКД выбор данных в зависимости от значения логического параметра
Еще ссылки по теме:

Отчет СКД перекрестный 1С 1C 8.x (тонкий)
1С Отчет СКД. Пересчет значения поля табличного документа при изменении другого поля
Расчет только в группировке (отчет СКД) 1С
Выбор значения в зависимости от типа движений 1С
Отчет в СКД 1С

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
renat_dmitriev
92 / 92 / 26
Регистрация: 26.08.2016
Сообщений: 308
23.12.2016, 18:07     1с отчет СКД выбор данных в зависимости от значения логического параметра #14
Цитата Сообщение от Tatiana21 Посмотреть сообщение
Возможна ли реализация поставленной задачи без использования формы? Может можно прописать условия выбора данных в каждом из 3-х параметров в конструкторе запроса на вкладке Условия?
Да, конечно, тогда совсем все просто.

Достаточно одного условия

1C
1
2
3
4
5
6
7
8
ГДЕ
ВЫБОР КОГДА &Все ТОГДА ИСТИНА 
КОГДА &ТолькоНезаполненные И 
(Разрешение = ДАТА(1, 1, 1, 0, 0, 0) ИЛИ Заявление = ДАТА(1, 1, 1, 0, 0, 0)) ТОГДА ИСТИНА
КОГДА &ТолькоЗаполненные И 
Разрешение <> ДАТА(1, 1, 1, 0, 0, 0) И Заявление <> ДАТА(1, 1, 1, 0, 0, 0) ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
И параметры заполняете на вкладке параметров

Добавлено через 42 секунды
Но логичней сделать с одним параметром.
Yandex
Объявления
23.12.2016, 18:07     1с отчет СКД выбор данных в зависимости от значения логического параметра
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru