Программно заполнить субконто в полученных проводках

1. Nastya-chajkovskaya 23.05.19 10:06 Сейчас в теме
Здравствуйте! Подскажите пожалуйста, при проведении документа, захожу в проводки и нажимаю отразить в рег. учете.Проводки у меня сформировались, но есть одно но! в счете указалось только субконто1, а субконто2 стало с типом неопределено, каким образом я могу откорректировать программно,чтобы постоянно было заполнение.
я пыталась разными способами, но видимо плохо старалась значение не заполняется, тип по прежнему неопределенно .

Написала отдельно процедуру, в которой я получаю таблицу значений из своих проводок, а как эту корректировку, как вместо типа неопределенно у меня выводился нужный тип и субконто.

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

		КонецЕСли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать


То что закомментировано, это мои попытки,которые были напрасны(
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. mrx2012 23.05.19 10:24 Сейчас в теме
Так не пробовали?
Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] =  РезультатОС.Арендатор;
Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства] =  РезультатОС.ОсновноеСредство;
3. Nastya-chajkovskaya 23.05.19 10:49 Сейчас в теме
(2)
Запись.Субконто[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства] = РезультатОС.Арендатор;


Да прописывала и Запись.СубконтоКт1[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = РезультатОС.Арендатор;

и там где значение неопределенно Запись.СубконтоКт2[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = РезультатОС.Арендатор;

но не выходит
4. dhurricane 23.05.19 10:56 Сейчас в теме
(3) Какая-то путаница.

Если Вы работаете с таблицей значений, и Запись - это строка таблицы значений, то если мне не изменяет память обращения по индексу не требуется. У Вас уже колонки в именах содержат индекс субконто, важно только знать порядок видов субконто:
Запись.СубконтоКт1 = РезультатОС.Арендатор;
Запись.СубконтоКт2 = РезультатОС.ОсновноеСредство;

Если же Вы работаете непосредственно с набором записей движений, то здесь уже не используются индексы, а используются виды субконто:
Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] =  РезультатОС.Арендатор;
Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства] =  РезультатОС.ОсновноеСредство;
ikekoval; Maito; Nastya-chajkovskaya; +3 Ответить
8. Nastya-chajkovskaya 23.05.19 12:11 Сейчас в теме
5. mrx2012 23.05.19 11:01 Сейчас в теме
Кстати может у вас значение заполняется, но не записывается?
Смотрели в отладке?
6. Nastya-chajkovskaya 23.05.19 11:36 Сейчас в теме
7. mrx2012 23.05.19 11:51 Сейчас в теме
9. Nastya-chajkovskaya 23.05.19 12:13 Сейчас в теме
ВОт конечный результат)

Процедура КЗ_ОтражениеСписаниеОС(ДокументСсылка, ТаблицаПроводок)
	
		Для каждого ЗаписьБУ  из ТаблицаПроводок Цикл
			
		ЗапросОС = Новый Запрос;
		ЗапросОС.Текст = "ВЫБРАТЬ
		           |	МестонахождениеОССрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
		           |	МестонахождениеОССрезПоследних.Арендатор КАК Арендатор
		           |ИЗ
		           |	РегистрСведений.МестонахождениеОС.СрезПоследних(, ) КАК МестонахождениеОССрезПоследних
		           |ГДЕ
		           |	МестонахождениеОССрезПоследних.ОсновноеСредство = &ОсновноеСредство";
		ЗапросОС.УстановитьПараметр("ОсновноеСредство",ЗаписьБУ.СубконтоДт1);
		РезультатОС = ЗапросОС.Выполнить().Выбрать();
		РезультатОС.Следующий();
		Если ЗаписьБУ.СчетКт =  ПланыСчетов.Хозрасчетный.ПрочиеДоходныеВложения Тогда
			
			ЗаписьБУ.ВидСубконтоКт1 = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты;
			ЗаписьБУ.СубконтоКт1 = РезультатОС.Арендатор;
			ЗаписьБУ.ВидСубконтоКт2 = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства;
			ЗаписьБУ.СубконтоКт2 = РезультатОС.ОсновноеСредство;
			
		КонецЕСли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать
OlesyaBelochka; +1 Ответить
Оставьте свое сообщение

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