Подбор номенклатуры БП, 8,3

1. user916115 17.10.18 13:37 Сейчас в теме
Здравствуйте дорогие коллеги:) БП, уф, 8.3, НЕ типовой документ"перемещение спецодежды", НЕ типовая обработка "подбор номенклатуры" (стандартный нам не подходит), хочется при открытии этого подбора чтобы из формы документа передавались параметры в форму обработки, если например выбираем подбор из тч спецодежда заполнялось номенклатура "Спецодежда", счет "МЦ.02",физ.лицо "Иванов Иван Иванович"
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
17. Doreng 27 18.10.18 13:45 Сейчас в теме
(16)
&НаКлиенте
Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
Параметры2 = Новый Структура;
    Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
Показать


Видимо у Вас на форме уже есть некие Параметры
user916115; +1 Ответить
22. Doreng 27 19.10.18 10:37 Сейчас в теме
(21)Нельзя искать на клиенте
Можно так
&НаКлиенте
Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры2= Новый Структура;
    Параметры2.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    Параметры2.Вставить("Счет",    ВернутьПланСчетов());
    //ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаСервере
Функция ВернутьПланСчетов()
Возврат ПланыСчетов.Хозрасчетный.НайтиПоКоду("00000000011");
КонецФункции

Показать
user916115; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. motorsoft 3 17.10.18 14:00 Сейчас в теме
У формы подбора создать параметр, при нажатии на кнопку подбор передавать параметры в открываемую форму, при открытии формы обрабатывать переданные параметры...
user916115; +1 Ответить
3. user916115 17.10.18 14:04 Сейчас в теме
(2)параметры уже созданы, на втором скрине видно же, а как передавать то эти параметры
4. Doreng 27 17.10.18 14:18 Сейчас в теме
(3)
Параметры = Новый Структура;
	Параметры.Вставить("Номенклатура",Объект.Номенклатура);
	Параметры.Вставить("Счет",Объект.Счет);
	Параметры.Вставить("ФизЛицо",Объект.ФизЛицо);
	ОткрытьФорму("Документ.ВашДокумент.Форма.ВашаФорма",Параметры,ЭтотОбъект,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Далее ловите эти параметры в событии ПрисозданииНаСервере через Параметры.*
user916115; motorsoft; +2 Ответить
7. user916115 17.10.18 16:36 Сейчас в теме
(4)У меня есть уже вот такие процедуры в модуле формы документа

&НаКлиенте
Процедура ПодборСпецодежда(Команда)
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
	ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	 
КонецПроцедуры


&НаКлиенте
Процедура ПодборСпецоснастка(Команда)
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
	ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

КонецПроцедуры


&НаКлиенте
Процедура ПодборИнвентаря(Команда)
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
	ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры


Показать





а в обработке вот такая процедура:

&НаКлиенте
Процедура НоменклатураДляПодбораВыбор(Элемент, ВыбраннаяСтрока, Поле,СтандартнаяОбработка)
//ЭтаФорма.Закрыть(Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПолучитьЭлементы());
//ЭтаФорма.Закрыть(Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации);

СтруктураВозврата = Новый Структура("Номенклатура,ПартияМатериаловВЭксплуатации,ФизЛицо");

СтруктураВозврата.Номенклатура = Элементы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
СтруктураВозврата.ПартияМатериаловВЭксплуатации = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации;
СтруктураВозврата.ФизЛицо = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ФизЛицо;

НаименованиеНоменклатуры = ПолучитьНаименование(Объект.Номенклатура);

Если НаименованиеНоменклатуры = "Спецодежда" тогда
	НоваяСтрока = ЭтаФорма.ВладелецФормы.объект.Спецодежда.Добавить();
	
	НоваяСтрока.Номенклатура =Элементы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
	НоваяСтрока.ПартияМатериаловВЭксплуатации = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации;
	
ИначеЕсли НаименованиеНоменклатуры = "Спецоснастка" тогда
	НоваяСтрока = ЭтаФорма.ВладелецФормы.объект.Спецоснастка.Добавить();
	
	НоваяСтрока.Номенклатура = Элементы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
	НоваяСтрока.ПартияМатериаловВЭксплуатации = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации;
	                                     
ИначеЕсли НаименованиеНоменклатуры = "Хозинвентарь" тогда
	НоваяСтрока = ЭтаФорма.ВладелецФормы.объект.ИнвентарьИХозяйственныеПринадлежности.Добавить();
	
	НоваяСтрока.Номенклатура =Элементы.НоменклатураДляПодбора.ТекущиеДанные.Номенклатура;
	НоваяСтрока.ПартияМатериаловВЭксплуатации = 	Элементы.НоменклатураДляПодбора.ТекущиеДанные.ПартияМатериаловВЭксплуатации;
	НоваяСтрока.ФизЛицо = Элементы.НоменклатураДляПодбора.ТекущиеДанные.ФизЛицо;
	
КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьНаименование(ВыбНом)
Возврат СокрЛП(ВыбНом.Наименование);
КонецФункции
Показать



я получается из обработки передаю данные в документ , а теперь мне получается нужно из документа передать данные в обработку...
8. motorsoft 3 18.10.18 08:28 Сейчас в теме
(7) Выше написали, Вам надо передать параметры

Параметры.Вставить("Номенклатура",Объект.Номенклатура);
Параметры.Вставить("Счет",Объект.Счет);
Параметры.Вставить("ФизЛицо",Объект.ФизЛицо);
ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
user916115; +1 Ответить
9. user916115 18.10.18 08:35 Сейчас в теме
(8)а что где в какой процедуре? В форме документа???
10. Doreng 27 18.10.18 09:03 Сейчас в теме
(9)В команду
(7)
ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Перед открыть и вставляйте
user916115; +1 Ответить
11. user916115 18.10.18 09:19 Сейчас в теме
(10)вставила, а теперь в модуле формы обработки нужно что-то написать?
12. Doreng 27 18.10.18 09:28 Сейчас в теме
(11)В процедуре ПриСозданииНаСервере Ваши параметры доступны
Параметры.Номенклатура
Параметры.Счет
Параметры.ФизЛицо
Или можете просто написать
ЗаполнитьЗначенияСвойств(Объект,Параметры);
user916115; +1 Ответить
13. user916115 18.10.18 10:34 Сейчас в теме
(12)
Вот я прописала в документе :

&НаКлиенте
Процедура ПодборСпецодежда(Команда)
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
	Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
	ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	 
КонецПроцедуры


А в обработке прописала:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ЗаполнитьЗначенияСвойств(Объект.параметры);
КонецПроцедуры

А он ругает меня , говорит:
{Обработка.ПодборНоменклатуры1.Форма.Форма.Форма(253,2)}: Недостаточно фактических параметров (ЗаполнитьЗначенияСвойств)
	<<?>>ЗаполнитьЗначенияСвойств(Объект.параметры); (Проверка: Толстый клиент (обычное приложение))
14. Doreng 27 18.10.18 11:29 Сейчас в теме
(13)ЗаполнитьЗначенияСвойств(Объект.параметры); Не точка а запятая!!!!!!!!!ЗаполнитьЗначенияСвойств(Объект,параметры); и тут ошибка
ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Должно быть
ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Глобальный контекст (Global context)
ОткрытьФорму (OpenForm)
Вариант синтаксиса: По имени

Синтаксис:

ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)
user916115; +1 Ответить
15. Doreng 27 18.10.18 12:04 Сейчас в теме
(13)Вообщем так лучше сделать
Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЗаполнитьЗначенияСвойств(Объект,Параметры);
КонецПроцедуры
Показать
user916115; +1 Ответить
16. user916115 18.10.18 13:14 Сейчас в теме
(15) ошибка:( я может быть не там прописываю?



&НаКлиенте
Процедура ПодборСпецодежда(Команда)
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
	Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
	ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры


{Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Форма.ФормаДокумента.Форма(1168)}: Метод объекта не обнаружен (Вставить)
	Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
Показать
17. Doreng 27 18.10.18 13:45 Сейчас в теме
(16)
&НаКлиенте
Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
Параметры2 = Новый Структура;
    Параметры.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
Показать


Видимо у Вас на форме уже есть некие Параметры
user916115; +1 Ответить
18. user916115 18.10.18 14:46 Сейчас в теме
(17)спасибо большое, что провозились со мной столько! Уже не первый раз выручаете :)
19. user916115 18.10.18 15:40 Сейчас в теме
(17)извините, а ещё такой вопрос, а чтобы при открытии например команды "ПодборСпецодежды" чтобы счёт автоматически выбрался планыСчетов. Хозрасчетный. НайтиПоКоду("мц. 02")?
20. Doreng 27 18.10.18 17:39 Сейчас в теме
(19)Например
Параметры.Вставить("ПланСчетов", ПланыСчетов. Хозрасчетный.НайтиПоКоду("мц. 02"));
21. user916115 19.10.18 09:33 Сейчас в теме
(20) да, я так и сделала, но у меня вылезла ошибка:(
&НаКлиенте
Процедура ПодборСпецодежда(Команда)
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
	Параметры2= Новый Структура;
	Параметры2.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
	Параметры2.Вставить("Счет",    ПланыСчетов.Хозрасчетный.НайтиПоКоду("00000000011"));
	//ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры


Выдает ошибку:

{Документ.ФурзПеремещениеСпецодеждыСпецоснасткиХозинвентаря.Форма.ФормаДокумента.Форма(1176,33)}: Переменная не определена (ПланыСчетов)
	Параметры2.Вставить("Счет",    <<?>>ПланыСчетов.Хозрасчетный.НайтиПоКоду("00000000011")); (Проверка: Тонкий клиент)
Показать
22. Doreng 27 19.10.18 10:37 Сейчас в теме
(21)Нельзя искать на клиенте
Можно так
&НаКлиенте
Процедура ПодборСпецодежда(Команда)
    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыПодбора", ЭтаФорма,Параметры);
    Параметры2= Новый Структура;
    Параметры2.Вставить("ФизЛицо", Объект.ФизЛицоОтправитель);
    Параметры2.Вставить("Счет",    ВернутьПланСчетов());
    //ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",,ЭтаФорма,Параметры,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
    ОткрытьФорму("Обработка.ПодборНоменклатуры1.Форма",Параметры2,ЭтаФорма,,,,ОповещениеОЗакрытии,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаСервере
Функция ВернутьПланСчетов()
Возврат ПланыСчетов.Хозрасчетный.НайтиПоКоду("00000000011");
КонецФункции

Показать
user916115; +1 Ответить
5. motorsoft 3 17.10.18 14:42 Сейчас в теме
Поля на форме это хорошо, параметры создайте в конфигураторе для формы подбора, а потом, как уже сказали, присозданиинасервере устанавливайте значение реквизитов объекта
Прикрепленные файлы:
user916115; +1 Ответить
6. Doreng 27 17.10.18 14:48 Сейчас в теме
(5)
параметры создайте в конфигураторе

Это не обязательно
user916115; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот