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

30.09.21

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

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

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

9000 руб.

29.06.2023    2535    3    0    

5

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

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

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

7200 руб.

02.08.2023    1872    1    0    

15

Печать любых непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать любые печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

3480 руб.

22.08.2023    791    1    0    

1

Даты запрета изменения

Адаптация типовых решений Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Понадобилось добавить свои разделы и документы в типовой механизм контроля дат запрета изменения данных. Внятного описания, как это сделать, сходу обнаружить не удалось: статьи в интернете или неполные, или устаревшие. Пришлось читать документацию к БСП. Но и там ждала засада. В итоге разобрался и решил сохранить на будущее, может, кому время сэкономит.

26.06.2023    2570    gamletspb    4    

45

Работа с документами PDF

Файловый обмен (TXT, XML, DBF), FTP Адаптация типовых решений Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Начиная с версии 8.3.21, в платформе 1С:Предприятие появились новые объекты для работы с популярным форматом PDF. Примеров использования в типовых конфигурациях пока найти не удалось, но задачи, где это было бы полезно, встречаются. В результате решения некоторых из них и родилось представляемое вашему вниманию расширение.

1 стартмани

12.04.2023    5888    13    VladimirElohov    10    

17

Корректный вывод суммы и сроков в печатной форме

Адаптация типовых решений Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Простой лайфхак для вывода суммы или числа дней В скобках и склоняемых единиц измерения или валюты ЗА скобками.

16.11.2022    1225    vladimir-89    0    

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