Имя: Пароль:
1C
1С v8
Запись не верна! Вид субконто не доступен для данной записи!
0 lav151
 
14.08.24
12:12
Всем Добрый день

Коллеги, помогите разобраться с данной ошибкой.
Сильно дописанная Бухгалтерия КОРП. Задача стоит следующая: необходимо при определенных условий в документе "Требование-накладная" изменить одну проводку при проведении, а именно СчетДт.

Выходит следующая ошибка:
Запись не верна! Вид субконто "Прочие доходы и расходы" не доступен для данной записи!


Вот сам код:

Для Каждого Проводка Из Источник.Движения.Хозрасчетный Цикл
Если Проводка.СчетДт=ПланыСчетов.Хозрасчетный.ПрочиеРасходы Тогда
	//<<Здесь происходит обнуление заполненного субконто "ПрочиеДоходыИРасходы"
	ИмяСубконто="ПрочиеДоходыИРасходы";
	ВидСубконто = ?(ТипЗнч(ИмяСубконто) = Тип("ПланВидовХарактеристикСсылка.ВидыСубконтоХозрасчетные"),ИмяСубконто,ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные[ИмяСубконто]);	
	Проводка.СубконтоДт.Вставить(ВидСубконто, Неопределено);
	//>>
	
	//<<Здесь меняю счет ДТ с 91.02 на 44.01 и подставляю необходимое субконто				
	Проводка.СчетДт=ПланыСчетов.Хозрасчетный.ИздержкиОбращения;
	БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, СтатьяЗатратНДС);
	ЕстьПроводкиНДС = Истина;
	//>>
КонецЕсли; 
КонецЦикла;
Если ЕстьПроводкиНДС Тогда
	//<<Здесь выходит ошибка
	Источник.Движения.Хозрасчетный.Записать();
	//>>
КонецЕсли;
1 lav151
 
14.08.24
09:59
Есть еще вариант попробовать удалить данную проводку, не меняя счет, заново ее заполнить и записать
2 Климов Сергей
 
14.08.24
10:19
На счёте 44.01 нет субконто "Прочие доходы и расходы". О чём вам программа и говорит. Там есть "Статьи затрат".
3 lav151
 
14.08.24
11:43
Это я понимаю, поэтому я сначала убираю "Прочие доходы и расходы". После меняю счет на 44.01 и добавляю "Статью затрат". При записи измененной проводки нет в субконто "Прочие доходы и расходы".
4 Волшебник
 
14.08.24
12:10
Значит "БухгалтерскийУчет.УстановитьСубконто" не отрабатывает
5 Гипервизор
 
14.08.24
12:12
(0) Не увидел "обнуления" субконто.
Может, сначала счёт поменять, а потом устанавливать субконто?
Если Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ПрочиеРасходы Тогда
Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения;
Проводка.СубконтоДт.Очистить();
БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, СтатьяЗатратНДС);
6 lav151
 
14.08.24
13:46
(5) Большое спасибо все получилось.
Я этой строкой производил замену на пустое значение - Проводка.СубконтоДт.Вставить(ВидСубконто, Неопределено);
Вместо этого поставил - Проводка.СубконтоДт.Очистить();
Основная теорема систематики: Новые системы плодят новые проблемы.