gifts2017

Использование метода набора записей регистра накопления Загрузить () в типовой конфигурации Управление Торговлей редакции 11 на платформе 8.2

Опубликовал Александр Барбитов (shurik19) в раздел Программирование - Практика программирования

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

Использование метода набора записей регистра накопления Загрузить () в типовой конфигурации
Управление Торговлей редакции 11 на платформе 8.2

  1. Описание метода.

Синтаксис метода - Загрузить(), параметр имеет тип ТаблицаЗначений, является обязательным. Таблица значений содержит данные для заполнения набора записей. Метод загружает набор записей значениями из переданной таблицы значений. При этом все прежние записи набора удаляются. Заполняются значения доступных для записи свойств записей регистра накопления, имена которых совпали c именами колонок таблицы значений. Метод доступен на сервере , в толстом клиенте и во внешнем соединении.

      2. Обработка проведения в типовой конфигурации Управление Торговлей ред.11.

 Рассмотрим как осуществляется движение по регистрам накопления в обработке проведения конфигурации Управление Торговлей ред.11. Для этого откроем в конфигураторе модуль объекта Документа Поступление Товаров и Услуг :

ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения);

	Документы.ПоступлениеТоваровУслуг.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);

	ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);

	ЗаказыСервер.ОтразитьЗаказыПоставщикам(ДополнительныеСвойства, Движения, Отказ);
	ЗаказыСервер.ОтразитьТоварыКПоступлению(ДополнительныеСвойства, Движения, Отказ);
	ЗапасыСервер.ОтразитьТоварыНаСкладах(ДополнительныеСвойства, Движения, Отказ);

 

Первая процедура ИнициализироватьДополнительныеСвойстваДляПроведения инициализирует общие структуры, используемые при проведении документов. В структуре "ДополнительныеСвойства" создаются свойства с ключами "ТаблицыДляДвижений", "ДляПроведения". "ТаблицыДляДвижений" - структура, которая будет содержать таблицы значений с данными для выполнения движений.  "ДляПроведения" - структура, содержащая свойства и реквизиты документа, необходимые для проведения. Процедура находится в общем модуле ПроведениеСервер.

Следующая процедура ИнициализироватьДанныеДокумента, которая находится в модуле менеджера объекта Документ Поступление Товаров и Услуг заполняет таблицы необходимые для записи движений по регистрам накопления. В этой процедуре сначала получаются при помощи запроса данные из шапки документа , полученные данные передаются в качестве параметров в пакет запросов, выгрузка результата которого заполняет структуру ДополнительныеСвойства.ТаблицыДляДвижений.

Результат = Запрос.ВыполнитьПакет();

	ТаблицыДляДвижений = ДополнительныеСвойства.ТаблицыДляДвижений;
	// Результат[0] - ВтТаблицаСерииТоваров
	// Результат[1] - ВтТаблицаТовары
	ТаблицыДляДвижений.Вставить("ТаблицаЗаказыПоставщикам",                        Результат[2].Выгрузить());
	ТаблицыДляДвижений.Вставить("ТаблицаТоварыКПоступлению",                       Результат[3].Выгрузить());
	ТаблицыДляДвижений.Вставить("ТаблицаТоварыНаСкладах",                          Результат[4].Выгрузить());

 

Далее процедура общего модуля ПроведениеСервер ПодготовитьНаборыЗаписейКРегистрацииДвижений  выполняет подготовку наборов записей документа к записи движений. Очищает наборы записей от старых записей и взводит флаг записи у наборов, по которым документ имеет движения.

Следующим шагом производится запись движений в регистры накопления  в процедурах общих модулей ЗаказыСервер, ДоходыИРасходыСервер, ВзаиморасчетыСервер, ДенежныеСредстваСервер, ЗапасыСервер, СкладыСервер,  Ценообразование. Например процедура записи в регистр ТоварыНаСкладах:

Процедура ОтразитьТоварыНаСкладах(ДополнительныеСвойства, Движения, Отказ) Экспорт

	Таблица= ДополнительныеСвойства.ТаблицыДляДвижений.ТаблицаТоварыНаСкладах;
	
	Если Отказ ИЛИ Таблица.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;

	Движения.ТоварыНаСкладах.Записывать = Истина;
	Движения.ТоварыНаСкладах.Загрузить(Таблица);
	
КонецПроцедуры

 

На последнем шаге обработки проведения  в процедуре ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект) производится запись наборов и далее  очистка структуры ДополнительныеСвойства.



            3. Заключение.

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

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Призрак (davdykin) 10.09.13 17:20
Насколько я помню, данный способ рекомендован при сдаче 1С:Специалист по платформе, т.к. является более производительным, по сравнению с построчным заполнением наборов. И я думаю именно поэтому он используется в УТ 11, т.к. с производительностью на УФ большие проблемы.
2. Вика Козлова (natarezn) 17.01.14 13:47
ничего не поняла если честно. а что надо помнить то специалисту?
3. olga pt (pt_olga) 07.02.14 18:49
(2) natarezn, специалисту нужно четко помнить имя свое и точный адрес работодателя))
4. Nathan Rothschild (Rothschild) 07.02.14 19:44
(1) davdykin,
ну Рарус такой способ использует в своем УАТЕ.
в общем-то это еще со времен, наверное, 8.0 использовалось в том или ином виде.
запросом сформировал нужный движняк,
выгрузил результат в тз и загрузил тз в набор движений регистра.

5. Nathan Rothschild (Rothschild) 07.02.14 19:46
так например поступают модуле набора записей одного регистьра
для "зеркализации" движений регистра в другом регистре
с минимальным изменением таблицы движений.
6. Nathan Rothschild (Rothschild) 07.02.14 19:47
(0) так что новизна и актуальность материала статьи весьма спорна.
;))))