|   |   | 
| 
 | Не работает самописная кнопка подбора номенклатуры! | ☑ | ||
|---|---|---|---|---|
| 0
    
        23th 21.06.17✎ 05:49 | 
        Сделал кнопку для подбора товара:
 Процедура КоманднаяПанель1Подбор(Кнопка) ФормаПодбора = Обработки.гарПодбор.ПолучитьФорму("Форма", ЭтаФорма, ЭтаФорма); ФормаПодбора.РежимВыбора = Истина; ФормаПодбора.МножественныйВыбор=Истина; ФормаПодбора.ЗакрыватьПриВыборе = Ложь; ФормаПодбора.Открыть(); КонецПроцедуры В самой обработке подбора сделал следующие Процедура СписокНоменклатурыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) ТекСтрока=ЭлементыФормы.СписокНоменклатуры.ТекущиеДанные; Если ТекСтрока.Ссылка.ЭтоГруппа тогда Возврат; Иначе СтандартнаяОбработка=Ложь; Форма = ПолучитьФорму("Форма1"); Форма.Номенклатура = ТекСтрока.Ссылка; Форма.ЕдиницаИзмерения = ТекСтрока.Ссылка.ЕдиницаДляОтчетов; СтруктураДанных = Форма.ОткрытьМодально(); ОповеститьОВыборе(СтруктураДанных); КонецЕсли; КонецПроцедуры Но почему то главную форму с товарами не опопвещается и туда ничего не попадает! | |||
| 1
    
        Альбатрос 21.06.17✎ 05:58 | 
        А кого, собссно, она должна оповещать?     | |||
| 2
    
        craxx 21.06.17✎ 06:01 | 
        (0) СтруктураДанных = Форма.ОткрытьМодально();
 вот тут корень проблемы | |||
| 3
    
        sFAQer 21.06.17✎ 06:06 | 
        (2) 23th <- вот тут корень проблемы     | |||
| 4
    
        23th 21.06.17✎ 06:21 | 
        (3) Почему? Этож открывается форма ввода количества номенклатуры! а то иначе будет только одна номенклатура вылазить.     | |||
| 5
    
        craxx 21.06.17✎ 06:29 | 
        (4) вдумчиво посмотри как в типовых реализовано
 + не увидел обработку подбора | |||
| 6
    
        craxx 21.06.17✎ 06:30 | 
        (5) обработку выбора в смысле     | |||
| 7
    
        23th 21.06.17✎ 06:42 | 
        Убрал модально, все равно ничего не работает!!!
 Процедура СписокНоменклатурыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) ТекСтрока=ЭлементыФормы.СписокНоменклатуры.ТекущиеДанные; Если ТекСтрока.Ссылка.ЭтоГруппа тогда Возврат; Иначе СтандартнаяОбработка=Ложь; //Форма = ПолучитьФорму("Форма1"); //Форма.Номенклатура = ТекСтрока.Ссылка; //Форма.ЕдиницаИзмерения = ТекСтрока.Ссылка.ЕдиницаДляОтчетов; СтруктураДанных = Новый Структура; СтруктураДанных.Вставить("Номенклатура", ТекСтрока.Ссылка); СтруктураДанных.Вставить("ЕдиницаИзмерения", ТекСтрока.Ссылка.ЕдиницаДляОтчетов); СтруктураДанных.Вставить("Количество", 1); //= Форма.ОткрытьМодально(); ОповеститьОВыборе(СтруктураДанных); КонецЕсли; КонецПроцедуры | |||
| 8
    
        craxx 21.06.17✎ 06:43 | 
        отладчик что говорит?     | |||
| 9
    
        23th 21.06.17✎ 06:45 | 
        (8) ОповеститьОВыборе(СтруктураДанных); 
 Здесь все нормально останавливается. А дальше то больше ничего и нет. Я все сделал как в типовой подбор сделан, но видимо чтото не учел. Вот хочу догнать в чем дело. | |||
| 10
    
        craxx 21.06.17✎ 06:54 | 
        (9) потому что у тебя владелец формы подбора должен быть элемент в который подбор идет
 либо в форме вызывающей форму подбора пиши ОбработкуВыбора | |||
| 11
    
        23th 21.06.17✎ 07:23 | 
        Поменял владельца 
 ФормаПодбора = Обработки.гарПодбор.ПолучитьФорму("Форма", ЭлементыФормы.Товары,); Сделал в документе Процедуру Обработка выбора Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) СтрокаТЧ = Товары.Добавить(); СтрокаТЧ.Номенклатура = ЗначениеВыбора.Номенклатура; СтрокаТЧ.ЕдиницаИзмерения = ЗначениеВыбора.ЕдиницаИзмерения; СтрокаТЧ.Количество = ЗначениеВыбора.Количество; СтрокаТЧ.Цена = УзнатьЦену(СтрокаТЧ); СтрокаТЧ.Сумма = СтрокаТЧ.Цена * СтрокаТЧ.Количество; КонецПроцедуры Но через отладчик поставил точку останова, так он в обработку выбора даже не заходит!!! И ничего не работает! | |||
| 12
    
        tixis 21.06.17✎ 07:33 | 
        (11)Поменял владельца 
 ФормаПодбора = Обработки.гарПодбор.ПолучитьФорму("Форма", ЭлементыФормы.Товары,); ВТорой параметр это не владелец, и верните в третий параметр ЭтаФорма | |||
| 13
    
        23th 21.06.17✎ 07:35 | 
        УРА!!!!!!!!!!
 Заработало! Процедура ТоварыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) СтрокаТЧ = Товары.Добавить(); СтрокаТЧ.Номенклатура = ВыбранноеЗначение.Номенклатура; СтрокаТЧ.ЕдиницаИзмерения = ВыбранноеЗначение.ЕдиницаИзмерения; СтрокаТЧ.Количество = ВыбранноеЗначение.Количество; СтрокаТЧ.Цена = УзнатьЦену(СтрокаТЧ); СтрокаТЧ.Сумма = СтрокаТЧ.Цена * СтрокаТЧ.Количество; // Вставить содержимое обработчика. КонецПроцедуры | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |