gifts2017

Подстановка банковского счета в связанные документы по временной хронологии

Опубликовал Тарас Курдельчук (softgarant) в раздел Обработки - Обработка документов

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

Решение:

Так как написать искусственный разум, который точно и без ошибок определит какой счет нужно проставить, какой из них более важный при совпадении дат, какие нужно заменить, а какие нет практически нереально, разработана обработка подстановки счетов организации в документы.

Обработку можно использовать отдельно или же в нашем случае мы ее вшили при записи банковского счета организации.

 

Алгоритм работы обработки следующий:

1)      Обработка ищет все связанные с банковскими счетами этой организации ЗаказыПокупателей и РеализацииТоваровУслуг.  Заполняет в поле «Документ», а также в столбик «Старый счет» заполняется счет, который на данный момент проставлен в документе.

2)      Выполняется поиск подходящего счета по определенному приоритету и проставляется в столбик «Новый счет»

Приоритет «важности счета» (от меньшего к большему):

- Наименьший приоритет имеют счета, у которых не проставлены даты открытия и закрытия.

- Счет, у которого есть дата открытия, но нет даты закрытия.

- Счет, у которого есть дата закрытия, но нет даты открытия.

- Счет, у которого проставлены обе даты.

3) Поля, у которых старый и новый счет не совпадают, выделяются цветом…

4) Дальше включается пользователь и правит  то, что не правильно подобрала обработка.

5) Ну и дальше кнопка выполнить и понеслось.

Технические моменты:

- Если нужно добавить какието еще документы кроме заказов и реализаци, можно поправить запрос в обработке, от там совсем простенький.

- Наше внедрение  в справочник  банковские счета выглядит так:

// Обработчик события "ПослеЗаписи" формы
Процедура ПослеЗаписи()

	Если ТипЗнч(Владелец) = Тип("СправочникСсылка.Организации") Тогда
		Режим = РежимДиалогаВопрос.ДаНет;
		Текст = "Вы изменили банковский счет организации. Запустить обработку переподстановки банковских счетов организации в связанные документы с учетом временной хронологии?";
		Ответ = Вопрос(Текст, Режим, 0);
		Если Ответ = КодВозвратаДиалога.Да Тогда
			ОбработкаЗаменыСчета = Обработки.ПереподстановкаСчетаОрганизацииВДокументы.Создать();
			ОбработкаЗаменыСчета.Организация = Владелец;
			ОбработкаЗаменыСчета.СчетОрганизации = Ссылка;
			ОбработкаЗаменыСчета.ЗаполнитьТаблицуСвязанныхДокументов();
			ФормаОбработки = ОбработкаЗаменыСчета.ПолучитьФорму("Форма");
			
			Форма = ПолучитьФорму("Обработка.ПереподстановкаСчетаОрганизацииВДокументы.Форма.Форма");
			Если Форма.Открыта() Тогда
				Форма.Закрыть();
			КонецЕсли;

			ФормаОбработки.Открыть();
		КонецЕсли;
	КонецЕсли;

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

Надеюсь кому-то пригодится.

Скачать файлы

Наименование Файл Версия Размер
Обработка подстановки
.epf 13,52Kb
16.02.15
0
.epf 13,52Kb Скачать

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.