Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Евгения1995
2 / 2 / 1
Регистрация: 28.04.2014
Сообщений: 36
#1

Передача массива из одной формы документа в другую - 1С/1C 8.x

22.09.2017, 10:10. Просмотров 547. Ответов 7
Метки нет (Все метки)

Здравствуйте!
Подскажите, пожалуйста, как из одной формы документа передать массив значений в другую форма?
В документе есть две формы: Форма документа и произвольная форма. В главной форме есть функция, которая выполняет запрос и результат помещает в массив и возвращает массив. Элементы этого массива нужны для отбора во второстепенной форме. Как мне передать этот массив во второстепенную форму? С помощью параметров передает только первый элемент массива. подскажите, не могу сообразить. Форы управляемые.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2017, 10:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос 1C 8.x Передача массива из одной формы документа в другую (1С):

Передача данных из одной обработки в другую
Здравствуйте, есть две обработки, открытые в 1с. Одна обработка прослушывает...

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

Как изменить текст надписи формы документа при записи документа
Здравствуйте уважаемые, у меня простой вопрос - как мне при записи документа...

С формы списка документа изменить данные самого документа 1С 8.2 Управляемое приложение
Есть документ ЗаказКлиента с формой документа и с формой списка (формы...

Проведение документа из модуля формы документа
Столкнулся с такой проблемой. Нужно провести документ из формы документа....

Открытие формы документа с заполнением данных из формы справочника
Здравствуйте! Платформа 1с 8.3, пытаюсь создать базу пациентов.)) Есть...

7
Yulunga
302 / 200 / 62
Регистрация: 22.04.2013
Сообщений: 1,201
Завершенные тесты: 1
22.09.2017, 10:46 #2
вроде массив не передаёт.
я делал структуру )
0 -> massiv[0]
...
n -> massiv[n]
0
Евгения1995
2 / 2 / 1
Регистрация: 28.04.2014
Сообщений: 36
22.09.2017, 11:00  [ТС] #3
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
&НаКлиенте
Процедура Команда1(Команда)
     
    Номер = Новый Массив;   
    Номер=СвободныеНомераГРК();//Функция возвращает массив
Для каждого Номера из Номер цикл   //Идем по массиву
Сообщить(Номера);
Структура = Новый Структура();
Структура.Вставить("Наименование", Номера);  //Заносим в структуру
Форма = ПолучитьФорму("Документ.грк_Размещение.Форма.ФормаВыбораСвободныхНомеров", Структура);
конецЦикла;
форма.открытьмодально();
    
    
КонецПроцедуры

Вот так он открывает форму и передает в нее только последний элемент массива...Через структуру это ведь так?
0
Yulunga
302 / 200 / 62
Регистрация: 22.04.2013
Сообщений: 1,201
Завершенные тесты: 1
22.09.2017, 11:19 #4
1C
1
Форма = ПолучитьФорму("Документ.грк_Размещение.Форма.ФормаВыбораСвободныхНомеров", Структура);
вот это вынесите за пределы цыкла
а то вы сто раз получаете форму. 1с умается.

1C
1
Структура = Новый Структура()
и вот это тоже. тока наверх . доцыкла.
а то у вас будет сто структур. 1с умается.
0
Евгения1995
2 / 2 / 1
Регистрация: 28.04.2014
Сообщений: 36
22.09.2017, 11:46  [ТС] #5
Спасибо, получилось)
1C
1
2
3
4
5
6
7
8
9
Структура = Новый Структура();
     
    Номер = Новый Массив;   
    Номер=СвободныеНомераГРК();//Функция возвращает массив
Для каждого Номера из Номер цикл   //Идем по массиву
Структура.Вставить("Наименование", Номера); //Заносим в структуру 
Форма = ПолучитьФорму("Документ.грк_Размещение.Форма.ФормаВыбораСвободныхНомеров", Структура);
конецЦикла;
форма.ОткрытьМодально();
Теперь в форме доступны элементы массива.
Еще вопрос, не знаете как сделать отбор в форме по нескольким значениям одного реквизита? То есть чтоб у меня отбор работал по элементам массива.
0
Yulunga
302 / 200 / 62
Регистрация: 22.04.2013
Сообщений: 1,201
Завершенные тесты: 1
22.09.2017, 12:00 #6
"вот это вынесите за пределы цыкла
а то вы сто раз получаете форму. 1с умается."
0
Евгения1995
2 / 2 / 1
Регистрация: 28.04.2014
Сообщений: 36
22.09.2017, 12:01  [ТС] #7
ок, это исправила, спасибо)
0
Yulunga
302 / 200 / 62
Регистрация: 22.04.2013
Сообщений: 1,201
Завершенные тесты: 1
22.09.2017, 12:30 #8
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Запрос = Новый Запрос; 
Запрос.Текст = "
|ВЫБРАТЬ 
|   ОтпускаОрганизацииРаботникиОрганизации.ФизЛицо, 
|   ОтпускаОрганизацииРаботникиОрганизации.ДатаНачала, 
|   ОтпускаОрганизацииРаботникиОрганизации.ДатаОкончания 
|ИЗ 
|   Документ.ОтпускаОрганизации.РаботникиОрганизации КАК ОтпускаОрганизацииРаботникиОрганизации 
|ГДЕ 
|   ОтпускаОрганизацииРаботникиОрганизации.ПричинаОтсутствия В (&МассивПричин)"; 
 
МассивПричин = Новый Массив; 
МассивПричин.Добавить(Перечисления.ПричиныОтсутствияНаРаботеВОрганизации.ОтпускБезСохраненияЗарплаты); 
МассивПричин.Добавить(Перечисления.ПричиныОтсутствияНаРаботеВОрганизации.ОтпускУчебный);
0
22.09.2017, 12:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2017, 12:30
Привет! Вот еще темы с решениями:

Закрытие формы документа из внешней печатной формы
Нужно после печати документа, закрыть его форму. Управляемое приложение. Никак...

Передача даты из документа в форму выбора справочника
Не могу повторить прием из видеокурса Чистова. Задача изначально: в...

Передача данных реквизита из одного документа в другой
Здравствуйте подскажите пожалуйста. У меня конфигурация для мед регистратуры и...

Перемещение из одной таблицы в другую
Имеется Форма "ФормаВыбора" в Справочнике "Номенклатура", там две таблицы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru