Заказать звонок

УФ Использование своей формы выбора. 1С

24.04.2017

Рассмотрим задачу, когда нужно использовать свою форму выбора с обработкой результата.

Рассмотрим на примере:

На форме расположена таблица значений ТаблицаСотрудников с колонкой Сотрудник. Нужно добавить команду Заполнить, по которой открывается форма для подбора сотрудников – форма выбора сотрудников СвояФормаВыбора, если сотрудник уже есть в таблице, то добавлять повторно не нужно:

 

 

 

 

 

 

 

 

Реализация:

&НаКлиенте

Процедура Заполнить(Команда)

                Если ТаблицаСотрудников.Количество() > 0 Тогда

                               Режим = РежимДиалогаВопрос.ДаНет;

                               Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтаФорма, Истина);

                               ПоказатьВопрос(Оповещение, "Табличная часть Сотрудники будет перезаполнена. Продолжить?", Режим, 0);

                Иначе

                               ПослеЗакрытияВопроса(КодВозвратаДиалога.Да, Неопределено)

                КонецЕсли;

КонецПроцедуры

 

&НаКлиенте

Процедура ПослеЗакрытияВопроса(Результат, ДополнительныеПараметры) Экспорт

                Если Результат = КодВозвратаДиалога.Да Тогда

                               Если ДополнительныеПараметры = Истина Тогда

                                               ТаблицаСотрудников.Очистить();

                               КонецЕсли;

                              

                               Оповещение = Новый ОписаниеОповещения("ЗаполнитьСотрудников", ЭтотОбъект,);

               

                               ФормаВыбора = ПолучитьФорму("Справочник.Сотрудники.СвояФормаВыбора",,ЭтаФорма);

                               ФормаВыбора.ОписаниеОповещенияОЗакрытии = Оповещение;

                               ФормаВыбора.Элементы.Список.МножественныйВыбор = Истина;

                               ФормаВыбора.Элементы.Список.РежимВыделения = РежимВыделенияТаблицы.Множественный;

                               ФормаВыбора.Открыть();       

                КонецЕсли;

КонецПроцедуры

 

&НаКлиенте                   

Процедура ЗаполнитьСотрудников(Результат, ДополнительныеПараметры) Экспорт  

                Если Результат = Неопределено Тогда

                               Возврат;            

                КонецЕсли;      

               

                Для Каждого Сотрудник Из Результат Цикл

                               ПараметрыОтбора = Новый Структура("Сотрудник", Сотрудник);

                               Если ТаблицаСотрудников.НайтиСтроки(ПараметрыОтбора).Количество() = 0 Тогда

                                               НоваяСтрока = ТаблицаСотрудников.Добавить();

                                               НоваяСтрока.Сотрудник = Сотрудник;

                               КонецЕсли;

                КонецЦикла;                 

КонецПроцедуры

 

Автор: Дина Королева.


Возврат к списку

Наши услуги и вакансии

Разработчики
на full-time
Программист 1С на 8 часов в день
от 1 600 руб/час
Позадачная
разработка 1С
Доработки и развитие любых решений на платформе 1С
Стоимость по оценке
Карьера в Neti

Вакансии разработчиков и консультантов 1С
З.П. от 100 000 рублей