Первая проба пера работника во внешних обработках

Дал задачу на разработку внешней обработки. Даю обратную связь.

В форме ставить автоматическое сохранение данных:

После этого у реквизитов появится колонка «Сохранение», поставить галочку везде, кроме табличных частей, чтобы данные повторно не вводились:

Еще попросил в модуле добавить код сведений о внешней обработке.

Дизайн формы такой:

Также при создании документов он делал такой код:

// Проведение документа
Попытка
    СчетНаОплату.Записать(РежимЗаписиДокумента.Проведение);
    Сообщить("Счет на контрагента " + Строка.Контрагент + " по договору " + 
		Строка.Договор + " проведен успешно");
Исключение
    Сообщить("Ошибка при проведении счета на контрагента " + Строка.Контрагент + " по договору " + 
		Строка.Договор + ": " + ОписаниеОшибки());
КонецПопытки;

Если документ не проводился, то он не сохранялся. А т.к. тестировал он на демо-базе с одной организацией, то организацию не проставлял. В итоге документ не сохранялся.

Код поправлен был так:

// Проведение документа
		Попытка
		    СчетНаОплату.Записать(РежимЗаписиДокумента.Проведение);
		    Сообщить("Счет на контрагента " + Строка.Контрагент + " по договору " + 
				Строка.Договор + " проведен успешно");
		Исключение
		    Сообщить("Ошибка при проведении счета на контрагента " + Строка.Контрагент + " по договору " + 
				Строка.Договор + ": " + ОписаниеОшибки());
				
			// Если вдруг проведение не проходит, пытаемся просто сохранить документ
			Попытка
			    СчетНаОплату.Записать();
			    Сообщить("Счет на контрагента " + Строка.Контрагент + " по договору " + 
					Строка.Договор + " сохранен успешно");
			Исключение
			    Сообщить("Ошибка при сохранении счета на контрагента " + Строка.Контрагент + " по договору " + 
					Строка.Договор + ": " + ОписаниеОшибки());		
			КонецПопытки;	
						
		КонецПопытки;

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

По неопытности работник брал клиента из константы Компания. Что в целом имеет мало смысла.

СчетНаОплату.Организация = Константы.Компания.Получить()

Также выяснилось, что из формы документ, даже проведенный, не перепроводится, потому что не заполнена валюта, ее курс и кратность.

Также по умолчанию работник сделал без НДС. Хотя по идее нужно было бы уточнить, будет ли НДС? У клиента НДС оказалось и я отправил на доработку, чтобы НДС учитывался и проставлялась ставка НДС.

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

А вот пересчет сумм документа я уже порекомендовал, как делать, чтобы сэкономить время разработки:

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

Так, за несколько итераций, обработка была доработана.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *