Модераторы: stron
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как связать обработку с формой списка справочника, в 1С 7.7 у меня это не получается 
:(
    Опции темы
Timzi
  Дата 25.2.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 3.12.2007

Репутация: нет
Всего: нет



Добрый день!

Программирую в 1С 7.7: Бухгалтерия.
Столкнулся с одной задачкой с которой никак не могу справится. Подскажите возможно ли вообще сделать, то что я хочу.

Итак.
Есть стправочник "Туристы", в форме списка справочника хочу сделать кнопку "Поиск", которая вызывает НЕ модально некую обработку "Обработка.Поиск", в свою очередь мы задаём параметры в обработке по которым ищем туристов и в конце концов в форме списка справочника остаются только найденные. А после того как закрыл обработку все туристы в справочнике возвращаются на место. Это то, что я хочу сделать. Последнее (возврат всех в справочник после закрытия обработки) не обязательно, но очень хотелось бы.
Вот код в форме списка справочника:
Код

Процедура Поиск() 
    глСписокТуристов = "";  //Глобальная переменная
    ОткрытьФорму("Обработка.Поиск"); 
    Если ПустоеЗначение(глСписокТуристов) = 1 Тогда 
        ИспользоватьСписокЭлементов();   
    Иначе
        ИспользоватьСписокЭлементов(глСписокТуристов);  
    КонецЕсли;
КонецПроцедуры //Поиск

Если обработка открывается НЕ МОДАЛЬНО, то в модуле формы списка команда ИспользоватьСписокЭлементов(глСписокТуристов); проскакивает не меняя общую картину списка (глСписокТуристов будет всегда пуст).
Если обработка открывается МОДАЛЬНО, то команда ИспользоватьСписокЭлементов(глСписокТуристов); отрабатывается, но работать со списком найденных туристов нельзя пока не закроешь обработку. После закрытия остаются только найденные туристы и тогда надо придумать как вернуть полный список без особых извращений. Я конечно могу сделать вторую кнопку, которая возвращает всех на место (ИМХО извращение), могу сделать кнопку "Поиск", которая после нахождения и вывода туристов поменяет надпись на "Сброс" и при повторном нажатии вернёт как было (ИМХО тоже извращение, но это последний вариант). Есть у меня ещё и другие варианты, но хочу осуществить тот который я описал в самом начале.
Итог.
У меня не получается управлять списком элементов из обработки, т.к. ИспользоватьСписокЭлементов(); может использоваться только в модуле формы списка справочника. Подскажите, всё таки можно ли как-нибудь управлять списком элементов из обработки?
PM MAIL   Вверх
Itsys
Дата 25.2.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



Тебе надо передать контекст открытой формы в обработку:
ОткрытьФорму("Обработка.Поиск", Контекст); 


А, далее из обработки к нему обращаешься:
Форма.Параметр.ИспользоватьСписокЭлементов(глСписокТуристов);
PM MAIL WWW Skype   Вверх
Timzi
Дата 26.2.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 3.12.2007

Репутация: нет
Всего: нет



Спасибо!!! Всё получилось!!!
Правда пришлось с косяками повозится. Дело в том, что визуально список найденных людей не обновлялся.
Обновлялся только тогда когда тыкнешь по кому-либо, вот по одному и обновлял. А если трогал прокрутку, то 1С-ка вообще вылетала с ошибкой.
Поэтому код пришлось сделать таким:
Код в модуле списка:
Код

Процедура Поиск() 
    ОткрытьФорму("Обработка.Поиск",Контекст);  
КонецПроцедуры //Поиск

Код в обработке:
Код

Процедура Поиск()            
    СписокТуристов = СоздатьОбъект("СписокЗначений");

    {Нужный нам алгоритм, заполняющий СписокТуристов}

    Форма.Параметр.ИспользоватьСписокЭлементов(СписокТуристов);  
    сортир = Форма.Параметр.Сортировка(,); 
    Форма.Параметр.Сортировка(сортир,1);
КонецПроцедуры //Поиск
//*******************************************
Процедура ПриЗакрытии()
    Форма.Параметр.ИспользоватьСписокЭлементов();
    сортир = Форма.Параметр.Сортировка(,); 
    Форма.Параметр.Сортировка(сортир,1);
КонецПроцедуры //ПриЗакрытии

И всё заработало. Мне подкинули ещё одну идейку, опробую - напишу.
PM MAIL   Вверх
Itsys
Дата 26.2.2008, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



Помоему достаточно было сделать
Форма.Параметр.Форма.Обновить()
PM MAIL WWW Skype   Вверх
Timzi
Дата 27.2.2008, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 3.12.2007

Репутация: нет
Всего: нет



Спасибо, работает!

Форма.Параметр.Форма.Обновить() 

Не всё вычитаешь в документации smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

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

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.