1С-Предприятие 8.0. Практическое пособие разработчика


Оптимизация документа ОказаниеУслуги


Первое, что мы сделаем для оптимизации документа "ОказаниеУслуги" – удалим реквизит табличной части "Стоимость", который нам не понадобится в будущем.

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

После этого можно полностью удалить содержимое обработчика события "ОбработкаПроведения" в модуле документа и создать в нем заготовку процедуры проведения. Текст запроса, выполняемого в режиме оперативного проведения, будет отличаться от запроса, выполняемого при неоперативном проведении, поэтому формирование текста запроса мы включим в условие Если...Иначе...КонецЕсли:

Процедура ОбработкаПроведения(Отказ, Режим)

   Запрос = Новый Запрос;

   Если Режим = РежимПроведенияДокумента.Оперативный Тогда

       Запрос.Текст =

       ;

   Иначе

       Запрос.Текст =

       ;

   КонецЕсли;

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

 

Вызовем конструктор запроса и раскроем таблицу "ПереченьНоменклатуры" табличной части документа "ОказаниеУслуги" и выберем из нее поля:

·"Номенклатура",
·"Количество",
·"ВидНоменклатуры",
·"Сумма".[238]

Эти поля будут нужны нам для задания значений измерений регистров и их ресурсов. Кроме того, поле "ВидНоменклатуры" понадобится нам для анализа того, чем является номенклатура, указанная в документе: материалом или услугой:

Теперь задумаемся о том, что для указания значений ресурса "Стоимость" регистров "СтоимостьМатериалов" и "Продажи" нам понадобится рассчитать текущую стоимость номенклатуры как частное стоимости остатка этого материала и его оставшегося количества.

Поэтому добавим к списку выбранных таблиц еще две таблицы:

·"РегистрНакопления.СтоимостьМатериалов.Остатки",
·"РегистрНакопления.ОстаткиМатериалов.Остатки":




Начало  Назад  Вперед



Книжный магазин