Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Открыть регистр сведений с отбором

Доброго всем дня!

Для создания документа "Отчет об исполнении мероприятий" хочу предоставить для выбора мероприятия из Регистра сведений с отбором по подразделению и со статусом не равно "выполнен".
Документ "Отчет..." с полями Подразделение и ТЧ "Нарушения"
Регистр Сведений "ХодИсполнения" независимый непериодический
Измерения: СсылкаНаПланМероприятий, Подразделение;
Ресурс: Статус (Перечисление).

Создала форму списка Регистра с названием ФормаВыбора.
Форма открывается, но без отбора
Код 1C
1
2
3
4
5
6
7
8
9
&НаКлиенте
Процедура ВыбратьНарушения(Команда)
    ПараметрыПодбора = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор", Ложь, Истина);
    Отбор = Новый Структура; 
    Отбор.Вставить("ОбъектСТУ", Объект.ЗонаОтветственности); 
    ПараметрыПодбора.Вставить("Отбор", Отбор); 
    ФормаПодбора =ОткрытьФорму("РегистрСведений.ХодИсполнения.Форма.ФормаВыбора", ПараметрыПодбора, ЭтаФорма);
    
КонецПроцедуры
Мои попытки побороть:
Как выяснила, значение отбора не передается в регистр.
Попробовала создать Параметр в форме выбора - не получилось передача\прием
В форме выбора создала реквизит ЗонаОтветственности с типом Справочник.Подразделения, чтобы передать в него значение из документа "Отчет..." и
Код 1C
1
2
3
4
5
6
7
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Фрм = РегистрыСведений.ХодИсполнения.СоздатьНаборЗаписей();
    Фрм.Отбор.ЗонаОтветственности.Установить(ЗонаОтветственности);
    Фрм.Прочитать();
КонецПроцедуры
 
Ошибок нет, отбора тоже. В отладчике
Сначала открывает форму регистра, затем - ПриСозданииНаСервере, только потом реквизиту формывыбора присваивается значение реквизита документа "отчет..", и конечно отбора не происходит.

Объясните, пожалуйста, мне на пальцах как должно быть, и я постараюсь понять и сделать)
Спасибо)

Прошу прощения. УФ, 8.3
Ответ: SHIFT_969, спасибо.
Именно так я и делала, создала на форме параметр с типом Справочник.Подразделения
И не получается. Если выбираю из ТЧ документа Мероприятия. С передачей и обработкой параметра не возникает проблемы, все отбирается по Подразделению.
А вот с регистром никак...

Можно конечно не заморачиваться с этим регистром и выбирать из ТЧ документа, но хотелось бы разобраться почему у меня не получается

Добавлено через 15 часов 53 минуты
Получилось с параметром, ошибка была в запросе.
Всем спасибо)
Вопрос: динамический список. параметры или отбор?

добрый день всем!

вот задумался над такой вещею, что лучше использовать: устанавливать параметры для динамического списка или юзать отбор?

ситуация:
есть обработка, в ней форма, а на форме динамический список(далее ДС),и вот задача сего ДС показывать остатки товара на разных складах, НО юзеру нужно их увидеть то на одном складу, то на другом, то на всех складах. с запросом все понятно, и мы даем юзеру реквизит для для выбора склада, после того как он его поменяет как лучше, логичнее, правильнее и самое главное быстрее получить данные:

вариант 1 (юзать параметры):
ДС.Параметры.УстановитьЗначениеПараметра("Склад", Склад);

вариант 2 (юзать отбор):
ЭлементОтбора = ДС.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Склад");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Склад;


все время юзал вариант 1, и не думал, тупо красивее оно, но вот где-то наткнулся на использование варианта 2 и теперь вот меня МУЧАЮТ И РАЗРЫВАЮТ НА ЧАСТИ сомнения... как быть граждане?)))
Ответ: () Отбор работает с уже полученной из БД выборкой, т.е. все соединения и проч условия наложены и сформировано представление (нечто типа временной таблицы), дальше отборы работают с сим представлением. Объёмы работы по формированию списка меньше или сравним (при простом запросе) с запросом в БД.
Вопрос: Проблема с отбором в СКД

