Из "Модуля управляемого приложения" обратиться к команде документа

1. BARDER 37 09.10.17 11:29 Сейчас в теме
Доброе время суток.
Появилась у меня задача при запуске клиента формировать документ с заполнением из реестра, это все я сделал, но теперь нужно обратиться из Модуля управляемого приложения к Команде этого документа.

Если ДеньНедели(ТекущаяДата()) = 1 Тогда	
	ТипСкупленныхЦенностей = ВнешниеСоединения.ПолучитьДанные(); // получаем данные из реесра
	
	Если ТипСкупленныхЦенностей.Количество() > 0 Тогда
		Для каждого ТипЦенности Из ТипСкупленныхЦенностей Цикл
			
	ОбщиеДанныеСервер.ФормируемДокументПередачиСкупленныхЦенностей(ТипЦенности); // Создаем и заполняем документ.
			
		КонецЦикла; 
		
	КонецЕсли; 
	
КонецЕсли;


Показать

Нужно теперь обратиться к команде Документа
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BARDER 37 09.10.17 11:30 Сейчас в теме
Условие формируется в процедуре ПриНачалеРаботыСистемы()
3. alex-l19041 8 09.10.17 11:51 Сейчас в теме
(2) трудно скопировать кусок кода ?...
4. sahn 09.10.17 12:01 Сейчас в теме
Опиши команду в модуле менеджера, потом Документы. <Имя Документа>. <Команда>
Anchoret; +1 Ответить
6. BARDER 37 09.10.17 12:16 Сейчас в теме
(4) а как мне передать документ для печати? вернуть из Модуля приложения не получается.
5. BARDER 37 09.10.17 12:02 Сейчас в теме
В модуле управляемого приложения:
Процедура ПриНачалеРаботыСистемы()
Если ДеньНедели(ТекущаяДата()) = 1 Тогда
ТипСкупленныхЦенностей = ВнешниеСоединения.ПолучитьДанные();

Если ТипСкупленныхЦенностей.Количество() > 0 Тогда
Для каждого ТипЦенности Из ТипСкупленныхЦенностей Цикл

ОбщиеДанныеСервер.ФормируемДокументПередачиСкупленныхЦенностей(ТипЦенности);

КонецЦикла;

КонецЕсли;

КонецЕсли;


КонецПроцедуры
Показать


В общем модуле (ОбщиеДанныеСервер):
Функция ФормируемДокументПередачиСкупленныхЦенностей(ТипЦенности)  Экспорт
    //Создаем перемещение Скупленных ценностей в офис Металл
	Документ = Документы.ПередачаСкупленныхЦенностейВЦО.СоздатьДокумент();
	Документ.Организация = Константы.ОрганизацияПоУмолчаниюДляСкупки.Получить();
	Документ.Филиал = Константы.ПодразделениеПоУмолчанию.Получить();
	Документ.Дата =ТекущаяДата();
	Документ.ТипЦенностей = ТипЦенности;
	ЗаполнитьФорму(Документ);
	Возврат Документ;
КонецФункции

Процедура ЗаполнитьФорму(Документ)
	ДанныеВДокументе = Ложь;
	День = 60*60*24;	
	
	Если Документ.ТипЦенностей = 2 Тогда
		ТипСкупаемойЦенности = 2;
	ИначеЕсли Документ.ТипЦенностей = 1 Тогда
		ТипСкупаемойЦенности = 1;
	
	КонецЕсли;

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	СкупленныеЦенности.Регистратор,
		|	СкупленныеЦенности.НомерСтроки,
		|	СкупленныеЦенности.Активность,
		|	СкупленныеЦенности.СкупочнаяКвитанция,
		|	СкупленныеЦенности.ДатаСкупки,
		|	СкупленныеЦенности.Номенклатура,
		|	СкупленныеЦенности.Количество,
		|	СкупленныеЦенности.Сумма,
		|	СкупленныеЦенности.Номенклатура.ОбщийВес КАК НоменклатураВесОбщий,
		|	СкупленныеЦенности.Номенклатура.ЧистыйВес КАК НоменклатураВесЧистый,
		|	СкупленныеЦенности.Номенклатура.Проба КАК Проба,
		|	СкупленныеЦенности.Номенклатура.СерийныйНомер,
		|	СкупленныеЦенности.Номенклатура.Артикул,
		|	СкупленныеЦенности.ТипСкупаемойЦенности,
		|	СкупленныеЦенности.Металл КАК Металл
		|ИЗ
		|	РегистрСведений.СкупленныеЦенности КАК СкупленныеЦенности
		|ГДЕ
		|	СкупленныеЦенности.ДатаСкупки МЕЖДУ &ДатаНач И &ДатаКон
		|	И СкупленныеЦенности.ТипСкупаемойЦенности = &ТипСкупаемойЦенности
		|
		|УПОРЯДОЧИТЬ ПО
		|	СкупленныеЦенности.СкупочнаяКвитанция.Номер";
	
	Запрос.УстановитьПараметр("ДатаКон", КонецДня(ТекущаяДата()-День));
	Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ТекущаяДата()-(7*День)));
	Запрос.УстановитьПараметр("ТипСкупаемойЦенности", ТипСкупаемойЦенности);
	
	РезультатЗапроса = Запрос.Выполнить();	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
		ТекущиеДанные  						= Документ.СписокЦенностей.Добавить();	
	    ТекущиеДанные.СкупочнаяКвитанция	= ВыборкаДетальныеЗаписи.СкупочнаяКвитанция;
	    ТекущиеДанные.ДатаСкупки			= ВыборкаДетальныеЗаписи.ДатаСкупки;
	    ТекущиеДанные.Количество			= ВыборкаДетальныеЗаписи.Количество;
	    ТекущиеДанные.Сумма      			= ВыборкаДетальныеЗаписи.Сумма;
	    ТекущиеДанные.Цена       			= ВыборкаДетальныеЗаписи.Сумма / ВыборкаДетальныеЗаписи.Количество;
	    ТекущиеДанные.Номенклатура  		= ВыборкаДетальныеЗаписи.Номенклатура;
	    ТекущиеДанные.Проба  				= ВыборкаДетальныеЗаписи.Проба;
	    ТекущиеДанные.ВесЧистый  			= ВыборкаДетальныеЗаписи.НоменклатураВесЧистый;
	    ТекущиеДанные.ВесОбщий   			= ВыборкаДетальныеЗаписи.НоменклатураВесОбщий;
	    ТекущиеДанные.СерийныйНомер  		= ВыборкаДетальныеЗаписи.НоменклатураСерийныйНомер;
	    ТекущиеДанные.Артикул   			= ВыборкаДетальныеЗаписи.НоменклатураАртикул;
		ТекущиеДанные.Металл	   			= ВыборкаДетальныеЗаписи.Металл;
		ДанныеВДокументе = Истина;
	КонецЦикла;
	Если ДанныеВДокументе Тогда
	
		 Документ.Записать(РежимЗаписиДокумента.Проведение);
	     
	КонецЕсли; 
КонецПроцедуры
Показать


В общем модуле(ВнешниеСоединения):
Функция ПолучитьДанные() Экспорт 

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	СкупленныеЦенности.ДатаСкупки,
		|	СкупленныеЦенности.ТипСкупаемойЦенности
		|ИЗ
		|	РегистрСведений.СкупленныеЦенности КАК СкупленныеЦенности
		|ГДЕ
		|	СкупленныеЦенности.ДатаСкупки МЕЖДУ &НачалоПрошлойНедели И &КонецПрошлойНедели";
	
	Запрос.УстановитьПараметр("КонецПрошлойНедели", КонецНедели(НачалоДня(ТекущаяДата())-1));
	Запрос.УстановитьПараметр("НачалоПрошлойНедели", НачалоНедели(НачалоДня(ТекущаяДата())-1));
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	ТипСкупленныхЦенностей = Новый Массив;
	Тип = Неопределено;
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		НовыйТип = ВыборкаДетальныеЗаписи.ТипСкупаемойЦенности;
		Если НовыйТип <> Тип Тогда
		
			ТипСкупленныхЦенностей.Добавить(ВыборкаДетальныеЗаписи.ТипСкупаемойЦенности);
		
		КонецЕсли; 
		ДанныеСуществуют = Истина;
		Тип = НовыйТип;
	КонецЦикла;
Возврат ТипСкупленныхЦенностей;
КонецФункции
Показать

В прикрепленном файле команды: Товарная накладная и Реестр, нужно обратиться к ним.

Спасибо.
Прикрепленные файлы:
7. BARDER 37 09.10.17 12:59 Сейчас в теме
8. Абушев 135 09.10.17 13:07 Сейчас в теме
А что за конфигурация?
10. BARDER 37 09.10.17 15:14 Сейчас в теме
9. antonio_i 80 09.10.17 15:03 Сейчас в теме
К команде нельзя ведь.
Если нужно печатать документы, то в том цикле, где они формируются - получать Табличные документы и выводить их на экран.
Можно даже универсальными механизмами, если есть БСП. (УниверсальныеМеханизмы.НапечататьДокумент(...))
11. BARDER 37 09.10.17 15:15 Сейчас в теме
(9) Конфа самописная, нет механизмов таких
12. antonio_i 80 09.10.17 15:18 Сейчас в теме
(11)ТабДок.Показать() точно есть :)
13. BARDER 37 09.10.17 15:29 Сейчас в теме
(12) он только на клиенте работает, а формируется у меня на сервере
14. antonio_i 80 09.10.17 17:34 Сейчас в теме
15. BARDER 37 09.10.17 17:37 Сейчас в теме
(14) у меня в модуле управляемого приложения все выполняется, там только клиентские вызовы, сервер не прописывается...
16. BARDER 37 09.10.17 17:39 Сейчас в теме
Добавил после цикла:
ТабДок = Новый ТабличныйДокумент;
		ОбщиеДанныеСервер.ТоварнаяНакладная(ТабДок);
		ТабДок.АвтоМасштаб = Истина;
		ТабДок.ОтображатьСетку = Ложь;
		ТабДок.Защита = Ложь;
		ТабДок.ТолькоПросмотр = Ложь;
		ТабДок.КоличествоЭкземпляров = 3;
		ТабДок.ОтображатьЗаголовки = Ложь;
		ТабДок.Напечатать();
		
		ТабДок = Новый ТабличныйДокумент;
		ОбщиеДанныеСервер.Реестр(ТабДок);
		ТабДок.АвтоМасштаб = Истина;
		ТабДок.ОтображатьСетку = Ложь;
		ТабДок.Защита = Ложь;
		ТабДок.ТолькоПросмотр = Ложь;
		ТабДок.ОтображатьЗаголовки = Ложь;
		ТабДок.КоличествоЭкземпляров = 1;
		ТабДок.Напечатать();
Показать

и 2 процедуры в общем серврном модуле, в котором переберает документы с датой сегодняшней и печатает...
Оставьте свое сообщение

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