Вывести номер счета плана счетов хозрасчетный в табличную часть формы документа

1. user1156737 26.11.19 18:18 Сейчас в теме
Добрый день!

В 1С 8.3 УПП нужно вывести номер счета из плана счетов хозрасчетный в поле СчетУчетаБУ табличной части товары формы документа Заказ Поставщику при добавлении новой номенклатуры. Реквизит в документе уже был создан, но в модулях никаких процедур я не нашел. Подскажите пожалуйста :

---- Какой процедурой и каким методом это лучше реализовать( если можно пример кода)
---- Как связать номенклатуру и план счетов, если в номенклатуре не заполняется номер счета. Как делать запрос?
-----В документе Поступление товаров и услуг в табличной части товары это уже реализовано разработчиками 1С. Пытался скопировать процедуры ,по примеру этого документа ---ничего не получилось(((

Спасибо.
По теме из базы знаний
Найденные решения
5. trickster 27.11.19 07:53 Сейчас в теме
(1) Используйте регистр "Счета учёта номенклатуры". Посмотрите как он работает в других документах и сделайте аналогично.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DJDUH 17 26.11.19 18:46 Сейчас в теме
(1)
Пытался скопировать процедуры ,по примеру этого документа ---ничего не получилось(((

Что именно не получилось?
3. user1156737 26.11.19 18:57 Сейчас в теме
(2)
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
	
	Если ЗначениеЗаполнено(Звит1С_DOC_ID) И ЗначениеЗаполнено(СтрокаТабличнойЧасти.НаименованиеПоставщика) Тогда
		// док получен из Звит. При выборе "нашей" номенклатуры не нужно ничего перезаполнять и пересчитывать, кроме заполнения единицы измерения/коэффициента, если их не заполнили при загрузке
		Если НЕ ЗначениеЗаполнено(СтрокаТабличнойЧасти.ЕдиницаИзмерения) Тогда
			СтрокаТабличнойЧасти.ЕдиницаИзмерения = СтрокаТабличнойЧасти.Номенклатура.ЕдиницаХраненияОстатков;
			СтрокаТабличнойЧасти.Коэффициент = СтрокаТабличнойЧасти.ЕдиницаИзмерения.Коэффициент;
		ИначеЕсли НЕ ЗначениеЗаполнено(СтрокаТабличнойЧасти.Коэффициент) Тогда
			 // поищем коэффициент в ТЧ с единицами измерения в товаре
			 СтрокаЕдиниц = СтрокаТабличнойЧасти.Номенклатура.ЕдиницыИзмерения.Найти(СтрокаТабличнойЧасти.ЕдиницаИзмерения);
			 Если НЕ СтрокаЕдиниц = Неопределено Тогда
			 	СтрокаТабличнойЧасти.Коэффициент = СтрокаЕдиниц.Коэффициент;
			 КонецЕсли;
		КонецЕсли;
		
		Если  ЗначениеЗаполнено(Контрагент)
			И ЗначениеЗаполнено(СтрокаТабличнойЧасти.Номенклатура)Тогда
			Попытка
				НоменклатураПоставщика = РегистрыСведений.НоменклатураКонтрагентов.СоздатьМенеджерЗаписи();
				НоменклатураПоставщика.Контрагент = Контрагент;
				НоменклатураПоставщика.Номенклатура = СтрокаТабличнойЧасти.Номенклатура;
				Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры) Тогда
					НоменклатураПоставщика.ХарактеристикаНоменклатуры = СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры;
				КонецЕсли; 
				НоменклатураПоставщика.Прочитать();
				
				Если НЕ НоменклатураПоставщика.Выбран() Тогда
					
					НоменклатураПоставщика.Контрагент   = Контрагент;
					НоменклатураПоставщика.Номенклатура = СтрокаТабличнойЧасти.Номенклатура;
					Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры) Тогда
						НоменклатураПоставщика.ХарактеристикаНоменклатуры = СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры;
					КонецЕсли; 
					
					НоменклатураПоставщика.НаименованиеНоменклатурыКонтрагента = СтрокаТабличнойЧасти.НаименованиеПоставщика;	
					
					ПозКода = Найти(СтрокаТабличнойЧасти.НаименованиеПоставщика, " (код: ");
					Если ПозКода > 0 Тогда
						НоменклатураПоставщика.КодНоменклатурыКонтрагента = Сред(СтрокаТабличнойЧасти.НаименованиеПоставщика, ПозКода + 7); 	
						НоменклатураПоставщика.КодНоменклатурыКонтрагента = Лев(НоменклатураПоставщика.КодНоменклатурыКонтрагента, Найти(НоменклатураПоставщика.КодНоменклатурыКонтрагента, ")") - 1);
					Иначе	
						ПозАртикула = Найти(СтрокаТабличнойЧасти.НаименованиеПоставщика, " (артикул: ");
						Если ПозАртикула > 0 Тогда
							НоменклатураПоставщика.АртикулНоменклатурыКонтрагента = Сред(СтрокаТабличнойЧасти.НаименованиеПоставщика, ПозАртикула + 11); 	
							НоменклатураПоставщика.АртикулНоменклатурыКонтрагента = Лев(НоменклатураПоставщика.АртикулНоменклатурыКонтрагента, Найти(НоменклатураПоставщика.АртикулНоменклатурыКонтрагента, ")") - 1);
						КонецЕсли;
					КонецЕсли;
					
					НоменклатураПоставщика.Записать();
				КонецЕсли;
				
			Исключение
				ТекстОписанияОшибки = ОписаниеОшибки();
			КонецПопытки;
		КонецЕсли;
		
		Возврат;
	КонецЕсли;
	
	// Выполнить общие действия для всех документов при изменении номенклатуры.
	ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

	// Заполняем реквизиты табличной части.
	ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, "Приобретение"); 

	СтруктураШапкиДокумента = Новый Структура("Контрагент, ТипЦен, ДоговорКонтрагента, ДатаДокумента, ВалютаДокумента, УчитыватьНДС, СуммаВключаетНДС",
	                                         Контрагент, ТипЦен, ДоговорКонтрагента, Дата,ВалютаДокумента, УчитыватьНДС,СуммаВключаетНДС);
	ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПокупкиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, СтруктураШапкиДокумента, мВалютаРегламентированногоУчета); 

	// Рассчитываем реквизиты табличной части.
	ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);
	ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

	ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТабличнойЧасти, "Товары", ОтражатьВБухгалтерскомУчете);
	
	УчетСерийныхНомеров.ПроверитьСерийныеНомера(СтрокаТабличнойЧасти, ЭтотОбъект);
	
КонецПроцедуры 
Показать



Скопировал процедуру номенклатуры при изменении, ничего не произошло ---поле счет учета не заполняется
5. trickster 27.11.19 07:53 Сейчас в теме
(1) Используйте регистр "Счета учёта номенклатуры". Посмотрите как он работает в других документах и сделайте аналогично.
6. user1156737 27.11.19 09:15 Сейчас в теме
4. user1156737 26.11.19 19:16 Сейчас в теме
Как правильно составить запрос?
Оставьте свое сообщение

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