Ввод на основании в расширении конфигурации 1С
Приветствую уважаемый читатель, в данной статье я хочу поделиться своим опытом реализации механизма «Ввод на основании» в 1С при помощи расширения конфигурации.
Для примера разработки возьмем типовую конфигурацию «Управление торговлей 11.4».
Задача: Реализовать возможность ввода документа «Реализация товаров и услуг» на основании документа «Счет на оплату клиенту«.
-
Contents
Добавление расширения в конфигурацию
В конфигураторе, в главном меню переходим в раздел «Конфигурация» — «Расширения конфигурации».
Откроется список всех расширений данной системы. Выбираем необходимое расширение или создаем новое. Для примера создадим новое расширение «Пример ввода на основании в расширении» в назначении расширения укажем «Дополнение».
-
Работа с расширением
Мы добавили новое расширение и теперь можно приступать к работе с ним.
Для этого в списке расширение двойным кликом или с помощью контекстного меню откроем конфигурацию нашего расширения
Мы будем работать с двумя документами «Счет на оплату клиенту» и «Реализация товаров и услуг», поэтому добавим эти два объекта в наше расширение
На момент написания статьи, расширения конфигурации 1С не поддерживают стандартный механизм ввода на основании, поэтому нам придется описать его вручную, приступим.
-
Создание механизма «Ввод на основании«
Добавим общую команду «PROSTO_СоздатьРеализациюНаОснованииСчета«, заполним ее свойства и опишем обработчик команды.
В ветке конфигурации, в разделе «Общие», находим раздел «Общие команды» и добавляем свою команду.
Переходим с свойства общей нашей общей команды. В свойствах нам необходимо указать группу, в которую входит команда по умолчанию и тип параметра команды.
Для группы указываем «Командная панель формы. Создать на основании»
Для типа параметра команды указываем «СчетНаОплатуКлиенту«, который мы ранее добавили в наше расширение
Переходим в модуль команды и описываем обработку нашей глобальной команды:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) СтруктураДанных = Новый Структура("Основание" , ПараметрКоманды); ПараметрыФормы = Новый Структура("ЗначенияЗаполнения" , СтруктураДанных); ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка); КонецПроцедуры
На этом работа с глобальной командой завершена.
В основной ветке конфигурации находим документ «РеализацияТоваровУслуг«, открываем модуль объекта, находим процедуру «ОбработкаЗаполнения» и добавляем ее к нам в расширение с типом вызова «ВызватьПосле»
В добавленной процедуре напишем простой код для заполнения нашего документа по основанию
&После("ОбработкаЗаполнения") Процедура PROSTO_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда Если ДанныеЗаполнения.Свойство("Основание") Тогда ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения.Основание); Если ТипДанныхЗаполнения = Тип("ДокументСсылка.СчетНаОплатуКлиенту") Тогда ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения.Основание); Для Каждого СтрокаОснование Из ДанныеЗаполнения.Основание.Товары Цикл НовСтр = Товары.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр, СтрокаОснование); КонецЦикла; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры
Так же необходимо дать права обычным пользователям на работу с нашей общей командой. Для этого возьмем роль, которая есть у каждого пользователя, добавим ее в наше расширение и разрешим просмотр нашей команды.
На этом разработка реализации ввода на основании в 1С при помощи расширения конфигурации завершено, можем запустить конфигурацию и проверить, что проделали данную работу не зря.
Comments
So empty here ... leave a comment!