Перейти к содержимому


Загрузил

Тема поддержки файла Информация

  • Загружен: Mar 02 2014 06:00
  • Последнее обновление: Mar 02 2014 06:00
  • Размер: 10.52К
  • Просмотров: 245
  • Скачан: 0
Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

Виртуализация документов в запросах

- - - - -



Суть метода заключается в том, чтобы точечно вставить изменение непосредственно перед выполнением кода запроса.
Например, в типовой конфигурации УТ есть запрос по печати расходной накладной в модуле объекта:
ВЫБРАТЬ
РеализацияТоваровУслуг.Номенклатура,

Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
УПОРЯДОЧИТЬ ПО
Метка,
НомерСтроки
Этот запрос помещается в текст запроса Запрос.Текст, затем вызывается выполнение:
ЗапросТовары = Запрос.Выполнить().Выгрузить();
Для того, чтобы воспользоваться виртуализацией и напечатать текущий модифицированный документ из памяти, а не хранящийся в базе данных, достаточно вызвать метод перед выполнением запроса:
ОбработатьЗапросПоВиртуальномуДокументу(Запрос, Ссылка.ПолучитьОбъект(), ЭтотОбъект());
Этот метод заменяет обращения к таблицам документа на обращения к виртуальным таблицам, помещаемым в менеджер временных таблиц.
Функция позволяет можно заменить табличные части и реквизиты шапки документа.

Более интересное применение виртуализации – модификация документа перед его проведением.
Например, в УТ серии должны храниться в документе по одной строке на каждую серию. Это неудобно для пользователей. Поэтому можно серии вынести в отдельную таблицу, но при проведении эмулировать документ с заполненными сериями, т.е. проставлять для каждой строки серию. В этом случае и пригодится вызов виртуализации при контроле остатков, запросе по табличной части документа и т.п.
Демонстрационная обработка для УТ
В обработке-примере используется документ РеализацияТоваровУслуг из УТ.
В обработку скопирована процедура печати накладной.
Перед вызовом каждого из двух запросов добавлена строка:
ОбработатьЗапросПоВиртуальномуДокументу(Запрос, Ссылка.ПолучитьОбъект(), ЭтотОбъект);
Этого достаточно, чтобы печатная форма брала объект из памяти, а не из базы данных.
В форме можно нажать кнопку «Показать форму документа», внести изменения в документ, затем, не закрывая форму документа, нажать кнопку «Распечатать документ» и получить печатную форму накладной по несохраненному в базе объекту.

 



Администрация не несет ответственности за возможный вред, причиненный этим материалом.





  • 8618 Всего файлов
  • 9 Всего категорий
  • 45 Всего авторов
  • 22829 Всего загрузок
  • Акт списания ТМЦ Последний файл
  • kozavva Последний автор

0 посетителей за последние 15 минут

0 пользователей, 0 гостей, 0 анонимных