Как обратиться к ТЧ, которая создается программно, при программном создании документа?

1. VID1234 145 26.07.22 10:52 Сейчас в теме
Здравствуйте. Подскажите пожалуйста. В БГУ 2 имеется документ счет-фактура полученный, в этом документе есть вкладка "Бухгалтерская операция"! Как мне обратиться к ней (она создается программно), если я сам программно создаю этот счет-фактуру? Мне нужно заполнить типовую операцию и указать доп реквизит КПС!
По теме из базы знаний
Найденные решения
2. laperuz 46 26.07.22 10:59 Сейчас в теме
Вот мой пример
// кор. счет
	Если ЗначениеЗаполнено(КорСчет) И 
		(ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеВыбытие") ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеПоступление")) Тогда
		ДокументОбъект.КорСчет = КорСчет;
	КонецЕсли;
	// налог
	Если ЗначениеЗаполнено(НалогСборПлатеж) И 
		(ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеВыбытие") ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеПоступление")) Тогда
		ДокументОбъект.НалогСборПлатеж = НалогСборПлатеж;
	КонецЕсли;
	// ИФО
	Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда
		Если ЗначениеЗаполнено(ИФО) Тогда
			ДокументОбъект.ИФО = ИФО;
		КонецЕсли;
	КонецЕсли;
	
	// СчетУчетаДенежныхСредств
	ДополнительныеРеквизиты = ДокументОбъект.ДополнительныеСвойства;
	ДополнительныеРеквизиты = Новый Структура;
	Если ЗначениеЗаполнено(СчетУчетаДенежныхСредств) Тогда
		Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеВыбытие") Тогда
			ДополнительныеРеквизиты.Вставить("СчетКт",СчетУчетаДенежныхСредств);	
		ИначеЕсли ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеПоступление") Тогда
			ДополнительныеРеквизиты.Вставить("СчетДт",СчетУчетаДенежныхСредств);
			ДополнительныеРеквизиты.Вставить("СчетПоступления",СчетУчетаДенежныхСредств);	
			ДополнительныеРеквизиты.Вставить("СчетДтПоНалогам",СчетУчетаДенежныхСредств);	
		КонецЕсли;	
	КонецЕсли;	
	
	// ДО 
	Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.РегистрацияОбязательствИСведенийПоДоговорам") Тогда
		ДополнительныеРеквизиты.Вставить("ПринятьДенежныеОбязательстваДляБезусловных", Истина);
		ДополнительныеРеквизиты.Вставить("ПринятьДенежныеОбязательстваДляБезусловныхПлановых", Истина);
		ДополнительныеРеквизиты.Вставить("БюджетныеДанныеБезДетализацииПоКосгу", Ложь);
	КонецЕсли;	
		
	БухгалтерскиеОперацииСервер.ДобавитьДанныеДляПроведения(ДокументОбъект, ТиповаяОперация, ДополнительныеРеквизиты, Ложь);
	
	Попытка
		Результат = ДатыЗапретаИзмененияСлужебный.ПроверитьДатыЗапретаИзмененияЗагрузкиДанных(
			ДокументОбъект, Ложь, Истина, Ложь);
			
		Если Результат.ИзменениеЗапрещено Тогда
			ТекстПротокола = ТекстПротокола + "<p>" + "Документ не записан, так как установлена дата запрета редактирования данных</p>";
			Если ЗначениеЗаполнено(ДокументОбъект.Ссылка) Тогда
				Возврат ДокументОбъект.Ссылка;
			Иначе
				Возврат Неопределено;
			КонецЕсли;
		КонецЕсли;  
	Исключение
	КонецПопытки;
	
	Попытка  
		ДокументОбъект.ОбменДанными.Загрузка = Ложь;
		ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
	Исключение  
		ДокументОбъект.ОбменДанными.Загрузка = Истина;
		ДокументОбъект.Записать();
		ДанныеЗаписи = Новый Структура;
		ДанныеЗаписи.Вставить("Документ", ДокументОбъект.Ссылка);
		ДанныеЗаписи.Вставить("Операция", ТиповаяОперация);
		БухгалтерскиеОперацииСервер.ЗаписатьДанныеТиповойОперацииОбъекта(ДокументОбъект, ТиповаяОперация, ДополнительныеРеквизиты);
	КонецПопытки;
	Возврат ДокументОбъект.Ссылка;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. laperuz 46 26.07.22 10:59 Сейчас в теме
Вот мой пример
// кор. счет
	Если ЗначениеЗаполнено(КорСчет) И 
		(ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеВыбытие") ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеПоступление")) Тогда
		ДокументОбъект.КорСчет = КорСчет;
	КонецЕсли;
	// налог
	Если ЗначениеЗаполнено(НалогСборПлатеж) И 
		(ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеВыбытие") ИЛИ ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеПоступление")) Тогда
		ДокументОбъект.НалогСборПлатеж = НалогСборПлатеж;
	КонецЕсли;
	// ИФО
	Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда
		Если ЗначениеЗаполнено(ИФО) Тогда
			ДокументОбъект.ИФО = ИФО;
		КонецЕсли;
	КонецЕсли;
	
	// СчетУчетаДенежныхСредств
	ДополнительныеРеквизиты = ДокументОбъект.ДополнительныеСвойства;
	ДополнительныеРеквизиты = Новый Структура;
	Если ЗначениеЗаполнено(СчетУчетаДенежныхСредств) Тогда
		Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеВыбытие") Тогда
			ДополнительныеРеквизиты.Вставить("СчетКт",СчетУчетаДенежныхСредств);	
		ИначеЕсли ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.КассовоеПоступление") Тогда
			ДополнительныеРеквизиты.Вставить("СчетДт",СчетУчетаДенежныхСредств);
			ДополнительныеРеквизиты.Вставить("СчетПоступления",СчетУчетаДенежныхСредств);	
			ДополнительныеРеквизиты.Вставить("СчетДтПоНалогам",СчетУчетаДенежныхСредств);	
		КонецЕсли;	
	КонецЕсли;	
	
	// ДО 
	Если ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.РегистрацияОбязательствИСведенийПоДоговорам") Тогда
		ДополнительныеРеквизиты.Вставить("ПринятьДенежныеОбязательстваДляБезусловных", Истина);
		ДополнительныеРеквизиты.Вставить("ПринятьДенежныеОбязательстваДляБезусловныхПлановых", Истина);
		ДополнительныеРеквизиты.Вставить("БюджетныеДанныеБезДетализацииПоКосгу", Ложь);
	КонецЕсли;	
		
	БухгалтерскиеОперацииСервер.ДобавитьДанныеДляПроведения(ДокументОбъект, ТиповаяОперация, ДополнительныеРеквизиты, Ложь);
	
	Попытка
		Результат = ДатыЗапретаИзмененияСлужебный.ПроверитьДатыЗапретаИзмененияЗагрузкиДанных(
			ДокументОбъект, Ложь, Истина, Ложь);
			
		Если Результат.ИзменениеЗапрещено Тогда
			ТекстПротокола = ТекстПротокола + "<p>" + "Документ не записан, так как установлена дата запрета редактирования данных</p>";
			Если ЗначениеЗаполнено(ДокументОбъект.Ссылка) Тогда
				Возврат ДокументОбъект.Ссылка;
			Иначе
				Возврат Неопределено;
			КонецЕсли;
		КонецЕсли;  
	Исключение
	КонецПопытки;
	
	Попытка  
		ДокументОбъект.ОбменДанными.Загрузка = Ложь;
		ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
	Исключение  
		ДокументОбъект.ОбменДанными.Загрузка = Истина;
		ДокументОбъект.Записать();
		ДанныеЗаписи = Новый Структура;
		ДанныеЗаписи.Вставить("Документ", ДокументОбъект.Ссылка);
		ДанныеЗаписи.Вставить("Операция", ТиповаяОперация);
		БухгалтерскиеОперацииСервер.ЗаписатьДанныеТиповойОперацииОбъекта(ДокументОбъект, ТиповаяОперация, ДополнительныеРеквизиты);
	КонецПопытки;
	Возврат ДокументОбъект.Ссылка;
Показать
3. VID1234 145 26.07.22 11:11 Сейчас в теме
(2)Здравствуйте. Я создаю документ с обработки и не могу видеть реквизиты, как мне узнать названия того или иного реквизита у меня их всего 2, это типовая операция и КПС!
4. VID1234 145 26.07.22 11:22 Сейчас в теме
(2)Кажется начал понимать, спасибо за наводку!
5. VID1234 145 26.07.22 11:53 Сейчас в теме
(2)Подскажите, у меня при добавлении аналогичного кода, теперь идет проверка всех реквизитов, но у меня их нет в написаном мной документе, мне из моего документа, нужно создать счет-фактуру!
6. VID1234 145 26.07.22 11:54 Сейчас в теме
{ОбщийМодуль.БухгалтерскиеОперацииСервер.Модуль(2117)}: При проведении документа Отражение отложенного НДС БП-000001 от 22.07.2022 18:20:22 возникла ошибка:
Поле объекта не обнаружено (Контрагент)
Подробная информация записана в журнал регистрации.
ВызватьИсключение ТекстОшибки
7. VID1234 145 26.07.22 12:02 Сейчас в теме
Все, вывел в отдельную процедуру. БухгалтерскиеОперацииСервер.ЗаписатьДанныеТиповойОперацииОбъекта(СФСоздадим.Ссылка, ТиповаяОперация,,,,истина);
БухгалтерскиеОперацииСервер.ДобавитьДанныеДляПроведения(СФСоздадим, ТиповаяОперация, ДополнительныеРеквизиты2, Истина);
Оставьте свое сообщение

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