Перезаполнение ставки НДС

05.09.23

Задачи пользователя - Мастера заполнения

Обработка умеет перезаполнять ставку НДС в табличных частях документов. На странице "Заказы клиентов" можно вывести список заказов с незаполненным НДС и перезаполнить. На Странице "Общее заполнение", выводится список всех документов и табличных частей с типом реквизита "СправочникСсылка.СтавкиНДС", здесь также можно перезаполнить ставку НДС.

Скачать исходный код

Наименование Файл Версия Размер
Перезаполнение Ставки НДС:
.epf 12,67Kb
15
.epf 12,67Kb 15 Скачать

После не совсем удачного перехода с КА 2.4 на КА 2.5 было обнаружено, что у некоторых документов в табличных частях не заполнена Ставка НДС.

В КА 2.4 реквизит Ставка НДС это перечисление, а в КА 2.5 это уже справочник, реквизит с типом перечисление был переименован в "УдалитьСтавкаНДС", и добавлен реквизит "СтавкаНДС" с типом справочник.

 

Страница "Заказы клиентов":

По кнопке "найти заказы клиентов с пустым НДС", показывает проведенные заказы, у которых реквизит ставка НДС не заполнен с налогообложением: ПродажаОблагаетсяНДС и ПродажаНаЭкспорт.

По кнопке "Заполнить НДС В заказах Клиентов" в отмеченных заказах проставляется НДС через обработку табличных частей из общего модуля.

Можно указать количество обрабатываемых документов, которые будут обработаны.

 

Страница "Общее заполнение":

При открытии формы на странице заполняется список документов, у которых есть реквизит с типом "СправочникСсылка.СтавкиНДС" и реквизит "СуммаНДС" в табличной части.

По нажатии кнопки "Найти документы с пустым НДС" показывает количество документов с незаполненной ставкой НДС и реквизитом Сумма НДС > 0.

По нажатию кнопки "Заполнить НДС" заполняет НДС в отмеченных документах.

При заполнении нужно выбрать источник заполнения: Справочник "Номенклатура", Реквизит "УдалитьСтавкаНДС" или фиксированное значение.

 

Исходный код:


&НаСервере
Процедура НайтиДокументыСПустымНДСНаСервере()
	
	Для Каждого СтрТаблицы Из Объект.ОбрабатываемыеДокументы Цикл
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	Документ.Ссылка КАК Ссылка
		|ИЗ
		|	[Таблица] КАК Документ
		|ГДЕ
		|	(Документ.СтавкаНДС = ЗНАЧЕНИЕ(Справочник.СтавкиНДС.ПустаяСсылка) ИЛИ Документ.СтавкаНДС = НЕОПРЕДЕЛЕНО)
		|	И Документ.СуммаНДС > 0
		|	И Документ.Ссылка.Проведен";		
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "[Таблица]", "Документ." + СтрТаблицы.Документ + "." + СтрТаблицы.ТабличнаяЧасть); 		
		СтрТаблицы.Найдено = Запрос.Выполнить().Выбрать().Количество();
		СтрТаблицы.Пометка = ?(СтрТаблицы.Найдено > 0, Истина, Ложь);
		
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура НайтиДокументыСПустымНДС(Команда)
	
	НайтиДокументыСПустымНДСНаСервере();
	
КонецПроцедуры

&НаСервере
Процедура ПриОткрытииНаСервере()
	
	Для Каждого ДокументИмя Из Метаданные.Документы Цикл
		Для Каждого ТабличнаяЧастьИмя Из ДокументИмя.ТабличныеЧасти Цикл
			Для Каждого РеквизитИмя Из ТабличнаяЧастьИмя.Реквизиты Цикл
				Если РеквизитИмя.Тип = Новый ОписаниеТипов("СправочникСсылка.СтавкиНДС") И ТабличнаяЧастьИмя.Реквизиты.Найти("СуммаНДС") <> Неопределено Тогда
					НовыйДокумент = Объект.ОбрабатываемыеДокументы.Добавить();
					НовыйДокумент.Документ = ДокументИмя.Имя;
					НовыйДокумент.ТабличнаяЧасть = ТабличнаяЧастьИмя.Имя;					
				КонецЕсли;				
			КонецЦикла;
		КонецЦикла;		
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ПриОткрытииНаСервере();
	
КонецПроцедуры

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

&НаКлиенте
Процедура ЗаполнитьНДС(Команда)
	
	Если ЗначениеЗаполнено(Объект.БратьНДСИз) Или ЗначениеЗаполнено(Объект.СтавкаНДС) Тогда 
		ЗаполнитьНДСНаСервере();
	Иначе 
		Сообщить("Необходимо выбрать источник заполнения НДС или фиксированную ставку!");
	КонецЕсли;
	
КонецПроцедуры

//-----------------Заказы клиентов------------------//

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

&НаКлиенте
Процедура ЗаполнитьНДСВзаказахКлиентов(Команда)
	
	ЗаполнитьНДСВзаказахКлиентовНаСервере();
	
КонецПроцедуры

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

&НаКлиенте
Процедура НайтиЗаказыКлиентовСПустымНДС(Команда)
	
	НайтиЗаказыКлиентовСПустымНДСНаСервере();
	
КонецПроцедуры

&НаКлиенте
Процедура ДокументыЗаказыКлиентовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	Если Поле.Имя = "ДокументыЗаказыКлиентовДокумент" Тогда
		СтандартнаяОбработка = Ложь;
		ПоказатьЗначение(,Элемент.ТекущиеДанные.Документ);
	КонецЕсли;	
	
КонецПроцедуры

//-----------------*------------------//

 

Протестировано на платформе: 1С:Предприятие 8.3 (8.3.20.1674).

Протестировано в конфигурациях: 1С:Комплексная автоматизация 2 (2.5.7.402).

 

Также Вас может заинтересовать:

  1. Редактирование отчета о розничных продажах (Розница 3)
  2. Создание / перезаполнение отчетов о розничных продажах (УТ 11, КА 2, ERP 2)
  3. Редактирование отчета о розничных продажах (Розница 2, УТ 11, КА 2, ERP 2, БП 3)
  4. Перезаполнение ставки НДС
  5. Email рассылка в формате HTML
  6. Выгрузка внешних отчетов и обработок
  7. Редактор регистра Роли и исполнители
  8. Выгрузка данных из УПП 1.3 в систему NEON
  9. Универсальный передаточный документ (УПД) (постановление №534 с 01.07.2021)
  10. Подпись в почтовом клиенте 1С управляемые формы HTML кодом
  11. Выгрузка товара из 1С: УТ11 в формате XML для сайта avito.ru (Авито: Личные вещи)
  12. Автоматическое гашение ВСД в конфигурации 1С:Управление ветеринарными сертификатами. Интеграция с ФГИС Меркурий

Обработка НДС заполнение Справочник Перечисление СтавкаНДС УдалитьСтавкаНДС Комплексная автоматизация

См. также

Автоматический подбор и заполнение ГТД для 1С:Бухгалтерия предприятия 8, редакция 3.0 (платформа 8.2 и 8.3)

Операции по ВЭД Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Мастера заполнения Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

СКАЧАЙТЕ И ПОПРОБУЙТЕ БЕСПЛАТНО! Данная обработка расширяет функционал типовой конфигурации «1С:Бухгалтерия предприятия» и позволяет осуществлять автоматическое заполнение ГТД в документах «Реализация товаров и услуг», «Списание товаров», «Отчет о розничных продажах», «Отчет комиссионера (агента) о продажах», «Требование-накладная», «Возврат товаров от покупателя», «Комплектация номенклатуры», «Безвозмездная передача», «Отчет производства за смену». Обработка предназначена для работы в конфигурации «1С:Бухгалтерия предприятия 8, редакция 3.0» Есть версия обработки оптимизированная для работы в 1CFresh

8280 руб.

19.06.2012    137222    251    81    

214

Заполнение описания номенклатуры с помощью ChatGPT

Мастера заполнения Нейросети Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ ChatGPT. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ. Прошло аудит на 1cfresh.com. Версия для автоматического заполнения

5000 руб.

13.03.2023    16371    43    49    

74

Заполнение описания номенклатуры с помощью GigaChat

Нейросети Мастера заполнения Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Расширение для заполнения описания номенклатуры с помощью модели ИИ GigaChat от Сбера. Расширение формирует продающее описание товара по его наименованию с помощью модели искусственного интеллекта. Будет полезно для владельцев интернет магазинов, каталогов товаров и продающих через маркетплейсы. Адаптировано для основных конфигураций: УТ, ЕРП, КА, УНФ.

5000 руб.

08.11.2023    1577    7    0    

15

Списание остатков по счету документом Операция

Мастера заполнения Бухгалтерский учет Управляемые формы 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Универсальная обработка заполнения документа Операция. Позволяет перенести остатки или обороты с одного счета на другой. Или изменить аналитику.

5000 руб.

29.05.2019    11269    6    5    

7

Заполнение справочника "Автоработы" и справочника "Номенклатура" в Альфа-Авто

Логистика, склад и ТМЦ Мастера заполнения Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Обработка заполняет справочник "Автоработы" 3000 авторабот (реквизит сопоставления "Наименование") и справочник "Номенклатура" 200000 артикулами запчастей на популярные модели автомобилей (реквизиты сопоставления "Наименование" и "Артикул").

2000 руб.

07.10.2022    6560    15    0    

13

Автоматический ввод документов в 1С:УТ 11 (Заказ, Акт или Реализация, Счет-фактура при необходимости)

Мастера заполнения Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Автоматическое массовое создание заказов и актов(реализаций) в "1С:Управление торговлей 11" уменьшает затраты времени на ввод однотипных документов для Ваших контрагентов. Если у Вас список клиентов, которым Вы ежемесячно выставляете закрывающие документы (счет, акт, счет-фактура), то с помощью данного решения Вы сократите время работы во много раз. Обработка для группового создания актов в "1С:Управоение торговлей ред.11" автоматизирует процесс составляения документов и экономит Ваше ценное время.

2760 руб.

09.04.2020    25341    21    7    

12

Заполнение реквизитов контрагентов по ИНН и наименованию для УТ 10.3 и 10.2 и других конфигураций (апрель 2022 года)

Обмен с ГосИС Мастера заполнения Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Простое решение по автоматическому заполнению реквизитов контрагентов (юридических и физических лиц) по ИНН и наименованию. Может использоваться в любых конфигурациях 1С Предприятие 8: УТ 10.2, УТ 10.3 и т.д. Обновление механизмов 2022 года! Программный код открыт.

1200 руб.

23.07.2015    64088    308    15    

177
Оставьте свое сообщение