Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 07:23

Открытие формы элемента документа с заранее заполненными данными.

Автор Celestial, 27 фев 2024, 16:33

0 Пользователей и 1 гость просматривают эту тему.

Celestial

В общем, в чем суть проблемы. Есть справочник, называется сотрудники. В нём 3 табличной части -- это "Проекты", "Отделы" и "Должности". Проблема вот в чем. В каждой из табличных частей есть одно ссылочное поле и одно числовое(Ссылочное ссылается на справочник "организации", "Подразделения" и "Должности"), и мне надо было сделать так, чтобы после начала записи этих данных в карточке сотрудника открывалась форма элемента документ "Перевод к другому работодателю" с заранее заполненными этими полями. Для этого я написал такой код:
МассивПроекты = Новый Массив;
   Для каждого СтрокаПроекты из Сотрудник.Проекты Цикл
          СтруктураПроекты = Новый Структура("НазваниеПроекта");
         ЗаполнитьЗначенияСвойств(СтруктураПроекты, СтрокаПроекты);
         МассивПроекты.Добавить(СтруктураПроекты);
      КонецЦикла;
      МассивДолжности = Новый Массив;
      Для каждого СтрокаДолжности из Сотрудник.Должность Цикл
         СтруктураДолжности = Новый Структура("Должность, ДолжностьПоШтатномуРасписанию");
          ЗаполнитьЗначенияСвойств(СтруктураДолжности, СтрокаДолжности);
         МассивДолжности.Добавить(СтруктураДолжности);
         КонецЦикла;
      ПараметрыФормы = Новый Структура;
      ПараметрыФормы.Вставить("Основание", Сотрудник.Ссылка);
      ПараметрыФормы.Вставить("Проекты", МассивПроекты);
      ПараметрыФормы.Вставить("Должности", МассивДолжности);
   Открытьформу("Документ.ПереводКДругомуРаботодателю.Форма.ФормаДокумента", ПараметрыФормы);

Но в итоге система заполнила данные неверно. Неверность в чем состоит:
-- Значения проектов стоят, но остальные поля неправильно выставлены. То бишь если справа есть значение проекта, то слева всё пусто, хотя должна быть его должность.
В чем может быть проблема, может кто подсказать?

Celestial

Ну и ещё забыл сообщить, что должности, связанные с этим проектом, стоят то бишь ниже

Celestial

То бишь они есть на форме документа, но не на одной строке с должность.

Максим75

ну форму то Вы открываете, а как в самом документе обрабатываете то, что при открытии передали?
там как бы надо эти переданные параметры обработать и в нужные реквизиты открываемой формы запихнуть.

LexaK

Celestial, а у вас должности с проектами ни как не связаны, просто два независимых массива!

или при заполнении документа брать данные сразу из двух массивов, примерно так (очень примерно, могут быть опечатки)
Пока лкИндекс < МассивПроекты.Количество()
   лкСтрокаДокумента = ДокТЧ.Добавить();
   лкСтрокаДокумента.Проект = МассивПроекты[лкИндекс].НазваниеПроекта;
   лкСтрокаДокумента.Должность = МассивДолжности[лкИндекс].Должность;
   лкИндекс = лкИндекс + 1;
КонецЦикла;

если помогло нажмите: Спасибо!

Celestial

Максим75, забыл скинуть код в документе. Там указывается, что вот если параметр.свойство("ТутНазваниеПараметра") Тогда
Тут присваивают значение параметра табличной части
КонецЕсли;

Теги:  

Похожие темы (5)

Рейтинг@Mail.ru

Поиск