Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ПриВыбореСтроки() не стабатывает, уже плакать скоро буду
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
twilight_dream
Здравствуйте.
В обработке нужно сделать что-то вроде кнопки "подбор", только данные добавляются в табличную часть обработки, а не в документ.

Создал новую форму справочника номенклатура.
Вот весь модуль:
перем обработкаИсточник;
Процедура приОткрытии()
    Сообщить("Я открылась");
    Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
        обработкаИсточник = Форма.Параметр;
        Сообщить("обработкаИсточник = "+обработкаИсточник);
    КонецЕсли;
КонецПроцедуры

Процедура ПриВыбореСтроки()
    // отключаем стандартный механизм подбора    
    СтатусВозврата(0);
    
    Сообщить("Я сработала!!! ПриВыбореСтроки()");
    ТекЭлем=ТекущийЭлемент();      
    Если ТекЭлем.ЭтоГруппа() = 1 Тогда
        Предупреждение("Группы подбирать нельзя!",60);
        Возврат;
    КонецЕсли;
    обработкаИсточник.НоваяСтрока();
    обработкаИсточник.Номенклатура = ТекЭлем;
КонецПроцедуры    
Процедура ПриНачалеРедактированияСтроки()
    // отключаем стандартный механизм подбора    
    СтатусВозврата(0);    
    Сообщить("Я сработала!!! ПриНачалеРедактированияСтроки()");
КонецПроцедуры

Почему не срабатывает ПриВыбореСтроки()....???



Кстати, параметр тоже не передался, хотя я его передавал в "ОткрытьФорму", но до этого ещё не дошло, пусть хоть бы процедура сработала.

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

Пардон, с первым разобрался.
Форма.ОбработкаВыбораСтроки(1); smile.gif
Прошу помочь со вторым вопросом:

Вызываю форму вот так:
ОткрытьФорму("Справочник.Номенклатура.ПростойВыбор",Состав);

Переменная Состав - это визуальная таблица значений на форме обработки, которая вызывает подбор.
Почему то не передается в форму, которая открывается.

Спасибо за внимание. Второй вопрос решил.
Просто ПУстоеЗначение() от таблицы значения возвращает 1, кстати, этот же момент и в восьмерке.(истина)
XBrut
так його здається треба окремо вмикати
nysysimara
можно обойтись без новой формы справочника(для типовых недопиленных конфигураций это критично)
1) в таблицу (свойства), например ТаблицаФормы, добавляем вызов процедуры, например КликТаблицы()
2) Сама процедура:
Процедура КликТаблицы()
    ТекущаяСтрокаТабл= ТаблицаФормы.ТекущаяСтрока();
    Если ТекущаяСтрокаТабл>0 Тогда
        ТаблицаФормы.ПолучитьСтрокуПоНомеру(ТекущаяСтрокаТабл);
    КонецЕсли;  
    Если ТаблицаФормы.ТекущаяКолонка()="Номенклатура" Тогда
        КонтФормы = "";
        ОткрытьПодбор("Справочник.Номенклатура","ФормаСписка", КонтФормы,0,ТаблицаФормы.Номенклатура);  
    КонецЕсли;    
КонецПроцедуры

3) и еще в модуле обработки
Процедура ОбработкаПодбора(ВыбЗн)   
    Если Форма.АктивныйЭлемент()="ТаблицаФормы" Тогда  
        ТаблицаФормы.НоваяСтрока();
        ТаблицаФормы.Номенклатура = ВыбЗн;          
    КонецЕсли;  
КонецПроцедуры
twilight_dream
Цитата(nysysimara @ 20.06.14, 7:48) необходимо зарегистрироваться для просмотра ссылки
можно обойтись без новой формы справочника(для типовых недопиленных конфигураций это критично)
1) в таблицу (свойства), например ТаблицаФормы, добавляем вызов процедуры, например КликТаблицы()
2) Сама процедура:
Процедура КликТаблицы()
    ТекущаяСтрокаТабл= ТаблицаФормы.ТекущаяСтрока();
    Если ТекущаяСтрокаТабл>0 Тогда
        ТаблицаФормы.ПолучитьСтрокуПоНомеру(ТекущаяСтрокаТабл);
    КонецЕсли;  
    Если ТаблицаФормы.ТекущаяКолонка()="Номенклатура" Тогда
        КонтФормы = "";
        ОткрытьПодбор("Справочник.Номенклатура","ФормаСписка", КонтФормы,0,ТаблицаФормы.Номенклатура);  
    КонецЕсли;    
КонецПроцедуры

3) и еще в модуле обработки
Процедура ОбработкаПодбора(ВыбЗн)   
    Если Форма.АктивныйЭлемент()="ТаблицаФормы" Тогда  
        ТаблицаФормы.НоваяСтрока();
        ТаблицаФормы.Номенклатура = ВыбЗн;          
    КонецЕсли;  
КонецПроцедуры


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


А увидит процедуру из формы выбора?
nysysimara
Цитата(twilight_dream @ 23.06.14, 10:45) необходимо зарегистрироваться для просмотра ссылки
А увидит процедуру из формы выбора?

цитирую:
Процедура ОбработкаПодбора(<?>,)
.....
Назначение:
Предопределенная процедура обработки подбора значения при нажатия кнопки Выбрать в Форме Подбора значения.
vadim007
У меня была однажды близкая проблема - ОбработкаПодбора(..) не вызывалась, если ОткрытьПодбор(..) вызывалась из процедуры ПриНачалеВыбораЗначения(..).
Если вызов ОткрытьПодбор(...) вызывал из кнопки "Подбор" - то все Ок.
необходимо зарегистрироваться для просмотра ссылки
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.