Программное создание элементов справочника
Здраствуйте, есть справочник "Номенклатура". Необходимо поочередно заполнять реквизиты и записать в справочник Номенклатура. Сделал поочередное заполнение, но не записывает ни в поля формы, ни в справочник, т.к. не могу понять как записывать через ОписаниеОповещения.
Само задание звучит так:
Создать обработку «ПомощникЗаполненияНоменклатуры». В данной обработке поочередно заполняются стандартные и добавленные реквизиты. После заполнения всех реквизитов должен создаться элемент справочника «Номенклатура».
Пример: При запуске обработки открывается форма обработки с полем ввода «Код» (тип данных поля ввода должен быть такой же как у реквизита Код в справочнике «Номенклатура»). После заполнения «Кода» необходимо нажать команду «Далее», вместо «Код» должно появиться поле ввода «Наименование» (тип данных поля ввода должен быть такой же как у реквизита Наименование в справочнике «Номенклатура»). После заполнения «Наименования» необходимо нажать команду «Далее» и т.д.. После заполнения всех реквизитов должен создаться элемент справочника «Номенклатура» с заполненными реквизитами ранее введенными значениями. Реализовать обработку таким образом, чтобы при добавлении новых реквизитов все работало без корректировки обработки (и в обработке появлялись новые реквизиты для заполнения), для этого необходимо использовать метаданные и программное создание элементов формы в обработке.
Мой код:
Само задание звучит так:
Создать обработку «ПомощникЗаполненияНоменклатуры». В данной обработке поочередно заполняются стандартные и добавленные реквизиты. После заполнения всех реквизитов должен создаться элемент справочника «Номенклатура».
Пример: При запуске обработки открывается форма обработки с полем ввода «Код» (тип данных поля ввода должен быть такой же как у реквизита Код в справочнике «Номенклатура»). После заполнения «Кода» необходимо нажать команду «Далее», вместо «Код» должно появиться поле ввода «Наименование» (тип данных поля ввода должен быть такой же как у реквизита Наименование в справочнике «Номенклатура»). После заполнения «Наименования» необходимо нажать команду «Далее» и т.д.. После заполнения всех реквизитов должен создаться элемент справочника «Номенклатура» с заполненными реквизитами ранее введенными значениями. Реализовать обработку таким образом, чтобы при добавлении новых реквизитов все работало без корректировки обработки (и в обработке появлялись новые реквизиты для заполнения), для этого необходимо использовать метаданные и программное создание элементов формы в обработке.
Мой код:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ЧтоДелатьПослеВводаКода = Новый ОписаниеОповещения("ПослеВводаКода", ЭтотОбъект);
ПоказатьВводСтроки(ЧтоДелатьПослеВводаКода, , "Введите код номенклатуры");
КонецПроцедуры
&НаКлиенте
Процедура ПослеВводаКода (Строка, ДополнительныеПараметры) Экспорт
Если Строка = Неопределено Тогда
Возврат;
КонецЕсли;
Код = Строка;
ЧтоДелатьПослеВводаНаименования = Новый ОписаниеОповещения("ПослеВводаНаименования", ЭтотОбъект);
ПоказатьВводСтроки(ЧтоДелатьПослеВводаНаименования, , "Введите наименование номенклатуры");
КонецПроцедуры
&НаКлиенте
Процедура ПослеВводаНаименования (Строка, ДополнительныеПараметры) Экспорт
Если Строка = Неопределено Тогда
Возврат;
КонецЕсли;
Наименование = Строка;
ЧтоДелатьПослеВводаПолногоНаименования = Новый ОписаниеОповещения("ПослеВводаПолногоНаименования", ЭтотОбъект);
ПоказатьВводСтроки(ЧтоДелатьПослеВводаПолногоНаименования, , "Введите полное наименование номенклатуры");
КонецПроцедуры
&НаКлиенте
Процедура ПослеВводаПолногоНаименования (Строка, ДополнительныеПараметры) Экспорт
Если Строка = Неопределено Тогда
Возврат;
КонецЕсли;
ПолноеНаименование = Строка;
ЧтоДелатьПослеВводаСтавкиНДС = Новый ОписаниеОповещения("ПослеВводаСтавкиНДС", ЭтотОбъект);
ПоказатьВводЗначения(ЧтоДелатьПослеВводаСтавкиНДС, , "Введите ставку НДС номенклатуры",Тип("ПеречислениеСсылка.СтавкиНДС"));
КонецПроцедуры
&НаКлиенте
Процедура ПослеВводаСтавкиНДС (Значение, ДополнительныеПараметры) Экспорт
Если Значение = Неопределено Тогда
Возврат;
КонецЕсли;
СтавкаНДС = Значение;
ЧтоДелатьПослеВводаМинКоличества = Новый ОписаниеОповещения("ПослеВводаМинКоличества", ЭтотОбъект);
ПоказатьВводСтроки(ЧтоДелатьПослеВводаМинКоличества, , "Введите минимальное количество");
КонецПроцедуры
&НаКлиенте
Процедура ПослеВводаМинКоличества (Число, ДополнительныеПараметры) Экспорт
Если Число = Неопределено Тогда
Возврат;
КонецЕсли;
МинКоличество = Число;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьНаСервере() Экспорт
КонецПроцедуры
&НаКлиенте
Процедура Записать(Команда)
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Программное создание элемента справочника
- Программное создание реквизита управляемой формы с помощью механизма расширений
- Создание элементов справочников и экземпляров документов
- Программное формирование элементов и реквизитов на управляемой форме
- Программное создание элементов в форме при использовании расширения
Найденные решения
(1) Соберите сначала список реквизитов из метаданных - вы же не знаете заведомо какие "добавленные" реквизиты есть в справочнике.
Решение через ОписаниеОповещения или "программное создание элементов формы в обработке" мне кажется не оптимальным – достаточно одного поля ввода непосредственно на форме и служебной таблицы в реквизитах.
Решение через ОписаниеОповещения или "программное создание элементов формы в обработке" мне кажется не оптимальным – достаточно одного поля ввода непосредственно на форме и служебной таблицы в реквизитах.
Прикрепленные файлы:
Визард.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Соберите сначала список реквизитов из метаданных - вы же не знаете заведомо какие "добавленные" реквизиты есть в справочнике.
Решение через ОписаниеОповещения или "программное создание элементов формы в обработке" мне кажется не оптимальным – достаточно одного поля ввода непосредственно на форме и служебной таблицы в реквизитах.
Решение через ОписаниеОповещения или "программное создание элементов формы в обработке" мне кажется не оптимальным – достаточно одного поля ввода непосредственно на форме и служебной таблицы в реквизитах.
Прикрепленные файлы:
Визард.epf
(5) Так код открыт, можете почитать. При создании на сервере заполняете служебную таблицу из метаданных справочника – нужно имя, синоним и тип значения реквизита. Кнопками навигации (Далее / Назад) переходим от реквизита к реквизиту, меняя заголовок поля ввода, ограничение типов и само значение.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот