Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 23:58
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Запрос при открытии формы  (Прочитано 4536 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн safronowmax

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-03-27
  • Сайт: 
Подскажите пожалуйста, 1с 8.2. Хочу привязать запрос к открытию формы списка (форма основана на справочнике Книги). Прописываю в модуль формы в событие при открытии следующий код:

&НаСервере
Процедура ПриОткрытии(Отказ)
Запрос = Новый Запрос("ВЫБРАТЬ АвторКниги ИЗ Справочник.Книги ГДЕ АвторКниги='Иванов'");
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
   Сообщить(Выборка.АвторКниги);
КонецЦикла;
КонецПроцедуры

Но результат запроса не выполняется, как были в списке все авторы, так и остались. В чем может быть проблема?

   


Оффлайн starz555

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2010-11-30
  • Сайт: 
  • Профессия: Программист 1С
Поподробнее лучше бы. Форма управляемая? Что является основным реквизитом формы списка?
И, воообще, в результате работы этого запроса, насколько я понимаю, максимум будут выданы сообщения со списком авторов. Вы же хотите отфильтровать список по конкретному автору? Такая задача стоит?

Оффлайн SlazZy

  • ***
  • Сообщений: 149
  • РЕПУТАЦИЯ: 15
  • КПД: 10%
  • Регистрация: 2012-04-28
  • Сайт: 
  • Профессия: Программист 1С
а почему что-то должно меняться-то? И почему у вас событие ПриОткрытии выполняется на сервере?

Этот запрос надо сделать произвольным запросом динамического списка.

Оффлайн safronowmax

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-03-27
  • Сайт: 
Форма управляемая, основным реквизитом является Наименование (пробовал и с этим реквизитом, то же самое). Да, задача стоит отфильтровать сообщения по конкретному автору.


Оффлайн SlazZy

  • ***
  • Сообщений: 149
  • РЕПУТАЦИЯ: 15
  • КПД: 10%
  • Регистрация: 2012-04-28
  • Сайт: 
  • Профессия: Программист 1С
Форма управляемая, основным реквизитом является Наименование (пробовал и с этим реквизитом, то же самое). Да, задача стоит отфильтровать сообщения по конкретному автору.

Да не может быть основным реквизитом управляемой формы наименование :lol:
Может быть ДинамическийСписок, либо Объект. Не бывает основного реквизита - наименование, серьезно.

Оффлайн starz555

  • *
  • Сообщений: 44
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2010-11-30
  • Сайт: 
  • Профессия: Программист 1С
Смотрите, в редакторе форм в окне редактирования реквизитов формы(в верхней части окна справа) один из реквизитов выделен жирным шрифтом, это и есть основной реквизит формы. У него есть наименование и тип, тип этого реквизита какой у Вас? И откуда взята форма этого списка - Вы ее сами создали, или же это стандартная форма уже существовала в конфигурации? И что это за конфигурация, если это одна из типовых?
Добавлено: 08 Апр 2013, 10:41

safronowmax, а форма у Вас программно открывается или интерактивно? Всегда такой отбор должен быть наложен?
Добавлено: 08 Апр 2013, 12:23

Этот отбор можно настроить в пользовательском режиме (если это подходит). Через "Все действия"/Настроить список/Отбор.
Если надо, чтобы настройка была создана в конфигураторе, то в качестве основного реквизита формы у Вас должен быть указан реквизит с типом "ДинамическийСписок". У этого реквизита в свойствах должна быть выбрана основная таблица - Ваш справочник "Книги".
Тогда у этой формы существуют такой параметр, как "Отбор" - структура, его  и можно определить при открытии формы.
В общем, ван нужно, чтобы основной реквизит формы у вас был "ДинамическийСписок", в конфигураторе открываете свойства реквизита (этого Динамического Списка) и по ссылке "Настройка списка открыть" в его свойствах открываете его параметры.

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

   Автор= "Иванов";//присваиваете нужное значение, можете из Вашего запроса взять
   ЭлементОтбора = Список.Отбор.Элементы[0];//"Список" - имя основного реквизита Вашей формы, который имеет тип "ДинамическийСписок".
   ЭлементОтбора.ПравоеЗначение = Автор;
КонецПроцедуры

Плюс к этому, если при настройке динамического списка из конфигуратора - в свойствах динамического списка по ссылке "Свойства списка - Открыть",  Вы выделите строку отбора и правой кнопкой "Подробно"/режим редактирования ="Недоступно" - тогда пользователь даже не узнает, что настроен отбор, не увидит и следовательно отключить его не сможет.

Ну, а если нужен отбор по нескольким авторам, то в конфигураторе меняете вид сравнения на "Всписке", код немного правите:

Автор1 = "Иванов";
Автор2 = Смирнов";
Отборр = Новый Массив;
Отборр.Добавить(Автор1);
Отборр.Добавить(Автор2);
ЭлементОтбора = Список.Отбор.Элементы[0];
ЭлементОтбора.ПравоеЗначение = Отборр;

Если что непонятно, пишите

Последний раз редактировалось: starz555; 08 Апр 2013, 12:23. Причина: Объединение сообщений


Теги:
 

Не работает метод Сдвинуть() по отношению к программно добавляемой колонке1С:Предприятие 8.3 (8.3.10.2561) Управление производственным предприятием, редакция 1.4 Приветствую, я добавляю программно свою колонку в методе ПриОткрытии() модуля формы, вот так

Автор InsiderРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 290
Последний ответ 21 Сен 2017, 10:33
от Insider
Редактирование формы "Настройки пользователя".

Автор t955938Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 4814
Последний ответ 03 Авг 2011, 11:45
от t955938
получаю значение реквизита формы, дает значение 0

Автор mikel10Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3409
Последний ответ 12 Июл 2013, 15:35
от mikel10
Как обратиться к функции модуля формы из модуля Менеджера?

Автор TreeDogNightРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 4991
Последний ответ 10 Июл 2014, 14:05
от cska-fanat-kz
Настройка формы "Заполнение товаров"

Автор ЖаннаРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 584
Последний ответ 10 Мар 2017, 21:00
от Жанна

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
50 Сообщений
andron81_81
41 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 217
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal