helpf.pro
Регистрация

Подбор

Bell
05.06.2011 12:24Прочитано: 3484
Здравствуйте
Хочу сделать подбор ТМЦ
Все получается если не вводить количество более единицы
При подборе я открыл форму ВводПараметров, а как передать значение параметров (количество) из это формы в табличную часть документа Через обработку я повторвил как в типовых все получилось, но у меня на форме табличные части и не одна и из каждой надо делать подбор с перерасчетом а главную(тблТовары)


Процедура тпПодборВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)

Перем ТМЦ,Количество;

СтандартнаяОбработка = Ложь;

Количество=1;
// Выбараем значения спрвочника
ТМЦ = ВыбраннаяСтрока;


ФормаВводПараметров = Справочники.ТМЦ.ПолучитьФорму("ВводПараметров", ЭтаФорма);

// Устанвливаем значения
ФормаВводПараметров.Заголовок = ТМЦ;
ФормаВводПараметров.Количество = Количество;

// Открыл форму для ввода количество и цену
СтруктураПараметров = ФормаВводПараметров.ОткрытьМодально();
// ????????????????????

//НВС=тблТовары.Добавить();
//НВС.ТМЦ =ВыбраннаяСтрока;
//НВС.фл =Истина;
//НВС.Количество =1;


КонецПроцедуры
.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
06.06.2011 10:43Ответ № 1
(0) Bell, смотри:
Как организовать подбор элемента справочника
Универсальная процедура, которая инициирует механизм подбора элементов справочника
Как сделать подбор элементов справочника в табличную часть документа?
Mokey
06.06.2011 14:20Ответ № 2
а что возвращает ФормаВводПараметров.ОткрытьМодально()?
theelectric
06.06.2011 15:17Ответ № 3
(2) Mokey, ОткрытьМодально - это свойство формы. Если форму открыть модально, то ничего на других формах, кроме нее, ты не сможешь сделать (активна только открытая модально, пока ее не закроешь)
Mokey
06.06.2011 15:22Ответ № 4
(3) theelectric, я в курсе, что такое "ОткрытьМодально". Я спрашивал, что возвращает открытая модально форма? Ведь если это свободная форма, то надо принудительно прописывать, что и когда она вернёт. Иначе - ничего.
Bell
06.06.2011 15:45Ответ № 5
Если Закоментировать
СтруктураПараметров = ФормаВводПараметров.ОткрытьМодально();
и раскоментировать
НВС=тблТовары.Добавить();
НВС.ТМЦ =ВыбраннаяСтрока;
НВС.фл =Истина;
НВС.Количество =1;
Тогда при нажатии на соответствующиую позицию ТМЦ в тпПодбор она попадет в табличную часть документа тблТовары (все нормально)
НО
Будет попадать выбранная ТМЦ с КОЛИЧЕСТВОМ ОДИН (как в типовой РОЗНИЦЕ)
Вот я и открываю форму для ВводаПараметров (Количество,Цена)
форма "ВводПараметров" на ней есть реквизиты Количество (ХОЧУ ДОПУСТИМ ВЫБРАТЬ ЛЮБОЕ КОЛИЧЕСТВО КРОМЕ ЕДИНИЦЫ) и чтобы это количество попало в табличную часть документа тблТовары при ЗАКРЫТИИ ФормыПараметров
Три варианта которые вы привели я проделал (все работает)Спасибо за их. НО там нет главного что бы я мог ввести необходимое МНЕ количество. В типовых конфигурациях я вычленил ПОДБОР но не пойму как при закрытии формы "ВводПараметров" значения (Количество и Цена) с ее попадают в табличную часть документа.
Извиняюсь если что то не понятно пишу КАК В 7.7

Кол = 1;
Если ВвестиЧисло(Кол, "Введите количество", 14, 3) = 0 Тогда
Возврат;
ИначеЕсли Кол = 0 Тогда
Возврат;
КонецЕсли;

НоваяСтрока();
Товар = ВыбрТовар;
Количество = Кол;
АктивизироватьСтроку();
Bell
07.06.2011 11:17Ответ № 6
Решил проблему, но всетаке хочется через доп. форму выбора еще
Добавляем
Если ВвестиЧисло(Количество, "Введите количество", 15, 3) = 0 Тогда
Возврат;
ИначеЕсли Количество = 0 Тогда
Возврат;
КонецЕсли;

// СтруктураПараметров = ФормаВводПараметров.ОткрытьМодально();


НВС=тблТовары.Добавить();
НВС.ТМЦ =ВыбраннаяСтрока;
НВС.фл =Истина;
НВС.Количество =Количество;
Mokey
08.06.2011 17:47Ответ № 7
(6) Bell,
Приведите код, которым закрывается Ваша допформа ввода параметров Количество и Цена. Тогда и будем говорить. А пока непонятно ничего.
Mokey
08.06.2011 17:52Ответ № 8
Например,
Код 1C v 8.х
 
Процедура КнопкаЗакрытьНажатие()
СтруктураВозврата = Новый Структура;
СтруктураВозврата.Вставить("Количество", Количество); // Количество из элемента формы
СтруктураВозврата.Вставить("Цена",Цена); //Цена из элемента формы
ЭтаФорма.Закрыть(СтруктураВозврата);
КонецПроцедуры

В этом случае форма. открытая модально, вернёт структуру с нашими параметрами, которые можно в дальнейшем использовать.
Mokey
08.06.2011 17:56Ответ № 9
Кстати, я давно уже адаптировал типовую форму подбора номенклатуры к своей конфигурации... так там, по-моему, можно было выбирать количество... или я дописывал? не помню уже, но работает как раз так, как хочет автор.
Bell
08.06.2011 22:53Ответ № 10
Я как раз и не знаю как перенести параметр из ФормыВводПараметров
Сделала просто, через Форма ВвестиЧисло ( убогая форма ) хотя через ее все работает
Провожу код от оокрыть форму модально

СтруктураПараметров = ФормаВводПараметров.ОткрытьМодально();
Если ВвестиЧисло(Количество, "ВВЕДИТЕ КОЛИЧЕСТВО", 15, 3) = 0 Тогда
Возврат;
ИначеЕсли Количество = 0 Тогда
Возврат;
КонецЕсли;

Цена = 0;
Если ВвестиЧисло(Цена, "ВВЕДИТЕ ЦЕНУ", 15, 2) = 0 Тогда
Возврат;
ИначеЕсли Цена = 0 Тогда
Возврат;
КонецЕсли;

НВС=тблТовары.Добавить();
НВС.фл =Истина;
НВС.Количество =Количество;
НВС.Цена =Цена;

Если я при закрытии формы (кпопка ОК) ФормаВводПараметров назначу вашу процедуру , то как я передам параметры Количество и Цена в тблТовары Может еще есть какое то звено о котором я не знаю?.
Bell
08.06.2011 22:54Ответ № 11
Что и где надо дописать? В какую процедура и т.д.
Mokey
09.06.2011 10:24Ответ № 12
(11) Bell,
СтруктураПараметров = ФормаВводПараметров.ОткрытьМодально();
вот в эту структуру вернётся структура из ФормаВводаПараметров. Далее уже вписываете в тблТовары значения из этой структуры.
НВС=тблТовары.Добавить();
НВС.фл =Истина;
НВС.Количество =СтруктураПараметров.Количество;
НВС.Цена =СтруктураПараметров.Цена;
Bell
09.06.2011 16:44Ответ № 13
СПАСИБО все получилось теперь я понял что не допонимал
Mokey
09.06.2011 17:50Ответ № 14
(13) Bell, только не забудьте проверить перед использованием, что вернула модальная форма (например, Неопределено или на ТипЗнч()), иначе можно на ошибку нарваться в процессе эксплуатации.
Успехов.
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.