Привет Всем
в 1С предприятие 8.2 есть "Отчет" универсальный список сотрудников , на форме(обычная форма) добавил реквизит Отдел(Справочник.ПодразделениеОрганизации), в СКД добавил Параметр Отдел что бы делал отбор только по одному подразделению, все работает, в отчете когда заходишь в "Редактировать Структуру Отчета" во вкладке Отбор можно добавить условия то есть в левом поле выбирается "Поле Компоновки Данных" --> "Подразделение" ВидСравнения --> Равно в правом поле "Поле Компоновки Данных" --> Параметр.Отдел, как прописать это условие программно? в Общем модуле(ТиповыеОтчеты)  есть готовая функция:

Функция ДобавитьОтбор(ЭлементСтруктуры, Знач Поле, Значение, ВидСравнения = Неопределено, Использование = Истина) Экспорт
    
    Если ТипЗнч(Поле) = Тип("Строка") Тогда
        Поле = Новый ПолеКомпоновкиДанных(Поле);
    КонецЕсли;
    
    Если ТипЗнч(ЭлементСтруктуры) = Тип("КомпоновщикНастроекКомпоновкиДанных") Тогда
        Отбор = ЭлементСтруктуры.Настройки.Отбор;
    Иначе
        Отбор = ЭлементСтруктуры;
    КонецЕсли;
    
    Если ВидСравнения = Неопределено Тогда
        ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    КонецЕсли;
    
    НовыйЭлемент = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    НовыйЭлемент.Использование  = Использование;
    НовыйЭлемент.ЛевоеЗначение  = Поле;
    НовыйЭлемент.ВидСравнения   = ВидСравнения;
    НовыйЭлемент.ПравоеЗначение = Значение;
    Возврат НовыйЭлемент;    
КонецФункции
      
в ЭлементСтруктуры я передаю КомпоновщикНастроек, а вот в "Поле" и в "Значение" как передать "Поле Компоновки Данных"?
Ответ: отбор и параметр!? нафейхоа
Вопрос: Передача параметров в форму выбора.

Прошу подсказки.
Из документа "Реализация товаров и услуг" вызывается форма выбора по договору (ERP). Конфа правленая, сравниваю с типовой. В ОбработкеСозданияНаСервере формы выбора смотрю в отладчике Параметры.Отбор. Никак не могу понять как список отбора формируется - явного вызова этой формы с параметрами нет, в свойстве "СвязиПараметровВыбора" только один элемент отбора, а в Параметры.Отбор уже несколько. Может кто подскажет где искать.
Ответ: () Да, я понимаю что где-то они должны заполняться, но как они называются в реализации (то что есть "Параметры" в выборе)? Смотрю например выбор контрагента, там же должен измениться отбор по контрагенту.
Вопрос: Поле выбора отбора в отчёте СКД

Приветствую ребята, вопрос возник. Хочу вывести поле выбора отбора в отчёте, но что-то стопорится у меня это дело, нужен ваш совет...

Для поля контрагенты внёс код такой, он делает внутренний отбор, а как для поля слева отобразить ВидСравнения и привязать его к Пользователям?

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

Добавлено через 1 час 50 минут
Dethmontt, разобрался, почему пустой отчёт при отборе скд был, стояло условие в запросе скд по пользователям - удалил его и всё заработало. Благодарю за подсказки)
Вопрос: Псевднонимы в параметрах вирт.таблицы оборотов рег.накопления

Здравствуйте.

Столкнулся с задачкой доработки типового отчета, для решения задачи нужно было к типовому запросу сделать объединение с другим запросом по оборотному регистру накопления.
Запрос я написал, данные формировались, но при попытке установки отбора по контрагенту отбор устанавливался только на данные типового запроса, а на данные идущего после "ОБЪЕДИНИТЬ ВСЕ" без учета отбора. Парился несколько часов, искал причину, в конце концов более опытный коллега подсказал, что дело в псевдонимах, указываемых в параметрах вирт. таблицы оборотов в фигурных скобках, т.е.:

