helpf.pro
Регистрация
 0 
Распечатать

Программное создание, заполнение документа и открытие формы (УП, тонкий клиент)

Чтобы программно заполнить документ по кнопке, делаем примерно следующее:

1. на форму, в нашем случае документа, добавляем кнопку (Команда и у нее процедура СоздатьПеремещение(Команда))

2. в ее обработчике пишем код создания документа перемещение товаров и заполняем его

Код 1C v 8.3
 &НаСервере
Функция СоздатьПеремещениеНаСервере(ДанныеФормы)
	ДанныеФормы.Дата=ТекущаяДата();
	// ДанныеФормы.Номер="1";
	ДанныеФормы.СкладОтправитель =  Справочники.Склады.НайтиПоНаименованию("Склад гарантийного обслуживания");
	ДанныеФормы.СкладПолучатель = Справочники.Склады.НайтиПоНаименованию("Склад гарантийных");
	
	новСП=Новый СписокЗначений;	н=0;
	Для Каждого стр из Объект.ДанныеПоГН Цикл 
		Если стр.ДанныеПроверки=Перечисления.СтатусПроверкиГарантии.зн0 тогда //!В документ перемещение только записи статус=зн0
		новСП.Добавить(Строка(стр.НомерЗаводской));  н=н+1;
		КонецЕсли;
	КонецЦикла;
	
	Если н>0 Тогда
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	РеализацияТоваровУслугСерии.Серия КАК Серия,
	|	РеализацияТоваровУслугСерии.Ссылка.Дата КАК ДатаОтгрузки,
	|	РеализацияТоваровУслугСерии.Ссылка.Контрагент КАК Контрагент,
	|	РеализацияТоваровУслугСерии.Ссылка КАК Возврат,
	|	РеализацияТоваровУслугСерии.Номенклатура,
	|	ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугСерии.Серия) КАК СерияСТР
	|ИЗ
	|	Документ.ВозвратТоваровОтКлиента.Серии КАК РеализацияТоваровУслугСерии
	|ГДЕ
	|	РеализацияТоваровУслугСерии.Серия В
	|			(ВЫБРАТЬ
	|				СерииНоменклатуры.Ссылка КАК Ссылка
	|			ИЗ
	|				Справочник.СерииНоменклатуры КАК СерииНоменклатуры
	|			ГДЕ
	|				СерииНоменклатуры.Наименование В (&Наименование))
	|
	|УПОРЯДОЧИТЬ ПО
	|	Серия
	|АВТОУПОРЯДОЧИВАНИЕ"; 	
	Запрос.УстановитьПараметр("Наименование", новСП);	
	ТаблицаЗапроса = Запрос.Выполнить().Выгрузить();	
	Для каждого стр из новСП Цикл
		
			НайденнаяСтрока=ТаблицаЗапроса.Найти(стр.Значение,"СерияСТР");
			Если НайденнаяСтрока = Неопределено Тогда
				//нет такого
			Иначе
				нстр=ДанныеФормы.Товары.Добавить();
				нстр.Номенклатура = НайденнаяСтрока.Номенклатура;
				нстр.Серия=НайденнаяСтрока.Серия; 
				нстр.КоличествоУпаковок=1;
				нстр.Количество=1;
				нстр.СтатусУказанияСерий=2;
				нстр.СтатусУказанияСерийОтправитель=2;
				нстр.СтатусУказанияСерийПолучатель=2;
				
				нстр=ДанныеФормы.Серии.Добавить();
				нстр.Номенклатура = НайденнаяСтрока.Номенклатура;
				нстр.Серия=НайденнаяСтрока.Серия; 
				нстр.Количество=1;    
			КонецЕсли;	
	КонецЦикла;
	КонецЕсли;
	Возврат ДанныеФормы;
КонецФункции


&НаКлиенте
Процедура СоздатьПеремещение(Команда)
	Форма=ПолучитьФорму("Документ.ПеремещениеТоваров.ФормаОбъекта"); 
	ДанныеФормы=Форма.Объект;
	ДанныеФормы=СоздатьПеремещениеНаСервере(ДанныеФормы);
	КопироватьДанныеФормы(ДанныеФормы,Форма.Объект);
	Форма.Открыть();
КонецПроцедуры
   
Разместил:   Версии: | 8.2 УП | 8.3 |  Дата:   Прочитано: 44698
 0 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 53
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей.
Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ;
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!