KoderLine
Обслуживание
и внедрение
Наш Facebook Наш Instagram Наш YouTube
+7 (495) 374 55 29 Обратный звонок
Кодерлайн приглашает на День Бухгалтерии в Большом Московском цирке
Как изменить табличную часть документа из фор...

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

0
307
28.09.2018 Игорь Торба

Содержание:

1.       Создание внешней обработки

2.       Описание модуля формы

3.       Перенос изменений в документ

 

На практике часто возникает потребность реализовать инструмент, с помощью которого можно было бы корректировать табличную часть документа из вспомогательной формы, пользуясь функционалом дополнительных внешних обработок. Например, для программы 1С Управление торговлей редакция 11 разработать аналог обработки табличной части, используемой в конфигурации Управление торговлей 10.3 (см. рис.). При этом конфигурация должна находиться на поддержке без возможности изменения.




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


В этой статья я опишу упрощенный пример разработки подобного функционала, позволяющего изменить цену товара на определенный процент в документе реализация товаров и услуг.


 

 


1.   Создание внешней обработки


Создаем внешнюю обработку. В модуле внешней обработки создаем экспортную процедуру «СведенияОВнешнейОбработке». В параметр «Вид» устанавливаем значение «ЗаполнениеОбъекта», настройку команды «Использование» устанавливаем «ОткрытиеФормы».




Создаем форму обработки с необходимыми элементами управления. В нашем случае это – поле для ввода процента и таблица, в которой будут отражены строки табличной части документа. Создаем две команды «Рассчитать» и «Перенести в документ». По кнопке «Рассчитать» мы будем вычислять в таблице формы обработки новое значение цены с учетом процента, а по кнопке «Перенести в документ» - заполнять табличную часть документа новыми значениями.


 


  

 

2. Описание модуля формы


Перейдем к описанию модуля формы. Прежде всего при открытии формы нам необходимо заполнить таблицу данными табличной части. Для этого мы используем серверную процедуру «ПриСозданииНаСервере» в которой получим ссылку на документ и заполним реквизит «Товары» результатом запроса к табличной части документа.


Ссылку на документ можно получить из параметра формы «ОбъектыНазначения». Этот параметр доступен внешним обработкам в режиме «ОткрытиеФормы». Параметр «ОбъектыНазначения» представляет собой массив ссылок выбранных документов. В нашем случае мы будем запускать обработку только из формы документа, следовательно, массив объектов назначения будет содержать только один элемент с индексом 0.

    

 




Мы описали заполнение формы исходными данными и переходим к описанию функционала изменения значений табличной части. На данном этапе мы реализуем задачу нашей обработки. Здесь можно изменить количество, цену, ставку налога и т.д. Не забываем, что состав колонок реквизита формы Товары тоже должен соответствовать поставленной задаче. Я выбрал самый простой вариант - изменение цены.


 



3.   Перенос изменений в документ


Переходим к завершающему этапу – перенос изменений в документ. Вот на этом этапе и возникает вопрос: «Как это сделать?». Традиционно перенос данных в документ осуществляется механизмом оповещений, но в нашем случае конфигурация полностью на поддержке с запретом изменений, и нет возможности обработать нетиповую ситуацию. Для решения этой задачи используем свойство управляемой формы «ВладелецФормы». Владельцем формы является форма нашего документа и устанавливается системой автоматически в режиме «ОткрытиеФормы». Через свойство владелец формы может получить доступ к ее основному реквизиту «Объект», в состав которого входит коллекция строк табличной части «Товары». Важно помнить, что свойство «ВладелецФормы» всегда доступно на клиенте открытой формы.


Учитывая данную возможность, обработаем в цикле строки документа и установим новые значения. Для поиска соответствующей строки используем реквизит «НомерСтроки».


Если мы меняем какое-либо числовое значение, то чаще всего необходимо выполнить пересчет связанных значений в строке. Например, изменяя цену необходимо пересчитать сумму, сумму НДС и что-то еще. Для этого лучше использовать типовые процедуры пересчета табличной части. Перенесем из документа в нашу форму типовой обработчик события изменения цены – «ТоварыЦенаПриИзменении».



В данном примере мы использовали метод поиска строки по реквизиту «НомерСтроки». Но может возникнуть ситуация, когда в процессе выполнения обработки пользователь случайно изменит порядок строк в документе, тем самым нарушив соответствие строк табличной части документа номеру строк таблицы формы нашей обработки. Для обеспечения гарантированного соответствия заблокируем окно документа на время проведения изменений. Для этого в форме обработки установим для свойства «РежимОткрытияОкна» значение «Блокировать окно владельца».



 


Специалист компании ООО «Кодерлайн» 

Игорь Торба.

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
#1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Платформа #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #ADO #APACHE #API #com-объекты #Excel #GoogleDrive #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #WEB #WEB-сервисы 1С #Word #XML #Администрирование 1С #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бюджетирование #Внедрение #Внедрение ERP #Закрытие месяца #Запросы 1С #Интеграция 1С #Как сделать в 1С #Конвертация данных #Корпоративное сопровождение #Лизинг #Лицензии 1С #Моделирование #МСФО #Налоги #Обмен между базами #Обновления #Оптимизация #Отпуск #Отчетность #Отчеты в 1С #Оценка задач #Перенос данных #Планирование #Полезные обработки #Правила обмена #Проводки 1С #Программирование в 1С #Программные права #Продажи #Производство #Расширение конфигурации #РСБУ #СКД #Сравнение конфигураций #Тестирование 1С #Техническое задание #Торговое оборудование #Транспортная логистика #Управление проектами #Финансовый учет #Ценообразование #Экзамен 1С #Яндекс.Касса Email или телефон
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.
Яндекс.Метрика