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

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

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

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

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

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

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

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

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


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

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



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

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

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

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


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

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