Убираем развернутое сальдо и неверные итоги валютных взаиморасчетов

21.11.22

Задачи пользователя - Адаптация типовых решений

Иногда случается так, что в ОСВ появляется развёрнутое сальдо, которое видно только при включенном выводе валютных сумм или же в итогах, как показано на изображении, другая цифра. Проблема связана в неверным приведением типов. Для этого создана данная обработка.

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

Наименование Файл Версия Размер
Убрать развёрнутое сальдо и неверные итоги валютных взаиморасчетов v 1.0:
.epf 6,79Kb
3
.epf 6,79Kb 3 Скачать
Убираем развернутое сальдо и неверные итоги валютных взаиморасчетов v 1.1:
.epf 7,57Kb
7
.epf 7,57Kb 7 Скачать

UPD В v1.1 Добавлена кнопка проверки и исправление идёт сразу по трём контурам, Валюты, Направления деятельности, Подразделения.

 

Для исправления этой проблемы необходимо выполнить приведение типов, в старых документах (а иногда и в новых) 1С зачастую выполняют запись то значения NULL, то значения Справочники.Валюты.ПустаяСсылка что приводит к некорректному отображению в ОСВ.

Создана обработка, которая приводит значения к корректному NULL. Обработка "В одну кнопку", разумеется, сначала необходимо запустить её на тестовой базе.

Выполнялась проверка данного действия на ERP 2.5.8.245 и ERP 2.5.7.402, также, вероятнее всего, подойдёт и для КА соответствующих версий. 

Код открытый. Обработка одноразовая, однако можно приведение типов внедрить и в регламентное задание, и в событие перед записью в регистр. 


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

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

			Если НоваяПроводка.СуммаВРКт = Null Тогда     
				//Сообщить("Исправлен тип пустого поля проводки ВРКт " + Результат.Регистратор);
				НоваяПроводка.СуммаВРКт = 0;	
			КонецЕсли;	
				
			Если НоваяПроводка.СуммаПРКт = Null Тогда     
				//Сообщить("Исправлен тип пустого поля проводки ПРКт " + Результат.Регистратор);
				НоваяПроводка.СуммаПРКт = 0;	
			КонецЕсли;
			
			Если НоваяПроводка.ВалютаДТ = Справочники.Валюты.ПустаяСсылка() Тогда
				НоваяПроводка.ВалютаДТ = NULL;		
			КонецЕсли;
			
			Если НоваяПроводка.ВалютаКТ = Справочники.Валюты.ПустаяСсылка() Тогда
				НоваяПроводка.ВалютаКТ = NULL;		
			КонецЕсли;			            
			
			Для Каждого Субконто Из НоваяПроводка.СубконтоДт Цикл
				Если НЕ ЗначениеЗаполнено(Субконто.Ключ) Тогда 
					НоваяПроводка.СубконтоДт.Удалить(Субконто.Ключ);	
				КонецЕсли;
			КонецЦикла;    
			
			Для Каждого Субконто Из НоваяПроводка.СубконтоКт Цикл
				Если НЕ ЗначениеЗаполнено(Субконто.Ключ) Тогда 
					НоваяПроводка.СубконтоКт.Удалить(Субконто.Ключ);	
				КонецЕсли;
			КонецЦикла;
			
		КонецЦикла;		                              
		
		РегистрыБухгалтерии.Хозрасчетный.ВыполнитьДопОбработкуПроводок(НовыеПроводки);  
		
		Для Каждого НоваяПроводка из НовыеПроводки Цикл 
			
			Если НЕ ЗначениеЗаполнено(НоваяПроводка.Регистратор) Тогда
				НовыеПроводки.Удалить(НоваяПроводка);
				//Сообщить("Новая проводка в документе " + Результат.Регистратор);
				Продолжить;
			КонецЕсли;		
					
		КонецЦикла;        
		
		НовыеПроводки.ОбменДанными.Загрузка = Истина;
		НовыеПроводки.Записать();  
		
	КонецЦикла; 
	
	Сообщить("Готово.");
	
КонецПроцедуры 

Если будете запускать на других конфигурациях, строчку 

РегистрыБухгалтерии.Хозрасчетный.ВыполнитьДопОбработкуПроводок(НовыеПроводки);

можно убрать, она в принципе вспомогательная. Запускает типовую обработку проводок.

 

Было время, я делал в событии перед записью хозрасчетного обработку проводок, вот пример:

Процедура актУдалитьПустыеВалютыВПроводках(Проводки) Экспорт

	Для Каждого СтрокаТЧ из Проводки Цикл
		Если СтрокаТЧ.ВалютаДТ = Справочники.Валюты.ПустаяСсылка() Тогда
			СтрокаТЧ.ВалютаДТ = NULL;		
		КонецЕсли;
		
		Если СтрокаТЧ.ВалютаКТ = Справочники.Валюты.ПустаяСсылка() Тогда
			СтрокаТЧ.ВалютаКТ = NULL;		
		КонецЕсли;
	КонецЦикла;

КонецПроцедуры

 

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4741    10    5    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

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

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3162    4    0    

20

Каждому менеджеру нужен свой Excel

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

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    3934    dimanich70    11    

14

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1872    dimanich70    8    

14

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    2156    19    avmartynov    14    

44

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2327    28    progmaster    8    

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