Внешняя обработка ВызовСерверногоМетода

1. Vhett 20.04.21 17:49 Сейчас в теме
Здравствуйте товарищи.

Пытаюсь в обработке создать программно документ, обработка выполняется, но документы не создаются. Однако через ТипКомандыОткрытиеФормы отлично всё работает.

Можете посмотреть где накосячил:
Функция СведенияОВнешнейОбработке() Экспорт
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "1.0";
	ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = НСтр("ru = 'Загрузка поступления на расчётный счёт'");
	Команда.Идентификатор = "Загрузить"; 
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	//Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	Команда.ПоказыватьОповещение = Истина;
	Возврат ПараметрыРегистрации; 
КонецФункции

Процедура ВыполнитьКоманду(Загрузить) Экспорт
	НачалоПериода = Дата(2020,10,08); 
	КонецПериода = Дата(2020,10,08);	
	
	СоздатьДокументПоступлениеНаРасчетныйСчет(НачалоПериода, КонецПериода);
		
КонецПроцедуры;

Процедура СоздатьДокументПоступлениеНаРасчетныйСчет(НачалоПериода, КонецПериода) Экспорт 	 
	 
	ТаблицаОсновная = HEAD.Выгрузить(, "Oplata");
	Для Каждого Стр Из ТаблицаОсновная Цикл
	Сумма = Стр.Oplata;
	
			НовыйДокументПоступление = Документы.ПоступлениеНаРасчетныйСчет.СоздатьДокумент();
			//НовыйДокументПоступление.Дата = Формат(Дата("23:59:59"), "ДФ=ЧЧммсс");
			НовыйДокументПоступление.Номер.УстановитьНовыйНомер();
			НовыйДокументПоступление.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПоступленияОтПродажПоПлатежнымКартамИБанковскимКредитам;
			НовыйДокументПоступление.Контрагент = Справочники.Контрагенты.НайтиПоКоду("Ф00002792");
			НовыйДокументПоступление.СуммаДокумента = Сумма;
			НовыйДокументПоступление.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643");
			НовыйДокументПоступление.СчетБанк = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51");;	
			НовыйДокументПоступление.Комментарий = "Из сайта" + НачалоПериода + " " + КонецПериода;
			НовыйДокументПоступление.Ответственный = Справочники.Пользователи.НайтиПоНаименованию("1C_Exchange");
				//Заполняем табличную часть Расшифровка платежа
				Расшифровка = НовыйДокументПоступление.РасшифровкаПлатежа.Добавить();
				Расшифровка.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00020309"); //Эквайринг
				Расшифровка.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000039"); //Пласт карты
				Расшифровка.СуммаПлатежа = Сумма;
				Расшифровка.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.03");
				Расшифровка.СуммаУслуг = Сумма * 0.015;
				// Заполняем вкладку Учет услуг банка
				НовыйДокументПоступление.СуммаУслуг = Сумма * 0.015;
				НовыйДокументПоступление.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("91.02");
				НовыйДокументПоступление.СубконтоКт1 = Справочники.ПрочиеДоходыИРасходы.НайтиПоНаименованию("Комиссия по оплате П/К");	
				НовыйДокументПоступление.ПодразделениеКт = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00200000");
			//Конец заполнения документа
			Попытка
				НовыйДокументПоступление.Записать(РежимЗаписиДокумента.Запись);
			Исключение
				Сообщить(ОписаниеОшибки());
			КонецПопытки;
		КонецЦикла;	
КонецПроцедуры


Показать
По теме из базы знаний
Найденные решения
7. nomad_irk 76 20.04.21 20:08 Сейчас в теме
(6) Судя по этому коду:

&НаСервере
Процедура ВыполнитьКомандуНаСервере() Экспорт
    НачалоПериода = Дата(2020,10,08); 
    КонецПериода = Дата(2020,10,08);
    ПолучитьВнешниеДанные(НачалоПериода, КонецПериода);  
    СоздатьДокументПоступлениеНаРасчетныйСчет(НачалоПериода, КонецПериода);       
КонецПроцедуры;


Таблица HEAD - это реквизит формы?
8. SlavaKron 20.04.21 20:47 Сейчас в теме
Экспортная процедура ВыполнитьКоманду модуля внешней обработки должна иметь 2 параметра: ИдентификаторКоманды и ПараметрыКоманды.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 20.04.21 17:56 Сейчас в теме
(1)мы должны ментально прочитать содержимое процедуры

СоздатьДокументПоступлениеНаРасчетныйСчет(НачалоПериода, КонецПериода)

?
3. Vhett 20.04.21 18:06 Сейчас в теме
(2) отредактировал заглавное сообщение своё. Но эта процедура нормально работает.
4. Vhett 20.04.21 18:21 Сейчас в теме
HEAD - таблица с единственной колонкой Oplata
5. spacecraft 20.04.21 18:42 Сейчас в теме
(4) и где она находится и как заполняется? Внешняя обработка не хранит никакие данные в реквизитах.
Что ожидаете от этого кода ?
ТаблицаОсновная = HEAD.Выгрузить(, "Oplata");
6. Vhett 20.04.21 19:34 Сейчас в теме
(5) Таблица находится в обработке. Заполняется с помощью COMОбъект, подключаясь к внешней базе.

Повторюсь. Всё работает через:

&НаСервере
Процедура ВыполнитьКомандуНаСервере() Экспорт
    НачалоПериода = Дата(2020,10,08); 
    КонецПериода = Дата(2020,10,08);
    ПолучитьВнешниеДанные(НачалоПериода, КонецПериода);  
    СоздатьДокументПоступлениеНаРасчетныйСчет(НачалоПериода, КонецПериода);       
КонецПроцедуры;

&НаКлиенте
Процедура ВыполнитьКоманду(Загрузить)
   ВыполнитьКомандуНаСервере();
КонецПроцедуры
Показать


Забыл дописать, в заглавном сообщении ещё один вызов процедуры:

 
Процедура ВыполнитьКоманду(Загрузить) Экспорт
    НачалоПериода = Дата(2020,10,08); 
    КонецПериода = Дата(2020,10,08);    
   
    ПолучитьВнешниеДанные(НачалоПериода, КонецПериода);
    СоздатьДокументПоступлениеНаРасчетныйСчет(НачалоПериода, КонецПериода);
        
КонецПроцедуры;
  
Показать
7. nomad_irk 76 20.04.21 20:08 Сейчас в теме
(6) Судя по этому коду:

&НаСервере
Процедура ВыполнитьКомандуНаСервере() Экспорт
    НачалоПериода = Дата(2020,10,08); 
    КонецПериода = Дата(2020,10,08);
    ПолучитьВнешниеДанные(НачалоПериода, КонецПериода);  
    СоздатьДокументПоступлениеНаРасчетныйСчет(НачалоПериода, КонецПериода);       
КонецПроцедуры;


Таблица HEAD - это реквизит формы?
8. SlavaKron 20.04.21 20:47 Сейчас в теме
Экспортная процедура ВыполнитьКоманду модуля внешней обработки должна иметь 2 параметра: ИдентификаторКоманды и ПараметрыКоманды.
Оставьте свое сообщение

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