Каталог решений - ТОРГ-12 и Счет-фактура для УТ 11.1 без группировки строк с одинаковой номенклатурой

ТОРГ-12 и Счет-фактура для УТ 11.1 без группировки строк с одинаковой номенклатурой

ТОРГ-12 и Счет-фактура для УТ 11.1 без группировки строк с одинаковой номенклатурой

В наличии

В конфигурации УТ 11.1 в печатных формах ТОРГ-12 и Счет-фактуры документа реализация товаров и услуг строки с одинаковой номенклатурой группируются в строку со средней ценой.

Категория:

Описание

Некоторым заказчикам эта особенность мешает, так как у них возникают проблемы с покупателями, требующими указания точных цен для каждой позиции номерклатуры. Чтобы в печатных формах ТОРГ-12 и счет-фактура строки выводились также как и в ТЧ документа Реализация товаров и услуг можно воспользоваться внешней печатной формой, опубликованной здесь:

//sale.itcity.ru/public/413891/

а можно внести небольшие изменения в конфигурацию:

В модуле менеджера документа Реализация товаров и услуг нужно заменить процедуру ПоместитьВременнуюТаблицуТоваров

Процедура ПоместитьВременнуюТаблицуТоваров(МенеджерВременныхТаблиц, ВключаяНомераГТД, ПересчитыватьВВалютуРегл = Истина) Экспорт
	
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
	Запрос.УстановитьПараметр("ВалютаРегламентированногоУчета", Константы.ВалютаРегламентированногоУчета.Получить());
	Запрос.УстановитьПараметр("ПересчитыватьВВалютуРегл",       ПересчитыватьВВалютуРегл);
	Запрос.УстановитьПараметр("ВключаяНомераГТД",               ВключаяНомераГТД);
	
	Если ПересчитыватьВВалютуРегл Тогда
		
		Запрос.Текст = "
		|ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	РасчетыСКлиентами.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам
		|ИЗ
		|	РегистрНакопления.РасчетыСКлиентами КАК РасчетыСКлиентами
		|
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
		|		ТаблицаДанныхДокументов КАК ДанныеДокументов
		|	ПО
		|		РасчетыСКлиентами.Регистратор = ДанныеДокументов.Ссылка
		|
		|ГДЕ
		|	ДанныеДокументов.Валюта <> &ВалютаРегламентированногоУчета
		|	И РасчетыСКлиентами.Активность
		|";
		ТаблицаАналитик = Запрос.Выполнить().Выгрузить();
		МассивАналитикУчетаПоПартнерам = ТаблицаАналитик.ВыгрузитьКолонку("АналитикаУчетаПоПартнерам");
		
		ВзаиморасчетыСервер.ВыполнитьПроведениеДокументовПоРасчетамСКлиентами(МассивАналитикУчетаПоПартнерам);
		
	КонецЕсли;
	
	Запрос.Текст = "
	|ВЫБРАТЬ
	|	ТаблицаДокумента.Ссылка                                 КАК Ссылка,
	|	ЛОЖЬ                                 					КАК СтрокаВыбрана,
	
	|	ВариантыКомплектацииНоменклатуры.Ссылка КАК ВариантКомплектацииНоменклатуры,
	
	|	ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
	|	ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
	
	|	ТаблицаДокумента.НоменклатураНабора КАК НоменклатураНабора,
	|	ТаблицаДокумента.ХарактеристикаНабора КАК ХарактеристикаНабора,
	
	|	ТаблицаДокумента.НомерСтроки                            КАК НомерСтроки,
	|	ТаблицаДокумента.Номенклатура                           КАК Номенклатура,
	|	ТаблицаДокумента.Характеристика                         КАК Характеристика,
	|	ТаблицаДокумента.Серия                                  КАК Серия,
	|	НЕОПРЕДЕЛЕНО                                            КАК НомерГТД,
	|	ТаблицаДокумента.Количество                             КАК Количество,
	|	ТаблицаДокумента.Количество                             КАК КоличествоУпаковок,
	|	
	|	ЕСТЬNULL(
	|		СуммыДокументовВВалютеРегл.СуммаБезНДСРегл,
	|		ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС
	|	) КАК СуммаБезНДС,
	|	
	|	ТаблицаДокумента.СтавкаНДС                              КАК СтавкаНДС,
	|	
	|	ЕСТЬNULL(
	|		СуммыДокументовВВалютеРегл.СуммаНДСРегл,
	|		ТаблицаДокумента.СуммаНДС
	|	) КАК СуммаНДС,
	|	
	|	ЛОЖЬ                                                    КАК ЭтоТовар,
	|	ЛОЖЬ                                                    КАК ЭтоНеВозвратнаяТара,
	|	ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)  КАК Упаковка
	|
	|//ПОМЕСТИТЬ РеализацияТоваровУслугТаблицаТоваров
	|ИЗ
	|	Документ.РеализацияТоваровУслуг.Товары КАК ТаблицаДокумента
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		ТаблицаДанныхДокументов КАК ДанныеДокументов
	|	ПО
	|		ТаблицаДокумента.Ссылка = ДанныеДокументов.Ссылка
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.СуммыДокументовВВалютеРегл КАК СуммыДокументовВВалютеРегл
	|	ПО
	|		ТаблицаДокумента.Ссылка = СуммыДокументовВВалютеРегл.Регистратор
	|		И ТаблицаДокумента.ИдентификаторСтроки = СуммыДокументовВВалютеРегл.ИдентификаторСтроки
	|		И СуммыДокументовВВалютеРегл.Активность
	|		И &ПересчитыватьВВалютуРегл
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
	|		ПО ВариантыКомплектацииНоменклатуры.Владелец = ТаблицаДокумента.НоменклатураНабора
	|		И ВариантыКомплектацииНоменклатуры.Характеристика = ТаблицаДокумента.ХарактеристикаНабора
	|		И ВариантыКомплектацииНоменклатуры.Основной
	|
	|ГДЕ
	|	ТаблицаДокумента.Номенклатура.ТипНоменклатуры В
	|		(ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга),
	|		ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ТаблицаДокумента.Ссылка                                        КАК Ссылка,
	|	ЛОЖЬ                                 						   КАК СтрокаВыбрана,
	
	|	ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.ВариантыКомплектацииНоменклатуры.ПустаяСсылка)) КАК ВариантКомплектацииНоменклатуры,
	|	ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах, ЗНАЧЕНИЕ(Перечисление.ВариантыПредставленияНаборовВПечатныхФормах.ПустаяСсылка)) КАК ВариантПредставленияНабораВПечатныхФормах,
	|	ЕСТЬNULL(ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора, ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)) КАК ВариантРасчетаЦеныНабора,
	
	|	ЕСТЬNULL(АналитикаНаборов.НоменклатураНабора, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК НоменклатураНабора,
	|	ЕСТЬNULL(АналитикаНаборов.ХарактеристикаНабора, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК ХарактеристикаНабора,
	
	|	0                                      КАК НомерСтроки,
	|	Аналитика.Номенклатура                                         КАК Номенклатура,
	|	Аналитика.Характеристика                                       КАК Характеристика,
	|	Аналитика.Серия                                                КАК Серия,
	|	
	|	ВЫБОР КОГДА &ВключаяНомераГТД ТОГДА
	|		ТаблицаДокумента.НомерГТД
	|	ИНАЧЕ
	|		НЕОПРЕДЕЛЕНО
	|	КОНЕЦ КАК НомерГТД,
	|
	|	СУММА(ТаблицаДокумента.Количество)                             КАК Количество,
	|	СУММА(ТаблицаДокумента.КоличествоУпаковок)                     КАК КоличествоУпаковок,
	|	
	|	СУММА(ЕСТЬNULL(
	|		СуммыДокументовВВалютеРегл.СуммаБезНДСРегл,
	|		ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС
	|	)) КАК СуммаБезНДС,
	|	
	|	ТаблицаДокумента.СтавкаНДС                                     КАК СтавкаНДС,
	|	
	|	СУММА(ЕСТЬNULL(
	|		СуммыДокументовВВалютеРегл.СуммаНДСРегл,
	|		ТаблицаДокумента.СуммаНДС
	|	)) КАК СуммаНДС,
	|	
	|	ИСТИНА                                                         КАК ЭтоТовар,
	|	ВЫБОР
	|		КОГДА
	|			Аналитика.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
	|			И ТаблицаДокумента.Ссылка.ВернутьМногооборотнуюТару
	|		ТОГДА
	|			ЛОЖЬ
	|		ИНАЧЕ
	|			ИСТИНА
	|	КОНЕЦ КАК ЭтоНеВозвратнаяТара,
	|	ТаблицаДокумента.Упаковка                                      КАК Упаковка
	|
	|ИЗ
	|	Документ.РеализацияТоваровУслуг.ВидыЗапасов КАК ТаблицаДокумента
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
	|	ПО
	|		ТаблицаДокумента.АналитикаУчетаНоменклатуры = Аналитика.КлючАналитики
	|
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.АналитикаУчетаНаборов КАК АналитикаНаборов
	|	ПО
	|		ТаблицаДокумента.АналитикаУчетаНаборов = АналитикаНаборов.КлючАналитики
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		ТаблицаДанныхДокументов КАК ДанныеДокументов
	|	ПО
	|		ТаблицаДокумента.Ссылка = ДанныеДокументов.Ссылка
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.СуммыДокументовВВалютеРегл КАК СуммыДокументовВВалютеРегл
	|	ПО
	|		ТаблицаДокумента.Ссылка = СуммыДокументовВВалютеРегл.Регистратор
	|		И ТаблицаДокумента.ИдентификаторСтроки = СуммыДокументовВВалютеРегл.ИдентификаторСтроки
	|		И СуммыДокументовВВалютеРегл.Активность
	|		И &ПересчитыватьВВалютуРегл
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыКомплектацииНоменклатуры КАК ВариантыКомплектацииНоменклатуры
	|		ПО ВариантыКомплектацииНоменклатуры.Владелец = ТаблицаДокумента.АналитикаУчетаНаборов.НоменклатураНабора
	|		И ВариантыКомплектацииНоменклатуры.Характеристика = ТаблицаДокумента.АналитикаУчетаНаборов.ХарактеристикаНабора
	|		И ВариантыКомплектацииНоменклатуры.Основной
	|
	|СГРУППИРОВАТЬ ПО
	|	ТаблицаДокумента.Ссылка,
	
	|	ВариантыКомплектацииНоменклатуры.Ссылка,
	|	ВариантыКомплектацииНоменклатуры.ВариантПредставленияНабораВПечатныхФормах,
	|	ВариантыКомплектацииНоменклатуры.ВариантРасчетаЦеныНабора,
	|	АналитикаНаборов.НоменклатураНабора,
	|	АналитикаНаборов.ХарактеристикаНабора,
	
	|	Аналитика.Номенклатура,
	|	Аналитика.Характеристика,
	|	Аналитика.Серия,
	|	ТаблицаДокумента.СтавкаНДС,
	|	ТаблицаДокумента.Упаковка,
	|
	|	ВЫБОР КОГДА &ВключаяНомераГТД ТОГДА
	|		ТаблицаДокумента.НомерГТД
	|	ИНАЧЕ
	|		НЕОПРЕДЕЛЕНО
	|	КОНЕЦ
	|
	|";
	
	ТаблицаВидыЗапасов = Запрос.Выполнить().Выгрузить();
	
	Запрос.Текст = "
	|ВЫБРАТЬ
	|	ТаблицаДокумента.Ссылка                                 КАК Ссылка,
	|	ТаблицаДокумента.НомерСтроки                            КАК НомерСтроки,
	|	ТаблицаДокумента.НоменклатураНабора КАК НоменклатураНабора,
	|	ТаблицаДокумента.ХарактеристикаНабора КАК ХарактеристикаНабора,
	
	|	ТаблицаДокумента.Номенклатура                           КАК Номенклатура,
	|	ТаблицаДокумента.Характеристика                         КАК Характеристика,
	|	ТаблицаДокумента.Серия                                  КАК Серия,
	|	ТаблицаДокумента.Количество                             КАК Количество,
	|	
	|	ЕСТЬNULL(
	|		СуммыДокументовВВалютеРегл.СуммаБезНДСРегл,
	|		ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС
	|	) КАК СуммаБезНДС,
	|	
	|	ВЫБОР КОГДА ЕСТЬNULL(СуммыДокументовВВалютеРегл.СуммаБезНДСРегл,0) > 0 ТОГДА
	|			СуммыДокументовВВалютеРегл.СуммаБезНДСРегл / ТаблицаДокумента.Количество
	|	      ИНАЧЕ
	|			((ТаблицаДокумента.СуммаСНДС - ТаблицаДокумента.СуммаНДС) / ТаблицаДокумента.Количество)
	|	      КОНЕЦ  КАК Цена,
	|	(ТаблицаДокумента.СуммаСНДС/ТаблицаДокумента.Количество) КАК ЦенаСНДС,
	|	
	|	ТаблицаДокумента.СтавкаНДС                              КАК СтавкаНДС,
	|	
	|	ЕСТЬNULL(
	|		СуммыДокументовВВалютеРегл.СуммаНДСРегл,
	|		ТаблицаДокумента.СуммаНДС
	|	) КАК СуммаНДС,
	|	
	|	ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)  КАК Упаковка
	|
	|ИЗ
	|	Документ.РеализацияТоваровУслуг.Товары КАК ТаблицаДокумента
	|
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|		ТаблицаДанныхДокументов КАК ДанныеДокументов
	|	ПО
	|		ТаблицаДокумента.Ссылка = ДанныеДокументов.Ссылка
	|	
	|	ЛЕВОЕ СОЕДИНЕНИЕ
	|		РегистрСведений.СуммыДокументовВВалютеРегл КАК СуммыДокументовВВалютеРегл
	|	ПО
	|		ТаблицаДокумента.Ссылка = СуммыДокументовВВалютеРегл.Регистратор
	|		И ТаблицаДокумента.ИдентификаторСтроки = СуммыДокументовВВалютеРегл.ИдентификаторСтроки
	|		И СуммыДокументовВВалютеРегл.Активность
	|		И &ПересчитыватьВВалютуРегл";
	
	
	ТаблицаТоваровДокумента = Запрос.Выполнить().Выгрузить();
	
	Для Каждого СтрТаб Из ТаблицаТоваровДокумента Цикл
		Отбор = Новый Структура;
		Отбор.Вставить("СтрокаВыбрана", Ложь);
		Отбор.Вставить("Номенклатура", СтрТаб.Номенклатура);
		Отбор.Вставить("Характеристика", СтрТаб.Характеристика);
		Отбор.Вставить("Серия", СтрТаб.Серия);
		НайденныеСтроки = ТаблицаВидыЗапасов.НайтиСтроки(Отбор);
		КоличествоНайти = СтрТаб.Количество;
		Для Н = 1 По НайденныеСтроки.Количество() Цикл
			НайденнаяСтрока = НайденныеСтроки.Получить(Н - 1);
			Если КоличествоНайти < НайденнаяСтрока.Количество Тогда
				НоваяСтрока = ТаблицаВидыЗапасов.Добавить();
				ЗаполнитьЗначенияСвойств(НоваяСтрока,НайденнаяСтрока);
				НоваяСтрока.Количество = НайденнаяСтрока.Количество - КоличествоНайти;
				НоваяСтрока.КоличествоУпаковок = НоваяСтрока.Количество;
				НайденнаяСтрока.Количество = КоличествоНайти;
				НайденнаяСтрока.КоличествоУпаковок = КоличествоНайти;
				НайденнаяСтрока.СтрокаВыбрана = Истина;
				КоличествоНайти = 0;
			Иначе
				КоличествоНайти = КоличествоНайти - НайденнаяСтрока.Количество;
				НайденнаяСтрока.СтрокаВыбрана = Истина;
			КонецЕсли;
			НайденнаяСтрока.НомерСтроки = СтрТаб.НомерСтроки;
			СтавкаНДС = УчетНДСПереопределяемый.ПолучитьСтавкуНДС(НайденнаяСтрока.СтавкаНДС);
			//НайденнаяСтрока.СуммаБезНДС = СтрТаб.Цена*НайденнаяСтрока.Количество;
			//НайденнаяСтрока.СуммаНДС = СтавкаНДС*НайденнаяСтрока.СуммаБезНДС/100;
			НайденнаяСтрока.СуммаНДС = СтавкаНДС*(СтрТаб.ЦенаСНДС*НайденнаяСтрока.Количество)/(100 + СтавкаНДС);
			НайденнаяСтрока.СуммаБезНДС = СтрТаб.ЦенаСНДС*НайденнаяСтрока.Количество - НайденнаяСтрока.СуммаНДС;
			Если КоличествоНайти = 0 Тогда
				Прервать;
			КонецЕсли;
		КонецЦикла;
		
	КонецЦикла;
	
	Запрос.Текст = "
	|ВЫБРАТЬ *
	|ПОМЕСТИТЬ РеализацияТоваровУслугТаблицаТоваров 
	|ИЗ &ТаблицаВидыЗапасов КАК ТаблицаВидыЗапасов";
	
	Запрос.УстановитьПараметр("ТаблицаВидыЗапасов",ТаблицаВидыЗапасов);
	
	Запрос.Выполнить();
	
КонецПроцедуры

 Это заметка для себя, но, может, кому-нибудь окажется полезной.

has been added to your cart:
Оформление заказа