helpf.pro
Регистрация

v8: Как сделать движение по регистрам

Bell
05.02.2014 17:45Прочитано: 5382
Здравствуйте
Розница 1.0
Документ - УстановкаЦенНоменклатурыВМагазине
В регистр сведений ЦеныНоменклатурыМагазинов добавил два ресурса:
Контрагент
Договор
Это надо чтобы знать поставщика товара, договор и условия договора), что бы проводить изЪятие товара, уценки и т.д.
Запись в регистр ЦеныНоменклатурыМагазинов идет из документа УстановкаЦенНоменклатурыВМагазине.

КАК при проведении документа УстановкаЦенНоменклатурыВМагазине добавить(заполнить) в регистр сведений Контрагента и его договор через ссылку (ДокументУстановкаЦен ) . Ссылка в документе УстановкаЦенНоменклатурыВМагазине.

Боюсь трогать, что бы не навредить. КАК грамотно сделать по контексту? А то я добавлю классически через цикл с перепиской значительной кода. Я думаю , что надо через СтруктураШапкиДокумента идти, но пока не представляю что делать. Направьте...

ПРОЦЕДУРА ИЗ МОДУЛЯ ОБЪЕКТА Документа УстановкаЦенНоменклатурыВМагазине.

// По результату запроса по шапке документа формируем движения по регистрам.
//
// Параметры:
// РежимПроведения - режим проведения документа (оперативный или неоперативный).
// СтруктураШапкиДокумента - выборка из результата запроса по шапке документа.
// ТаблицаПоТоварам - таблица значений, содержащая данные для проведения и проверки ТЧ Товары.
// Отказ - флаг отказа в проведении.
// Заголовок - заголовок сообщения об ошибках.
//
Код 1C v 8.х
 Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, Отказ, Заголовок);

НаборДвижений = Движения.ЦеныНоменклатурыМагазинов;
ТаблицаДвижений = НаборДвижений.Выгрузить();

// Заполним таблицу движений.
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоТоварам, ТаблицаДвижений);

НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;


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

КонецПроцедуры // ДвиженияПоРегистрам()

Изменено 05.02.14 18:13:47
Yandex
Возможно, вас также заинтересует
Реклама на портале
Bell
05.02.2014 18:52Ответ № 1
Вроде сделал и работает, но спокойствия на душе нет
Смущают циклы
КАК еще можно сделать???

Код 1C v 8.х
 
Процедура ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, Отказ, Заголовок);

НаборДвижений = Движения.ЦеныНоменклатурыМагазинов;
ТаблицаДвижений = НаборДвижений.Выгрузить();

// Начало ?????????
ТаблицаПоТоварам.Колонки.Добавить("Контрагент",Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
ТаблицаПоТоварам.Колонки.Добавить("Договор",Новый ОписаниеТипов("СправочникСсылка.Договора"));

Для каждого СтрокаТЗ Из ТаблицаПоТоварам Цикл
СтрокаТЗ.Контрагент = СтруктураШапкиДокумента.ДокументУстановкаЦен.Контрагент;
СтрокаТЗ.Договор = СтруктураШапкиДокумента.ДокументУстановкаЦен.Договор;
КонецЦикла;
// Конец ??????

// Заполним таблицу движений.
ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоТоварам, ТаблицаДвижений);


НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;

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

КонецПроцедуры // ДвиженияПоРегистрам()

Изменено 05.02.14 18:52:58
Bell
14.02.2014 10:43Ответ № 2
Вопрос закрыт!
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.