• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Проведение документа с подчинённым справочником

  • Автор темы HeadD
  • Дата начала
H

HeadD

Прошу помочь в следующем:

В 7.7 разрабатывается конфигурация серийного учёта медикаментов в аптеке, присутствуют 2 справочника:

Медикаменты (Реквизит "РозничаяЦена")
Серии (Подчинён Медикаменты)

В табличной части документа реквизиты: Серия (Справочник.Серии), Количество, Сумма, РозничнаяЦена.
При вводе Серии, как полагается, открывается сначала Медикаменты, а за ним Серии принадлежащие конкретному элементу.

Вопрос, как при проведении обеспечить сохранение в реквизите соответствующего элемента справочника “Медикаменты” новой розничной цены?
Написал код, прошу дополнить:

Процедура ОбработкаПроведения()

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
СпрМед=СоздатьОбъект("Справочник.Медикаменты");
СпрСерии=СоздатьОбъект("Справочник.Серии");

СпрМед.РозничнаяЦена= ;

Регистр.ОстаткиСерий.Серия=Серия;
Регистр.ОстаткиСерий.Количество=Количество;
Регистр.ОстаткиСерий.ДвижениеПриходВыполнить();

КонецЦикла;
КонецПроцедуры

Понимаю, что надо ИспользоватьВладельца/ТекущийЭлемент(), но как?
Заранее благодарю.
 
V

vitfil

Дополняю!
СпрМед.РозничнаяЦена= 5;
Угадал? Только вот зачем это делать в модуле проведения, мне, увы, эта истина так и не открылась.
 
H

HeadD

vitfil
Ты или не понял о чём речь, или ты просто поц
 
N

NomadSoul

Наверное, строку "СпрМед.РозничнаяЦена= ;" нужно переписать так:

СпрМед.НайтиЭлемент(Серия.Владелец);
СпрМед.РозничнаяЦена = РозничнаяЦена;
//Если реквизит периодический то СпрМед.РозничнаяЦена.Установить(Дата,РозничнаяЦена);
СпрМед.Записать();
 
H

HeadD

NomadSoul , спасибо, именно это и было нужно.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!