Заполнить обработкой документ БП "Операции введенные вручную

1. sajmon45 17.02.21 14:52 Сейчас в теме
Как внешней обработкой заполнить документ БП "Операции введенные вручную"?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AnryMc 849 17.02.21 15:05 Сейчас в теме
Пример (кусок) рабочего кода создания на основания документа ("ДокИст") создается документ "ОперацияБух" и в нем формируются проводки:
	//ДокИст - документ источник
	
	//Создадим ОПЕРАЦИЮ (Документ)
	Оп = Документы.ОперацияБух.СоздатьДокумент();
	
	Оп.Дата = ДокИст.Дата;
	Оп.Комментарий = "";
	//ДанныеЗаполнения = НОВЫЙ СписокЗначений;
	//ДанныеЗаполнения.Добавить("Ответственный");
	//ЗаполнениеДокументов.Заполнить(Оп,ДанныеЗаполнения);
	Оп.Организация = ДокИст.Организация;
	
	//Запишем документ операции
	Оп.Записать();
	
	//Ссылка на наш документ операции
	ОпСсылка = Оп.Ссылка;
	
	//Создадим набор записей для проводок по созданному документу
	РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
	РегХозрасчетный.Отбор.Регистратор.Значение = ОпСсылка;
	
	//Новая проводка
	нп = РегХозрасчетный.Добавить();
	
	нп.ВалютаДт = ДокИст.Валюта;
	
	нп.СчетКт = ПланыСчетов.Хозрасчетный.ХХХХХ;  
	нп.СчетДт = ПланыСчетов.Хозрасчетный.НННННН; 
	
	нп.ВалютнаяСуммаДт = ДокИст.СуммаВалютная;
	
	нп.Сумма = ДокИст.СуммаДокумента;
	
	Если ЗначениеЗаполнено(ДокИст.Договор) Тогда
		
		текКонтрагент = ДокИст.Договор.Владелец;
		текДоговор= ДокИст.Договор;
		
		БухгалтерскийУчет.УстановитьСубконто(нп.СчетДт, нп.СубконтоДт, "Контрагенты", текКонтрагент);
		БухгалтерскийУчет.УстановитьСубконто(нп.СчетДт, нп.СубконтоДт, "Договоры", текДоговор);
		БухгалтерскийУчет.УстановитьСубконто(нп.СчетКт, нп.СубконтоКт, "Контрагенты", текКонтрагент);
		БухгалтерскийУчет.УстановитьСубконто(нп.СчетКт, нп.СубконтоКт, "Договоры", текДоговор);
		
	КонецЕсли;
	
	нп.НомерЖурнала = "";
	нп.Организация = Оп.Организация;
	нп.Период = Оп.Дата;
	нп.Регистратор = ОпСсылка;
	нп.Содержание = Оп.Комментарий;
	
	//ЕЩЁ ПРОВОДКА
	нп = РегХозрасчетный.Добавить();
	
///...

    //ЗАПИШЕМ ВСЕ СОЗДАННЫЕ ПРОВОДКИ
	РегХозрасчетный.Записать();
	
	//Дозаполним документ
	Оп.СпособЗаполнения = СокрЛП(ДокИст);
	Оп.СуммаОперации = РегХозрасчетный.Итог("Сумма");
	Оп.Содержание = Оп.Комментарий; 
	
	//Снова запишем документ (Операция)
	Оп.Записать();
	
	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "Создана операция: "+СокрЛП(ОпСсылка);
	Сообщение.УстановитьДанные(Оп); //Ссылка на объект ИБ
	Сообщение.Сообщить();
Показать
3. SlavaKron 17.02.21 15:38 Сейчас в теме
В БП 3.0 форма документа позволяет заполнить его без записи:
&НаКлиенте
Процедура СоздатьОперацию(Команда)
	
	ЗначенияЗаполнения = Новый Структура;
	ЗначенияЗаполнения.Вставить("Хозрасчетный", Проводки);
	
	ПараметрыФормы = Новый Структура;
	ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения);
	
	ФормаДокумента = ОткрытьФорму("Документ.ОперацияБух.ФормаОбъекта", ПараметрыФормы, ЭтотОбъект);
	ФормаДокумента.Модифицированность = Истина;
	
КонецПроцедуры
Показать
Оставьте свое сообщение

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