Автоматическое создание и запись документов

1. user1008893 06.03.19 09:55 Сейчас в теме +2 $m
Сейчас работает,по нажатию на заказы выходит документи он записывается. а надо что бы была кнопочка по нажатию на которую,документы создаются автоматически,но если заказов нет,то создание документа не должно происходить.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
	|	ЗаказПокупателя.Контрагент КАК Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения КАК ДатаИсполнения,
	|	СУММА(ЗаказПокупателяТЧ.Номенклатура.Вес * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Вес,
	|	СУММА(ЗаказПокупателяТЧ.Номенклатура.Объем * ЗаказПокупателяТЧ.Кол * ЗаказПокупателяТЧ.ЕдИзм.Коэффициент) КАК Объем,
	|	СУММА(ЗаказПокупателяТЧ.Сумма) КАК Сумма
	|{ВЫБРАТЬ
	|	ЗаказПокупателя.*,
	|	Контрагент.*}
	|ИЗ
	|	Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыОбеспеченияЗаказов КАК СтатусыОбеспеченияЗаказов
	|		ПО (СтатусыОбеспеченияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыВыполненияЗаказов КАК СтатусыВыполненияЗаказов
	|		ПО (СтатусыВыполненияЗаказов.Заказ = ЗаказПокупателя.Ссылка)
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ТЧ КАК ЗаказПокупателяТЧ
	|		ПО ЗаказПокупателя.ТЧ.Ссылка = ЗаказПокупателяТЧ.Ссылка
	|ГДЕ
	|	ЗаказПокупателя.Проведен = ИСТИНА
	//|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Оформлен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Выполнен""
	|	И СтатусыВыполненияЗаказов.Статус.Наименование <> ""Не оформлен""
	|	И СтатусыОбеспеченияЗаказов.Статус.Наименование <> ""Не обеспечен""
	|	И ЗаказПокупателя.ДатаИсполнения <= &СчетчикМесяца
	|	И ЗаказПокупателя.Контрагент = &Контрагент
	|	И НЕ ЗаказПокупателя.ПометкаУдаления
	|	И НЕ ЗаказПокупателя.Ссылка В
	|				(ВЫБРАТЬ
	|					ПС_ЗаказыДляОтгрузкиЗаказы.Заказ
	|				ИЗ
	|					Документ.ПС_ЗаказыДляОтгрузки.Заказы КАК ПС_ЗаказыДляОтгрузкиЗаказы
	|						ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
	|						ПО
	|							ПС_ЗаказыДляОтгрузкиЗаказы.Ссылка = ПС_ЗаказыДляОтгрузки.Ссылка
	|				ГДЕ
	|					НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления)
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателя.Ссылка,
	|	ЗаказПокупателя.Контрагент,
	|	ЗаказПокупателя.ДатаИсполнения
	|АВТОУПОРЯДОЧИВАНИЕ";
	Запрос.УстановитьПараметр("СчетчикМесяца",День);
	Запрос.УстановитьПараметр("ДатаИсполнения",ДатаИсполнения);
	Запрос.УстановитьПараметр("Контрагент",Контрагент);
	ЭлементыОтбора=Новый Структура;
	_ТаблЗаказы = Запрос.Выполнить().Выгрузить();
	
	ДокумОтгрузок=Документы.ПС_ЗаказыДляОтгрузки;
	
	 
	ЗапросДокум = Новый Запрос;
    ЗапросДокум.Текст = "ВЫБРАТЬ
                        |	ПС_ЗаказыДляОтгрузки.Ссылка
                        |ИЗ
                        |	Документ.ПС_ЗаказыДляОтгрузки КАК ПС_ЗаказыДляОтгрузки
                        |ГДЕ
                        |	ПС_ЗаказыДляОтгрузки.ДеньОтгрузки = &День
                        |	И ПС_ЗаказыДляОтгрузки.Контрагент = &Контрагент
                        |	И НЕ ПС_ЗаказыДляОтгрузки.ПометкаУдаления";
	ЗапросДокум.УстановитьПараметр("День",День);
	ЗапросДокум.УстановитьПараметр("Контрагент",Контрагент);
	 РезультатЗапроса = ЗапросДокум.Выполнить();	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
Если ВыборкаДетальныеЗаписи.Количество()>0 Тогда
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	Док=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();	
	Форма = Док.ПолучитьФорму("ФормаДокумента",Док);	
	Форма.Открыть();	
	КонецЦикла;	 
Иначе
	 
НовДок=Документы.ПС_ЗаказыДляОтгрузки.ПолучитьФормуНовогоДокумента();
НовДок.Дата=ТекущаяДата();
НовДок.ДеньОтгрузки=День;
НовДок.Контрагент=Контрагент;
	Для Каждого СтрокаТаблЗаказы Из _ТаблЗаказы Цикл
		СтрокаТЧ =НовДок.Заказы.Добавить();
		СтрокаТЧ.Заказ  = СтрокаТаблЗаказы.ЗаказПокупателя;
		СтрокаТЧ.Вес=СтрокаТаблЗаказы.Вес;	
		СтрокаТЧ.Объем=СтрокаТаблЗаказы.Объем;
		СтрокаТЧ.Сумма=СтрокаТаблЗаказы.Сумма;	
	КонецЦикла;
	НовДок.Открыть();
	//НовДок.Записать();
	
	КонецЕсли;
Отказ=Истина;
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SedovSU@mail.ru 298 06.03.19 10:49 Сейчас в теме
То есть сейчас, вы нажимаете в отчете на поле "Заказ" и вас что там происходит, а нужно это сделать на отдельную кнопочку? Вот у вас код описан, он происходит когда вы нажимаете на поле заказы или перед открытием?
3. user1008893 06.03.19 10:52 Сейчас в теме
4. SedovSU@mail.ru 298 06.03.19 10:58 Сейчас в теме
(3) У вас в процедуре написано название ее ПередОткрытием, а вот если вы нажимаете на поле в отчете то срабатывает процедура ОбработкаРасшифровки. Так вот сама процедура ПередОткрытием - она где ? в отчете? или в документе заказ??
5. user1008893 06.03.19 11:01 Сейчас в теме
(4)у меня в обработке есть 3 формы: Форма, РасшифровкаПотребностей и Печать. Это прописано в модуле формы РасшифровкаПотребностей.
6. user1008893 06.03.19 11:18 Сейчас в теме
7. user1008893 06.03.19 12:50 Сейчас в теме
Можно ли как то сделать? Может как то автоматически проходило по всем строкам таб дока?
8. Release 07.03.19 14:32 Сейчас в теме
Оставьте свое сообщение

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