ВЫБРАТЬ ...

ИЗ
		РегистрНакопления.Выручка.Обороты({(&НачалоПериода)}, {(&ОкончаниеПериода)}, Авто, {(ВидЗапаса.Поставщик).* КАК Поставщик}) КАК Таб1
...


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

Так вот, я так и не понял, где эти параметры указываются в конструкторе или это можно установить только при ручной корректировке запроса?
Ответ:
автор
Скорее всего закладка в компоновке - таблица, а в ней маленькая кнопочка "параметры виртуальной таблицы".


Действительно, не заметил эту кнопочку, буду знать. Всем спасибо.
Вопрос: СКД Отбор "Не в списке"

Всем доброго дня.
Создан в СКД простенький отчет в основе которого запрос к регистру бухгалтерии без условий, точнее к виртуальной таблице ДвиженияССубконто.
Запускаю отчет, устанавливаю отбор по СчетДт и СчетКт, а также отбор по СубконтоДт.
Когда в отборе ставится условие СубконтоДт "В списке" , то отбор срабатывает, если же ставлю условие "Не в списке", то отбор не срабатывает.
--- Объединение сообщений, 21 фев 2017 ---
Та же проблема с "Равно" и "Не равно"
Ответ:
Там отбор работает также как и везде - в условии "ГДЕ".
Возможно, для того, чтобы получить корректный результат с субконто в параметрах ВТ одного параметра недостаточно, может вид субконто поможет?
Имхо никакой разницы в производительности не будет, где указывать субконто =) Это не период, не счет..
Вопрос: Настройка отбора динамического списка

На форме создаю новый ДинамическийСписок. Задаю основную таблицу (Справочник.ИмяСправочника). Запрос не произвольный. Захожу в настройки списка. На вкладке Отбор добавляю новый элемент отбора.
ЛевоеЗначение = ИмяСправочника.Ссылка
ВидСравнения  = ВСписке
ПравоеЗначение = тут мне надо указать массив (список значений), который я должен передать в отбор как параметр. Но установить произвольный параметр в правом значении я не могу.
Как мне сделать этот отбор?
Ответ: () ещё раз благодарю, всё работает, только использовал
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка

Дополнительный вопрос: можно ли отборам задавать права? То есть администраторы например могут отключать определённый отбор, а простые пользователи нет? В стандартной форме настроек
Вопрос: Отчет на СКД отбор по параметрам

Здравствуйте.
Сделал небольшой отчёт на СКД.

1. Как вывести параметры на форму отчета? Что бы не нужно было нажимать кнопку "Настройки".
2. Параметр "Производитель" почему то не срабатывает. Настроил на уровне СКД. Если параметр не задан то он не обязательный. Если параметр не указан и галочка стоит что настройка используется то отчёт пустой, если не стоит то отчет формируется по всем производителям. Но если выбираю конкретного то отчёт пустой.

Вложения:

  • Размер файла:
    7 КБ
    Просмотров:
    1
Ответ:
Ну тогда наверное просто в отборе
Субконто2 = и тут твой склад
т.к субконто2 это и есть склада так у тебя для счета твоего получается отбор типа Склад.Склад
Вопрос: Отчет СКД. Отбор по дате через параметры

Добрый день.
Получаю отчет по справочнику. Там есть поле дата. Как лучше сделать отбор по дате (чтоб по умолчанию был выключен), за день, период.
Хотел через стандартный период, но в отборах такого нет. Если делать в отборах через Дата меньше И Дата больше, то как то неудобно получается. пользователи могут нажать на крестик, поменять с больше на равно, поле видоизменяется. Как проще и удобнее для пользователя сделать?
Ответ: Попробуй через параметры и стандартный период.
1C
1
2
3
4
5
6
7
8
ВЫБРАТЬ
    Справочник.Ссылка,
    Справочник.Дата
ИЗ
    Справочник
{ГДЕ
    Справочник.Дата >= &НачалоПериода,
    Справочник.Дата <= &КонецПериода}