Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:11

Открытие формы выбора справочника из ТЧ документа

Автор Изо_льда, 06 окт 2021, 22:41

0 Пользователей и 1 гость просматривают эту тему.

Изо_льда

Здравствуйте. Совсем недавно начала изучать 1С.
Не совсем понимаю как занести запись из формы выбора в табличную часть.

Есть Документ_ТМЦ. В документе присутствует табличная часть "Перечень". При создании записи в табличной части нужна проверка. Если столбик "Номенклатура" текущей строки пуст, то вызывается форма выбора Справочника "Номенклатура". Выбирается значение из него и записывается выбранное значение в "Перечень".

Пустую строку проверяю как ПустаяСтрока(). Форму открываю при помощи ОткрытьФорму(). Но никак не получается записать выбранное значение в форме выбора.

Если ПустаяСтрока(Элементы.Перечень.ТекущиеДанные.Номенклатура) Тогда
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора");
КонецЕсли;

Изо_льда


nvj84

Не совсем понимаю что вы хотите получит в итоге. Может проще проверку заполнения использовать для этого. Первый вариант по кнопке если у текущей строки не заполнено поле открывается форма.
&НаКлиенте
Процедура ДелатьХорошо(Команда)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(ТекущиеДанные.Номенклатура) Тогда
ПараметрыОповещения = Новый Структура("ТекущиеДанные", ТекущиеДанные);
ОповещениеВыборНоменклатуры = Новый ОписаниеОповещения( "ВыполнитьПослеВыбораНоменклатуры", ЭтотОбъект, ПараметрыОповещения);
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",,,,,, ОповещениеВыборНоменклатуры, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьПослеВыбораНоменклатуры(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если РезультатЗакрытия <> Неопределено Тогда
ДополнительныеПараметры.ТекущиеДанные.Номенклатура = РезультатЗакрытия;
КонецЕсли;
КонецПроцедуры
Второй вариант при добавлении новой строки табличной части открывается форма.
&НаКлиенте
Процедура ТоварыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если Не Копирование Тогда
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",,,,,, Новый ОписаниеОповещения("ТоварыПередНачаломДобавленияЗавершение", ЭтотОбъект), РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ТоварыПередНачаломДобавленияЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
Объект.Товары[Объект.Товары.Количество() - 1].Номенклатура = Результат;
КонецЕсли;
КонецПроцедуры

Изо_льда

Действительно, не очень понятно сформулировала необходимый результат.

Необходимо, чтобы при добавлении новой записи в ТЧ документа открывалась форма выбора номенклатуры (в форме содержится код номенклатуры и её наименование). И когда в форме выбора выбрана номенклатура, она заносилась в строчку ТЧ "Номенклатура".

Изо_льда

nvj84, сделала как второй вариант. Спасибо за ваш ответ. Всё работает.

nvj84

Еще вариант пока не выбыран товар надоедливо выдает окна выбора
&НаКлиенте
Процедура ТоварыПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
ТекущиеДанные = Элемент.ТекущиеДанные; //Элементы.Товары.ТекущиеДанные
Если НЕ ЗначениеЗаполнено(ТекущиеДанные.Номенклатура) Тогда
Отказ = Истина;
ПараметрыОповещения = Новый Структура();
ПараметрыОповещения.Вставить("ТекущиеДанные", ТекущиеДанные);
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",,,,,, Новый ОписаниеОповещения("ТоварыПередОкончаниемРедактированияЗавершение", ЭтотОбъект, ПараметрыОповещения), );
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ТоварыПередОкончаниемРедактированияЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ДополнительныеПараметры.ТекущиеДанные.Номенклатура = Результат;
КонецЕсли;
КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск