Решение выполнено на "каркасной конфигурации" https://1c.ru/spec/questions.htm.
Описание решения:
1. в документ РасходнаяНакладная ТабличнаяЧасть СписокНоменклатуры добавлен реквизит СрокГодности типа Дата.
2. в РегистрНакопления.ОстаткиНоменклатуры добавлено измерение СрокГодности типа Дата.
3. в РегистрНакопления.ОстаткиНоменклатуры добавлена неосновная ФормаОстаткиПоСрокамГодности, в ней
3.1 добавлен реквизит ОстаткиПоСрокамГодности типа ДинамическийСписок Основная таблица - РегистрНакопления.ОстаткиНоменклатуры.Остатки
3.2 в таблице ДинамическогоСписка отключена КоманднаяПанель, отображены колонки СрокГодности, КоличествоОстаток, определён обработчик Выбор()
&НаКлиенте
Процедура ОстаткиПоСрокамГодностиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
РезультатВыбора = Новый Структура("СрокГодности, КоличествоОстаток");
ЗаполнитьЗначенияСвойств(РезультатВыбора, Элемент.ТекущиеДанные);
ОповеститьОВыборе(РезультатВыбора);
КонецПроцедуры
4. добавлена основная форма документа РасходнаяНакладная
4.1 определена клиентская переменная модуля формы (используется для передачи Номенклатуры между обработчиками событий формы)
&НаКлиенте
Перем ВыбраннаяНоменклатура;
4.2 для поля Номенклатура таблицы СписокНоменклатуры определён обработчик ОбработкаВыбора():
&НаКлиенте
Процедура СписокНоменклатурыНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВыбраннаяНоменклатура = ВыбранноеЗначение;
ПараметрыОткрытия = Новый Структура("Отбор", Новый Структура("Номенклатура", ВыбраннаяНоменклатура));
ОткрытьФорму("РегистрНакопления.ОстаткиНоменклатуры.Форма.ФормаОстаткиПоСрокамГодности", ПараметрыОткрытия, Элементы.СписокНоменклатуры);
КонецПроцедуры
4.3 для таблицы СписокНоменклатуры определён обработчик ОбработкаВыбора():
&НаКлиенте
Процедура СписокНоменклатурыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Элемент.ТекущиеДанные.Номенклатура = ВыбраннаяНоменклатура;
Элемент.ТекущиеДанные.СрокГодности = ВыбранноеЗначение.СрокГодности;
Элемент.ТекущиеДанные.Количество = ВыбранноеЗначение.КоличествоОстаток;
КонецПроцедуры
По многим пунктам возможно альтернативное решение (отличающееся от описанного), например:
- В динамическом списке остатков по срокам годности используется основная таблица Остатки. Чаще можно встретить произвольный запрос с параметром. С точки зрения экзамена, описанный вариант представляется более предпочтительным.
- В модуле формы используется переменная ВыбраннаяНоменклатура. Другой вариант - передача номенклатуры из формы остатков по срокам годности вместе с Количеством и СрокомГодности.
Если есть мнение относительно корректности, правильности описанного решения, добавьте, пожалуйста, в комментарии.
Ограничение ответственности.
Материалы этой публикации предоставляются "как есть". Вы можете пользоваться ими, вносить изменения.
Автор не гарантирует, что результаты использования будут соответствовать Вашим ожиданиям.
Ответственности за прямой или косвенный ущерб, за возможные недостатки предоставленных материалов, а также за результаты их использования автор не несет.
Вы используете материалы этой публикации (включая приложенные файлы) на свой риск и под свою ответственность.