Нумерация документа счет с дробью УСН 7.7

1. Veika 25 25.01.21 15:49 Сейчас в теме
Есть УСН 7.7 появилась необходимость нумеровать счета на оплату с дробной часть, т.е. есть счет №10 на сумму 50 000 руб. и на его основании надо в течении года для контрагента выписать счета 10/1 на сумму 5000 руб., 10/2 на сумму 10000 руб. и вот надо настроить такую сквозную нумерацию именно для счетов.
Натолкните, пожалуйста, на мысль, как это реализовать в УСН 7.7 ?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 25.01.21 16:54 Сейчас в теме
как вариант, добавить новый реквизит ВнутреннийНомер - строка 20/30 - писать туда все что угодно
3. na688 25.01.21 17:50 Сейчас в теме
В УСН 77 же текстовый номер, если я правильно помню?
Чтобы автонумерацию не сбивать, все доп.номера должны быть "раньше". Например, номера подчиненных счетов можно формировать так:
ПодчиненныйСчет.УстановитьНовыйНомер("0"+СокрЛП(ДокументОснование.Номер)+"/");

т.е., если нумерация основных счетов - 001, 002, 003, то автонумерация подчиненных будет 0001/1, 0001/2, 0001/3 и т.д.
4. Veika 25 25.01.21 18:49 Сейчас в теме
(3) Благодарю, попробую..
5. Veika 25 14.02.21 22:23 Сейчас в теме
(2)
как вариант, добавить новый реквизит ВнутреннийНомер - строка 20/30 - писать туда все что угодно

Писать то можно все, что угодно, но мне надо, чтобы в допномере поддерживалась автонумерация, т.е. копируем счет 0001 и при его сохранении номер у него уже 0001/1, если создаем новый счет то у него номер просто 0002, без всяких /...
6. user856012 13 14.02.21 23:06 Сейчас в теме
(5)
копируем счет 0001 и при его сохранении номер у него уже 0001/1, если создаем новый счет то у него номер просто 0002
Смотрите предопределенную процедуру ВводНового(Копирование) - параметр "Копирование" там передается совсем не случайно.
7. na688 15.02.21 13:52 Сейчас в теме
1) Чтобы не было конфликтов по нумерации, длину номера увеличить с 6 до 8.
2) в Вашей версии УСН вставку вставить в процедуру ВводНового форме счета, после строки "Если Копирование=1 Тогда"
3) Первый документ сделать с номером "0000". Нумерация счетов при создании будет - 0001, 0002, 0003 и т.д. А при копировании нумерация будет 00001/01, 00002/02 и т.д.

Процедура ВводНового(Копирование, ДокОснование);
	
	Новый = 1;
	Если Копирование = 1 Тогда	//копирование документа
		
		// вставка. добавляем нумерацию счетов с "/" при вводе копированием
		НомерГлавногоДокумента = ДокОснование.НомерДок;
		Слеш = Найти(НомерГлавногоДокумента, "/");
		Если Слеш>0 Тогда
			НомерГлавногоДокумента = Сред(Лев(НомерГлавногоДокумента,Слеш-1),2);
		КонецЕсли;
		
		УстановитьНовыйНомер("0"+СокрЛП(НомерГлавногоДокумента)+"/");
		// конец вставки
		
		
		Возврат;
	КонецЕсли;
	РасчетныйСчет = глЗначениеПоУмолчанию("ОсновнойБанковскийСчет");
	ВариантОтправки = 1;
	ТипЦен = ?(ПустоеЗначение(глЗначениеПоУмолчанию("ОсновнойСклад"))=1, "", глЗначениеПоУмолчанию("ОсновнойСклад").ТипЦен);
	Форма.НДС.Видимость(0);
КонецПроцедуры
Показать
9. na688 16.02.21 09:08 Сейчас в теме
		// вставка. добавляем нумерацию счетов с "/" при вводе копированием в ВводНового()
		// ДокументОснование - это новый созданный реквизит документа счет. Тип реквизита: Документ.Счет
		НомерГлавногоДокумента = ДокОснование.НомерДок;
		Слеш = Найти(НомерГлавногоДокумента, "/");
		Если Слеш>0 Тогда
			НомерГлавногоДокумента = Сред(Лев(НомерГлавногоДокумента,Слеш-1),2);
			ДокументОснование = ДокОснование.ДокументОснование;
		Иначе
			ДокументОснование = ДокОснование;
		КонецЕсли;
		
		УстановитьНовыйНомер("0"+СокрЛП(НомерГлавногоДокумента)+"/");
		ЗаполнитьТЧПрикопировании(ДокументОснование);
		// конец вставки

// ТЧПрикопировании(ДокОснование) для заполнения ТЧ очередного подчиненного счета.
// Передается ссылка на главный счет
// Из количеств товаров в главном счете вычитаем выписанные количества этого же товара во всех подчиненных счетах 
// Результат заносим в ТЧ очередного подчиненного счета.
Процедура ЗаполнитьТЧПрикопировании(ДокОснование)
	Перем Запрос, ТекстЗапроса;
	
	// найдем что уже выписано в других счетах
	Запрос = СоздатьОбъект("Запрос");
	ТекстЗапроса = 
	"//{{ЗАПРОС(Запрос)
	|Период с (НачГода(ТекущаяДата())) по (КонГода(ТекущаяДата()));
	|ОбрабатыватьДокументы все;
	|Обрабатывать НеПомеченныеНаУдаление;
	|Без итогов;
	|Товар = Документ.Счет.Товар;
	|Количество = Документ.Счет.Количество;
	|ДокументОснование = Документ.Счет.ДокументОснование;
	|Функция КоличествоСумма = Сумма(Количество);
	|Группировка Товар без групп;
	|Условие(ДокументОснование = ДокОснование);
	|"//}}ЗАПРОС
	;
	// Если ошибка в запросе, то выход из процедуры
	Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
		Возврат;
	КонецЕсли;

	Табл = СоздатьОбъект("ТаблицаЗначений");
	ДокОснование.ВыгрузитьТабличнуюЧасть(Табл);
	
	// Вычитаем
	Пока Запрос.Группировка() = 1 Цикл
		НС=0;
		Если Табл.НайтиЗначение(Запрос.Товар,НС,"Товар")>0 Тогда
			НовоеКоличество = Табл.ПолучитьЗначение(НС,"Количество")-Запрос.КоличествоСумма;
			Если НовоеКоличество>0 Тогда
				Табл.УстановитьЗначение(НС,"Количество",НовоеКоличество);
			Иначе
				Табл.УдалитьСтроку(НС);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	// пересчитываем суммы в ТЧ документа
	ЗагрузитьТабличнуюЧасть(Табл);
	ВыбратьСтроки();
	Пока ПолучитьСтроку()=1 Цикл
		Пересчет("Количество");
	КонецЦикла;
КонецПроцедуры	
// ТЧПрикопировании(ДокОснование)
Показать
8. Veika 25 15.02.21 14:52 Сейчас в теме
10. Иваныч 23 22.12.21 16:57 Сейчас в теме
Я скорее всего сделал бы отдельный годовой договор по данному клиенту и выписывал бы счета к оплате. Или не совсем правильно так было бы?
Оставьте свое сообщение

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