Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Создать общую процедуру из процедуры на форме          
Constantus Подменю пользователя
сообщение 03.07.17, 10:43
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Имеется часть кода в форме приОткрытии:

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПользователиСклады.Склады,
    |    ПользователиСклады.Склады.Ссылка Как сСклад
    |ИЗ
    |    Справочник.Пользователи.Склады КАК ПользователиСклады
    |ГДЕ
    |    ПользователиСклады.Ссылка = &сПользователь";
    
    Запрос.УстановитьПараметр("сПользователь", ПараметрыСеанса.ТекущийПользователь);
    Результат = Запрос.Выполнить().Выгрузить();
    МассивДокументов = Результат.ВыгрузитьКолонку("сСклад");
    СписокДокументов= Новый СписокЗначений;
        сп = Новый СписокЗначений();
        сп.Добавить("Все доступные...");
        
    Для Каждого Стр из МассивДокументов Цикл
        СписокДокументов.Добавить(Стр);
        сп.Добавить(Стр);
    КонецЦикла;    
    
    ЭтаФорма.Отбор.Склад.Использование=Истина;
    ЭлементыФормы.Список.Значение.Отбор.Склад.ВидСравнения = ВидСравнения.ВСписке;
    ЭлементыФормы.Список.НастройкаОтбора.Склад.Доступность = Ложь;
    ЭтаФорма.Отбор.Склад.Значение = СписокДокументов;

    ЭлементыФормы.ПолеВыбора1.СписокВыбора = сп;
    ЭлементыФормы.ПолеВыбора1.Значение = сп.Получить(0).Значение;


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

Flexy Подменю пользователя
сообщение 03.07.17, 10:49
Сообщение #2

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Процедура УстановитьДоступностьСкладов(Форма, ИмяСпискаФормы, ПолеВыбораФормы, Пользователь) Экспорт
Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПользователиСклады.Склады,
    |    ПользователиСклады.Склады.Ссылка Как сСклад
    |ИЗ
    |    Справочник.Пользователи.Склады КАК ПользователиСклады
    |ГДЕ
    |    ПользователиСклады.Ссылка = &сПользователь";
    
    Запрос.УстановитьПараметр("сПользователь", Пользователь);
    Результат = Запрос.Выполнить().Выгрузить();
    МассивДокументов = Результат.ВыгрузитьКолонку("сСклад");
    СписокДокументов= Новый СписокЗначений;
        сп = Новый СписокЗначений();
        сп.Добавить("Все доступные...");
        
    Для Каждого Стр из МассивДокументов Цикл
        СписокДокументов.Добавить(Стр);
        сп.Добавить(Стр);
    КонецЦикла;    
    
    Форма.Отбор.Склад.Использование=Истина;
    Форма.ЭлементыФормы[ИмяСпискаФормы].Значение.Отбор.Склад.ВидСравнения = ВидСравнения.ВСписке;
    Форма.ЭлементыФормы[ИмяСпискаФормы].НастройкаОтбора.Склад.Доступность = Ложь;
    Форма.Отбор.Склад.Значение = СписокДокументов;

    Форма.ЭлементыФормы[ПолеВыбораФормы].СписокВыбора = сп;
    Форма.ЭлементыФормы[ПолеВыбораФормы].Значение = сп.Получить(0).Значение;
КонецПроцедуры


Сообщение отредактировал Flexy - 03.07.17, 10:51

Constantus Подменю пользователя
сообщение 03.07.17, 11:56
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Flexy @ Сегодня, 13:49 * ,


Мой.УстановитьДоступностьСкладов(ЭтаФорма,ЭлементыФормы.Список,ЭлементыФормы.ПолеВыбора1,ПараметрыСеанса.ТекущийПользователь);


Ругается на ЭлементыФормы.Список и ,ЭлементыФормы.ПолеВыбора1

{ОбщийМодуль.Мой.Модуль(338)}: Получение элемента по индексу для значения не определено
    Форма.ЭлементыФормы[ИмяСпискаФормы].Значение.Отбор.Склад.ВидСравнения = ВидСравнения.ВСписке;


Как правильно передать значения?

Flexy Подменю пользователя
сообщение 03.07.17, 11:59
Сообщение #4

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(Constantus @ 03.07.17, 11:56) *
Как правильно передать значения?

Передавайте туда имена элементов формы строкой.
Мой.УстановитьДоступностьСкладов(ЭтаФорма,"ДокументСписок", "ПолеВыбора1", ПараметрыСеанса.ТекущийПользователь);

Спасибо сказали: Constantus,

Constantus Подменю пользователя
сообщение 03.07.17, 12:09
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Flexy @ Сегодня, 14:59 * ,


Как сказать "Спасибо" дважды? :-)

cos12 Подменю пользователя
сообщение 03.07.17, 20:04
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 226
Спасибо сказали: 28 раз
Рейтинг: 0

Цитата(Constantus @ 03.07.17, 13:09) *
Как сказать "Спасибо" дважды? :-)

под каждым сообщением)

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 19:33
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!