Заполнение счетов учета контрагентов и номенклатуры по умолчанию. УНФ 3.0
Добавил предопределенного контрагента МЫ, столкнулся с тем, что не дает записывать контрагента — не заполнены обязательные реквизиты, не видимые на форме:
Посмотрел как эти поля заполнены у других контрагентов:
Решил с помощью заплатки на модуль справочника Контрагенты:
&После("ПередЗаписью") Процедура ген_ПередЗаписью(Отказ) Если ЭтотОбъект.ИмяПредопределенныхДанных = "МЫ" Тогда ген_КС.ПрисвоитьПустому(ЭтотОбъект.СчетУчетаАвансовПокупателя, ПланыСчетов.Управленческий.РасчетыПоАвансамПолученным); ген_КС.ПрисвоитьПустому(ЭтотОбъект.СчетУчетаАвансовПоставщику, ПланыСчетов.Управленческий.РасчетыПоАвансамВыданным); ген_КС.ПрисвоитьПустому(ЭтотОбъект.СчетУчетаРасчетовСПокупателем, ПланыСчетов.Управленческий.РасчетыСПокупателями); ген_КС.ПрисвоитьПустому(ЭтотОбъект.СчетУчетаРасчетовСПоставщиком, ПланыСчетов.Управленческий.РасчетыСПоставщиками); ген_КС.ПрисвоитьПустому(ЭтотОбъект.ВидКонтрагента, Перечисления.ВидыКонтрагентов.ЮридическоеЛицо); ген_КС.ПрисвоитьПустому(ЭтотОбъект.ген_Перевозчик, Истина); КонецЕсли; КонецПроцедуры
Правда, существующий объект из формы записать нельзя — проверки срабатывают до записи. Но это решаемо.
Плохо, что объекты в УНФ не заполняются по умолчанию. Это же касается и номенклатуры.
Тут готового кода нет, могу дать лишь образец:
//Поле "Способ списания" не заполнено Если ЕстьРеквизитНоменклатуры("МетодОценки") Тогда ПрисвоитьПустому(ОбщееМетодОценки, Перечисления.МетодОценкиЗапасов.ПоСредней); КонецЕсли; // Поле "Способ пополнения" не заполнено Если ЕстьРеквизитНоменклатуры("СпособПополнения") Тогда ПрисвоитьПустому(ОбщееСпособПополнения, Перечисления.СпособыПополненияЗапасов.Закупка) КонецЕсли; //Поле "Счет учета запасов" не заполнено Если ЕстьРеквизитНоменклатуры("СчетУчетаЗапасов") Тогда ПрисвоитьПустому(ОбщееСчетУчетаЗапасов, ПланыСчетов.Управленческий.ТоварыПродукция); КонецЕсли; //Поле "Счет учета затрат" не заполнено Если ЕстьРеквизитНоменклатуры("СчетУчетаЗатрат") Тогда ПрисвоитьПустому(ОбщееСчетУчетаЗатрат, ПланыСчетов.Управленческий.ПрочиеРасходы); КонецЕсли; //Поле "Направление деятельности" не заполнено Если ЕстьРеквизитНоменклатуры("НаправлениеДеятельности") Тогда ПрисвоитьПустому(ОбщееНаправлениеДеятельности, Справочники.НаправленияДеятельности.ОсновноеНаправление); КонецЕсли;
UPD 2023-12-13: Увы, предопределенные элементы создаются еще в конфигураторе, т.е. в событие формы ПриСозданииНаСервере:
&НаСервере Процедура ген_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) Если Объект.Ссылка.ИмяПредопределенныхДанных = "МЫ" Тогда ген_КС.ПрисвоитьПустому(Объект.СчетУчетаАвансовПокупателя, ПланыСчетов.Управленческий.РасчетыПоАвансамПолученным); ген_КС.ПрисвоитьПустому(Объект.СчетУчетаАвансовПоставщику, ПланыСчетов.Управленческий.РасчетыПоАвансамВыданным); ген_КС.ПрисвоитьПустому(Объект.СчетУчетаРасчетовСПокупателем, ПланыСчетов.Управленческий.РасчетыСПокупателями); ген_КС.ПрисвоитьПустому(Объект.СчетУчетаРасчетовСПоставщиком, ПланыСчетов.Управленческий.РасчетыСПоставщиками); ген_КС.ПрисвоитьПустому(Объект.ВидКонтрагента, Перечисления.ВидыКонтрагентов.ЮридическоеЛицо); ген_КС.ПрисвоитьПустому(Объект.ген_Перевозчик, Истина); КонецЕсли; КонецПроцедуры
Среда: 3.0.5.211 Объем: 0.5 час
Свежие комментарии