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

30.09.21

Задачи пользователя - Адаптация типовых решений

По шагам рассматривается настройка открытия формы обработки из формы документа в управляемой и обычной форме. При открытии формы обработки в реквизит ДокументОснование должен автоматом проставляться документ, из которого выполнялся запуск обработки. Автоматизация выбора документа в обработке.

Казалось бы, простая задача... но все равно вызывает вопросы у пользователей. Публикация для неопытных и начинающих программистов 1С8. Целью публикации можно считать попытку объяснения решения задачи обычным пользователям (не программистам), но и программистам тоже может быть полезна.

Задача: вызов из формы документа формы обработки, которая реализует на основе ссылки документа собственные функции.

Рассматривается открытие обработки встроенной в конфигурацию. Настройка на основе решения из публикации - формирование ссылки на оплату.

Управляемая форма

Для примера, используем конфигурацию "Управление нашей фирмой, редакция 1.6 (1.6.24.201)".

Как должно работать?

В документе "Заказ покупателя" будет команда, которая открывает форму обработки. Подойдёт любой способ - например, кнопка в шапке документа:

Выполнение команды должно приводить к автоматической подстановке документа в реквизит обработки:

Далее обработка решает свою задачу запрограммированным в неё способом.

Команда запуска обработки

Если обработка отсутствует в метаданных конфигурации, то сперва интегрируем её:

Есть много способов добавить команду вызова формы обработки. Рассмотрим пример:

Двойной клик по команде открывает модуль команды, в который добавим алгоритм запуска обработки:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	
	СтруктураРезультат = Новый Структура;
	СтруктураРезультат.Вставить("СсылкаНаДокумент", ПараметрыВыполненияКоманды.Источник.Объект.Ссылка);
	АдресВХранилище = ПоместитьВоВременноеХранилище(СтруктураРезультат);
	СтруктураПараметры = Новый Структура("АдресВХранилище", АдресВХранилище);
	ОткрытьФорму("Обработка.ВыставлениеСчетаСсылкой.Форма.Форма", СтруктураПараметры, , Новый УникальныйИдентификатор);
	
КонецПроцедуры

Реализация команды основана на механизме типовых конфигураций платформы 1С8.

Помещение во временное хранилище структуры и элемента с ключом СсылкаНаДокумент будут нужны для открываемой формы обработки, в которой объявлен ключевой параметр АдресВХранилище:

В модуле формы обработки должна быть серверная процедура ПриСозданииНаСервере, в которой обрабатывается параметр АдресВХранилище:

Свойство СсылкаНаДокумент представлено типом данных ДокументСсылка, поэтому реквизит ДокументОснование объекта обработки должен быть того же типа.

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

В клиентской процедуре формы ПриОкрытии можно предусмотреть любые дополнительные операции для автоматической обработки реквизита ДокументОснование, например:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Если ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
		ДокументОснование = Объект.ДокументОснование;
		СформироватьПлатеж();
		СсылкаПлатежныйШлюз(0);
	КонецЕсли;
КонецПроцедуры

Далее можно перейти к тестированию.

Обычная форма

Для примера, используем конфигурацию "Управление производственным предприятием, редакция 1.3 (1.3.143.1)".

Как должно работать?

В документе "Заказ покупателя" будет команда, которая открывает форму обработки. Пункт меню в командной панели документа:

Выполнение команды должно приводить к автоматической подстановке документа в реквизит обработки ДокументОснование:

Далее обработка решает свою задачу запрограммированным в неё способом.

Команда запуска обработки

Если обработка отсутствует в метаданных конфигурации, то сперва интегрируем её в конфигурацию подобно примеру выше для управляемой формы.

Далее нужно добавить команду вызова формы обработки. Есть много разных способов. Например, добавим собственный пункт меню в командной панели формы документа ЗаказПокупателя:

В модуле формы документа будет добавлен метод ДействияФормыСбер, в котором нужно выполнить вызов формы обработки с отправкой ссылки документа через реквизит ДокументОбъект:

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

Для получения ссылки на документ со стороны обработки в модуле открываемой формы необходимо добавить экспортную переменную и алгоритм заполнения реквизита ДокументОснование в процедуре ПриОткрытии:

// ПЕРЕМЕННЫЕ МОДУЛЯ
Перем ДокументОбъект Экспорт;

Процедура ПриОткрытии(Отказ)
	Если Не ДокументОбъект = Неопределено Тогда
		ЭтотОбъект.ДокументОснование = ДокументОбъект;
	КонецЕсли;
	СформироватьПлатеж();
	СсылкаПлатежныйШлюз(0);
КонецПроцедуры

Далее можно перейти к тестированию.

Сообщите о любых недочётах публикации в комментариях. Спасибо!

Экспорт Ссылка Документ ДокументСсылка Обработка Обмен Команда Реквизит Автозаполнение Параметр Форма

См. также

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    5165    11    5    

20

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3545    8    0    

27

Адаптация типовых решений Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    4747    dimanich70    15    

20

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    3684    dimanich70    8    

16

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    2811    21    avmartynov    14    

53
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user796479 21.09.21 13:19 Сейчас в теме
2. 028 08.11.22 19:21 Сейчас в теме
у меня здесь ПараметрыВыполненияКоманды.Источник.Объект.Ссылка нет "Объект.Ссылка" ошибка выходит
3. etmarket 902 08.11.22 19:28 Сейчас в теме
(2) какая конфигурация и платформа?
4. 028 08.11.22 19:32 Сейчас в теме
1С:Предприятие 8.3 (8.3.16.1148) Конфигурация своя там только пару документов есть.
5. etmarket 902 08.11.22 20:44 Сейчас в теме
(4) вот из-за этого и может быть проблема. Статья про конфигурацию УТ11. Смотрите как устроено хранение ссылки документа в типовой конфигурации.
Оставьте свое сообщение