Доп.обработка заполнения ТЧ документа

1. JustaUser 12.12.19 16:35 Сейчас в теме
Для заполнения ТЧ нужно запросом выбрать данные из... не суть откуда. Требуется передать в запрос параметры - ДатаНачала и ДатаОкончания - значения реквизита обработки, тип СтандартныйПериод.

Получается, после вызова команды перед выполнением запроса должна открыться форма для выбора периода. Как это сделать?

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

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

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

КонецПроцедуры /
Показать
По теме из базы знаний
Найденные решения
21. independ 1520 12.12.19 17:38 Сейчас в теме
Нужно в модуле объекта внешней обработки указать использование=ОткрытиеФормы

Функция СведенияОВнешнейОбработке() Экспорт
	
	РегистрационныеДанные = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0.0.0");
	РегистрационныеДанные.Назначение.Добавить("Документ.НекийДокумент");
	РегистрационныеДанные.Версия = "1.0";
	РегистрационныеДанные.Вид = "ЗаполнениеОбъекта";
	
	НовКоманда = РегистрационныеДанные.Команды.Добавить();
	НовКоманда.Использование = "ОткрытиеФормы";                  
	НовКоманда.Идентификатор = "ЗаполнитьЧтото";
	НовКоманда.Представление = 	НовКоманда.Идентификатор;
	
	Возврат РегистрационныеДанные;

КонецФункции
Показать


Далее делаете свою форму, добавляете реквизит СсылкаНаОбъект с типом нужного вам документа/справочника, получаете ссылку

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Если ВладелецФормы<>Неопределено Тогда
		СсылкаНаОбъект=ВладелецФормы.Объект.Ссылка;
	КонецЕсли;
КонецПроцедуры


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

&НаКлиенте
Процедура ЗаполнитьНаКлиенте(Команда)
	ЗаполнитьНаСервере();
	Если ВладелецФормы<>Неопределено Тогда
		ВладелецФормы.Прочитать();
	КонецЕсли;
	ПоказатьОповещениеПользователя("Готово");
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьНаСервере()
	Док=СсылкаНаОбъект.ПолучитьОбъект();
	Для каждого стр из СсылкаНаОбъект.Товары Цикл

	КонецЦикла;
	Док.Записать();
КонецПроцедуры

Показать
mdzen; acanta; micha26; +3 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 12.12.19 16:39 Сейчас в теме
асинхронно задать вопрос в ВыполнитьКоманду()

в обработчке оповещения после ответа на вопрос вызывать

ЗаполнитьТЧНаСервере(ВладелецФормы.Объект.Сотрудники, стнПериод)
3. JustaUser 12.12.19 16:50 Сейчас в теме
(2)
асинхронно задать вопрос в ВыполнитьКоманду()

Не очень понимаю, ибо я не программист..
4. FetisovAN 12.12.19 16:51 Сейчас в теме
(3) если вы не программист, закрывайте конфигуратор и звоните во франч какой-нить
5. JustaUser 12.12.19 16:53 Сейчас в теме
(4) А вариант "научиться" не стоит рассматривать?
6. micha26 12.12.19 16:54 Сейчас в теме
(5)Да конечно стоит.
FetisovAN - чего так сурово-то.
7. FetisovAN 12.12.19 16:55 Сейчас в теме
(6) ну ок, тогда не пишите "как сделать", пишите сразу готовый результат.
9. micha26 12.12.19 17:00 Сейчас в теме
(7)Да ладно вам...
Как VmvLer намекнул - вызвать режим диалога
8. JustaUser 12.12.19 16:57 Сейчас в теме
Спасибо за поддержку!
10. micha26 12.12.19 17:00 Сейчас в теме
(8)Я подобную хрень делал, может найду.
11. VmvLer 12.12.19 17:12 Сейчас в теме
(8) когда хотят научиться, то начинают читать "букварь" и затем начинают понимать, что пишут другие.
когда не хотят учиться то, то прибегают к манипуляциям "памагите, я не ел(ела) 5 дней и т.п."
13. micha26 12.12.19 17:15 Сейчас в теме
(11)Букварь это ЖК? Они так себе. Если Радченко под рукой есть тогда неплохо конечно почитать.
16. JustaUser 12.12.19 17:24 Сейчас в теме
(11)
(8) когда хотят научиться, то начинают читать "букварь" и затем начинают понимать, что пишут другие.
когда не хотят учиться то, то прибегают к манипуляциям "памагите, я не ел(ела) 5 дней и т.п."


Спасибо за проявленный интерес. Походу, вы из того самого франча и делать вам нечего, но вы меня не дождетесь.
17. VmvLer 12.12.19 17:30 Сейчас в теме
(16)
Прикрепленные файлы:
acanta; JustaUser; +2 Ответить
19. FetisovAN 12.12.19 17:35 Сейчас в теме
(17) щя найду фото в шапочке
20. micha26 12.12.19 17:38 Сейчас в теме
22. FetisovAN 12.12.19 17:58 Сейчас в теме
(20) блин еле достучался до "одного франча", чтоб фотку прислали :)
Прикрепленные файлы:
18. micha26 12.12.19 17:32 Сейчас в теме
(16)А вам франчи названивают что-ли? Лучше самостоятельно освойте, мне так пришлось делать, а то там все умные и гении, что писец...только толку никакого.
JustaUser; +1 Ответить
23. JustaUser 12.12.19 18:26 Сейчас в теме
(18) Не, меня ФетисовАН во франч послал (4)
24. FetisovAN 12.12.19 20:20 Сейчас в теме
(23) ну прям "послал", скорее порекомендовал обратиться :)
12. micha26 12.12.19 17:15 Сейчас в теме
Не нашел, ладно.
Форма с двумя реквизитами Начало и Конец (дата понятное дело), открываем форму и забиваем
реквизиты.
Процедура СформироватьПродажи(Команда)	      
НачалоПериода = ЭтотОбъект.НачалоПериода;
КонецПериода = ЭтотОбъект.КонецПериода;
Передаешь ее на сервер у себя.- чего там дальше делать надо.
Процедура ЗаполнитьТЧНаСервере(НачалоПериода ,КонецПериода)

Это если я правильно задачу понял.
14. VmvLer 12.12.19 17:19 Сейчас в теме
(12) не правильно, думаю вас можно садить за одну парту и вместе читать сказку "Варежка"
я помню это первое, что я читал когда впервые мне надели штаники.
15. micha26 12.12.19 17:23 Сейчас в теме
(14)Ну да, ну да - "гуру" вы наш, не с мисты случаем? Уж я как-нибудь без ваших советов точно обойдусь. А вместо нравоучений явно тс не нужных помогли бы лучше человеку. Если не хотите так зачем пишите?
21. independ 1520 12.12.19 17:38 Сейчас в теме
Нужно в модуле объекта внешней обработки указать использование=ОткрытиеФормы

Функция СведенияОВнешнейОбработке() Экспорт
	
	РегистрационныеДанные = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0.0.0");
	РегистрационныеДанные.Назначение.Добавить("Документ.НекийДокумент");
	РегистрационныеДанные.Версия = "1.0";
	РегистрационныеДанные.Вид = "ЗаполнениеОбъекта";
	
	НовКоманда = РегистрационныеДанные.Команды.Добавить();
	НовКоманда.Использование = "ОткрытиеФормы";                  
	НовКоманда.Идентификатор = "ЗаполнитьЧтото";
	НовКоманда.Представление = 	НовКоманда.Идентификатор;
	
	Возврат РегистрационныеДанные;

КонецФункции
Показать


Далее делаете свою форму, добавляете реквизит СсылкаНаОбъект с типом нужного вам документа/справочника, получаете ссылку

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Если ВладелецФормы<>Неопределено Тогда
		СсылкаНаОбъект=ВладелецФормы.Объект.Ссылка;
	КонецЕсли;
КонецПроцедуры


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

&НаКлиенте
Процедура ЗаполнитьНаКлиенте(Команда)
	ЗаполнитьНаСервере();
	Если ВладелецФормы<>Неопределено Тогда
		ВладелецФормы.Прочитать();
	КонецЕсли;
	ПоказатьОповещениеПользователя("Готово");
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьНаСервере()
	Док=СсылкаНаОбъект.ПолучитьОбъект();
	Для каждого стр из СсылкаНаОбъект.Товары Цикл

	КонецЦикла;
	Док.Записать();
КонецПроцедуры

Показать
mdzen; acanta; micha26; +3 Ответить
25. пользователь 14.12.19 13:34
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

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