Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вставить реквизит формы документа в отбор СКД
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
Lexveritas
1С8.3.10 УПП 1.3

Задача примерно такова:

Документ "Заказ Покупателя" делает движения дописанными полями в регистр накопления.
Имеется отчет, который вытягивает из него все необходимые данные.

Так же на форме документа добавлена кнопка "проверить корректность данных".

В данном случае по нажатию кнопки открывается отчет. Задумка такова - нажимаем на кнопку, по номеру документа получаем содержимое регистра с нужными ресурсами.

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


Вручную вместо НовыйЭлементОтбора.ПравоеЗначение = НомерЗаказа; пишу НовыйЭлементОтбора.ПравоеЗначение = "123"; нормально происходит отбор по номеру 123, что означает что отбор работает и я как то не правильно пытаюсь получить "НомерЗаказа".

Помогите получить номер в отбор.
Из одной формы в другую нормально получалось реквизит отправить, но с СКД и формами отчетов как то завис!

Буду признателен любой помощи!
Vidocq05
Цитата(Lexveritas @ 30.05.18, 16:10) необходимо зарегистрироваться для просмотра ссылки
 Форма = ПолучитьФорму("Документ.ЗаказПокупателя.Форма.ФормаДокумента");
    НомерЗаказа = Форма.Номер;

Судя по всему здесь НомерЗаказа равен пустой строке.

Lexveritas @ Сегодня, 16:10 необходимо зарегистрироваться для просмотра ссылки ,
Вообще задача не понятна. Например, при открытии какой формы срабатывает Ваш код?
Lexveritas
Цитата(Vidocq05 @ 30.05.18, 18:13) необходимо зарегистрироваться для просмотра ссылки
Вообще задача не понятна. Например, при открытии какой формы срабатывает Ваш код?


Отчет. Основная форма. Событие "ПриОткрытии".

Прошу прощения, забыл указать!

Сама форма отчета и отбор по указаным параметрам срабатывает.

Я не могу из формы документа ЗаказПокупателя отправить реквизит "Номер" в параметры отбора.
Prospero
Lexveritas @ Вчера, 21:20 необходимо зарегистрироваться для просмотра ссылки ,
НомерЗаказа - Переменная в отчете?
Vofka
Lexveritas, в пустой форме (которую вы получаете методом ПолучитьФорму()) нету никаких значений. Точнее, все значения всех реквизитов формы, будут со значениями по умолчанию (пустая ссылка, 0, пустая строка, пустая дата и т.п.). Вам нужно из документа в отчет передать Ссылку на текущий документ и отбор устанавливать по этой Ссылке.
Lexveritas
Цитата(Vofka @ 31.05.18, 9:08) необходимо зарегистрироваться для просмотра ссылки
Вам нужно из документа в отчет передать Ссылку на текущий документ и отбор устанавливать по этой Ссылке.


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

Вот сам то и вопрос как из документа в отчет передать Ссылку...
Vofka
Вариантов есть несколько. Самый надежный и понятный, на мой взгляд, что-то вроде следующего.

Добавляете своему отчету реквизит Ссылка типа Документ.ЗаказПокупателя. В заказе добавляете кнопку и в обработчике нажатия пишете:

Отчет = Отчеты.МойОтчет.Создать();
Отчет.Ссылка = Ссылка;
Отчет.ПолучитьФорму().Открыть();


Далее в отчете в ПриОткрытии получаете ссылку на документ через свойство Ссылка отчета. Ну и делаете уже что хотите с этим.
logist
Цитата(Lexveritas @ 30.05.18, 16:10) необходимо зарегистрироваться для просмотра ссылки
получаем содержимое регистра с нужными ресурсами.

А чем не подходит типовой отчет Движения по регистрам?
Lexveritas
Чудно!
Спасибо всем за помощь! Заработало!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.