Задать вопрос
@SteepNET

Вызвать процедуру в форме перечисления из модуля формы документа?

Добрый день! УТ 11.4
Возможно ли вызвать процедуру &НаКлиенте Процедура Заполнить(Команда) с определенными параметрами из модуля формы документа ПриЗаписи() ?

Располагается это все в форме Заказа клиента, по кнопке "Обеспечение" - "Заполнить обеспечение" выводиться форма "Перечисление.Форма.ИсполнениеЗаказа и в ней процедура Заполнить()
Хочу автоматизировать этот процесс и без открытия всяких форм сразу вызывать эту процедуру..
Это реально?

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


Форма.Перечисления.ВариантыОбеспечения
&НаКлиенте
Процедура Заполнить(Команда)
	
	ПереченьВариантов = Новый Массив();
	Если Отгрузить Тогда
		
		Если Параметры.СписокВыбора = Неопределено
			Или Параметры.СписокВыбора.НайтиПоЗначению(
				ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить")) <> Неопределено Тогда
			
			ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить"));
			
		КонецЕсли;
		
		Если Параметры.СписокВыбора = Неопределено
			Или Параметры.СписокВыбора.НайтиПоЗначению(
				ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ОтгрузитьОбособленно")) <> Неопределено Тогда
			
			ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ОтгрузитьОбособленно"));
			
		КонецЕсли;
		
	КонецЕсли;
	
	Если Резервировать Тогда
		ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.СоСклада"));
	КонецЕсли;
	
	Если РезервироватьКСроку Тогда
		ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ИзЗаказов"));
	КонецЕсли;
	
	Если Обособленно Тогда
		ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Обособленно"));
	КонецЕсли;
	
	Если Требуется Тогда
		ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Требуется"));
	КонецЕсли;
	
	Если НеТребуется Тогда
		ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.НеТребуется"));
	КонецЕсли;
	
	Результат = Новый Структура("ПереченьВариантов, ЗаполнятьЦелымиУпаковками");
	Результат.ПереченьВариантов = ПереченьВариантов;
	Результат.ЗаполнятьЦелымиУпаковками = ЗаполнятьЦелымиУпаковками;
	
	Если Параметры.ПроверятьЗаполнение И ПереченьВариантов.Количество() = 0 Тогда		
		Текст = НСтр("ru = 'Для заполнения необходимо установить хотя бы одну отметку'");
		ПоказатьПредупреждение(, Текст);		
	Иначе		
		ОповеститьОВыборе(Результат);		
	КонецЕсли;
КонецПроцедуры
  • Вопрос задан
  • 452 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@SteepNET Автор вопроса
В общем в вопросе намудрил что то=\
Сделал проще ПередЗаписью в модуле формы вызвал процедуру ЗаполнитьОбеспечениеВУстановленномПорядке(ВыбранноеЗначение);
В ВыбранноеЗначение записал нужные мне значения массива.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dementor
программист, архитектор, аналитик
Написано очень сумбурно: 1) В первом абзаце говорите, что хотите програмно заполнять форму перечисления из формы документа; 2) Но уже во втором абзаце пишите, что совсем не хотите открывать форму перечисления.

Базовые вещи, которые должны помочь помочь:

1) Если вы хотите извне некоторого объекта (не важно форма, модуль, обработка, константа и т.д.) вызывать существующую в его модуле процедуру/функцию, то у нее нужно установить признак экспортной.

2) Если есть процедуры в формах, а вы не хотите открывать формы, то нужно их переносить в модули объектов или в общие модули - всё, форма больше не нужна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы