Первая проба пера работника во внешних обработках
Дал задачу на разработку внешней обработки. Даю обратную связь.
В форме ставить автоматическое сохранение данных:

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

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

Также при создании документов он делал такой код:
// Проведение документа Попытка СчетНаОплату.Записать(РежимЗаписиДокумента.Проведение); Сообщить("Счет на контрагента " + Строка.Контрагент + " по договору " + Строка.Договор + " проведен успешно"); Исключение Сообщить("Ошибка при проведении счета на контрагента " + Строка.Контрагент + " по договору " + Строка.Договор + ": " + ОписаниеОшибки()); КонецПопытки;
Если документ не проводился, то он не сохранялся. А т.к. тестировал он на демо-базе с одной организацией, то организацию не проставлял. В итоге документ не сохранялся.
Код поправлен был так:
// Проведение документа Попытка СчетНаОплату.Записать(РежимЗаписиДокумента.Проведение); Сообщить("Счет на контрагента " + Строка.Контрагент + " по договору " + Строка.Договор + " проведен успешно"); Исключение Сообщить("Ошибка при проведении счета на контрагента " + Строка.Контрагент + " по договору " + Строка.Договор + ": " + ОписаниеОшибки()); // Если вдруг проведение не проходит, пытаемся просто сохранить документ Попытка СчетНаОплату.Записать(); Сообщить("Счет на контрагента " + Строка.Контрагент + " по договору " + Строка.Договор + " сохранен успешно"); Исключение Сообщить("Ошибка при сохранении счета на контрагента " + Строка.Контрагент + " по договору " + Строка.Договор + ": " + ОписаниеОшибки()); КонецПопытки; КонецПопытки;
Я посоветовал один раз формировать представление документа и подставлять его в четырех местах. Позже я порекомендовал, что когда есть ссылка на документ, выводилась в сообщение и ссылка на документ, так более информативно.
По неопытности работник брал клиента из константы Компания. Что в целом имеет мало смысла.
СчетНаОплату.Организация = Константы.Компания.Получить()
Также выяснилось, что из формы документ, даже проведенный, не перепроводится, потому что не заполнена валюта, ее курс и кратность.
Также по умолчанию работник сделал без НДС. Хотя по идее нужно было бы уточнить, будет ли НДС? У клиента НДС оказалось и я отправил на доработку, чтобы НДС учитывался и проставлялась ставка НДС.
После доработок по валюте я увидел, что курс валют берется из регистра напрямую, посоветовал использовать типовые функции:

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

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




Свежие комментарии