Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Передача данных между формами

Yakovin
читатель
офлайн
Дата регистрации: 19.02.2007
Сообщений: 49
Пост №1
 
07.05.2010 12:27

"Здравствуйте, все!
Задача такая:
1. внешняя обработка имеет несколько форм.
2. при выборе строки табличного поля 1ой формы, открывается 2ая форма. Необходимо заполнить элементы 2ой формы данными из этой строки. Я делаю так:
Форма2 = ВнешниеОбработки.ПолучитьФорму("C:\Рабочая\ComCenter\ComCenter.epf", "ФормаРедакторПлатежа");
Форма2.ИНН = "Hello world!";
Форма2.ОткрытьМодально();

... и т.д.
3. после редактирования данных в форме "ФормаРедакторПлатежа", по нажатию кнопки ОК, требуется заполнить данную строку новыми данными.

Как мне передать данные в 1ую форму? М.б. использовать переменные типа Экспорт? Надо запускать метод Обновить()?

Спасибо за помощь. "

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №2
 
07.05.2010 13:14

"> 2. при выборе строки табличного поля 1ой формы, открывается 2ая форма. Необходимо заполнить элементы 2ой формы данными из этой строки. Я делаю так:
> Форма2 = ВнешниеОбработки.ПолучитьФорму("C:\Рабочая\ComCenter\ComCenter.epf", "ФормаРедакторПлатежа");
> Форма2.ИНН = "Hello world!";
> Форма2.ОткрытьМодально();
>
> ... и т.д.
Вы уже в обработке. Так что можно написать проще (и правильнее)
Форма2 = ЭтотОбъект.ПолучитьФорму("ФормаРедакторПлатежа");
> 3. после редактирования данных в форме "ФормаРедакторПлатежа", по нажатию кнопки ОК, требуется заполнить данную строку новыми данными.
>
> Как мне передать данные в 1ую форму? М.б. использовать переменные типа Экспорт? Надо запускать метод Обновить()?
Можно использовать либо использовать Экспортные переменные в модуле объекта, либо реквизиты.
Можно еще передать в открываемую форму объект Форма (Форма2.ФормаВладелец = ЭтаФорма;) и тогда из Формы2 можно получить прямой доступ к элементам Формы1.
Еще вариант - подключить обработчик подбора и открывать форму в режиме подбора (Форма2 = ЭтотОбъект.ПолучитьФорму("ФормаРедакторПлатежа", ЭтаФорма);)
Выбирайте, что вам больше по душе :)
"

Yakovin
читатель
офлайн
Дата регистрации: 19.02.2007
Сообщений: 49
Пост №3
 
07.05.2010 14:07

Огромное спасибо за столь подробное и понятное объяснение (жаль что не предусмотрена возможность повысить репутацию), реализовал через ВладелецФормы. :)))

Решил для самообразования попробовать достучаться до реквизитов обработки, но ничего не вышло и с "ЭтотОбъект" проблема. Как код должен выглядеть?

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №4
 
07.05.2010 14:29

"ЭтотОбъект - это ключевое слово (свойство). Внутри самого объекта можно не писать (я просто для конкретного указания пишу, когда могут возникнут сомнения)
Иначе говоря, все что написано ниже - одно и тоже, но по-разному:
Форма2 = ВнешниеОбработки.ПолучитьФорму("C:\Рабочая\ComCenter\ComCenter.epf", "ФормаРедакторПлатежа");
Форма2 = ЭтотОбъект.ПолучитьФорму("ФормаРедакторПлатежа");
Форма2 = ПолучитьФорму("ФормаРедакторПлатежа");

> достучаться до реквизитов обработки, но ничего не вышло
Реквизиты обработки всегда доступны (если то именно реквизиты обработки, а не формы) для всех форм этой обработки. (надеюсь вы добавляли реквизит там же где добавляете формы)"

Yakovin
читатель
офлайн
Дата регистрации: 19.02.2007
Сообщений: 49
Пост №5
 
07.05.2010 14:39

"Реквизиты добавляю в том же окне, где и формы. Т.е. добавляю реквизиты обработки. Разве есть возможность создать реквизиты формы?

На счет
Форма2 = ЭтотОбъект.ПолучитьФорму("ФормаРедакторПлатежа");
Форма2 = ПолучитьФорму("ФормаРедакторПлатежа");

Генерится ошибка: Процедура или функция с указанным именем не определена (ПолучитьФорму), также и с ЭтотОбъект.

П.С. прошу прощения, если туплю"

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №6
 
07.05.2010 15:05

"Согласно задаче:
> 1. внешняя обработка имеет несколько форм.
> 2. при выборе строки табличного поля 1ой формы, открывается 2ая форма
Этот код
> Форма2 = ЭтотОбъект.ПолучитьФорму("ФормаРедакторПлатежа");
Должен писаться в модуле 1-ой формы. А где его пишите вы?

http://s55.radikal.ru/i149/1005/01/efe77401b219.jpg"

Yakovin
читатель
офлайн
Дата регистрации: 19.02.2007
Сообщений: 49
Пост №7
 
07.05.2010 15:16

Значит, я пытался обратиться к реквизитам обработки.

ЭтотОбъект я и писал в 1ой форме, но почему-то он не понимает, что это ключевое слово и не предлагает список методов.

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №8
 
07.05.2010 15:43

Вы при добавлении формы что указали:
"Форма обработки"
"Произвольная форма"
Если последнее - то поэтому и не работает. На закладке реквизиты формы есть (бывает) реквизит, выделенный жирным - основной реквизит формы. К нему имеется полный доступ. Так вот у вас должен быть такой реквизит со ссылкой на вашу обработку (создайте форму типа "Форма обработки") и скопируйте оттуда реквизит в ваши формы - и будет счастье.

Yakovin
читатель
офлайн
Дата регистрации: 19.02.2007
Сообщений: 49
Пост №9
 
07.05.2010 16:01

Действительно, я создавал произвольные формы. Но чем они отличаются и когда какую лучше использовать? Могу ли я посреди работы изменить тип формы на форму обработки?

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №10
 
07.05.2010 16:08

Произвольная практически никогда не используется (кроме общих форм)
Если посмотрите любую форму конфигурации у них всегда есть основной реквизит.
Так что по-умолчанию лучше создавать "Форму обработки" - доступен общий модуль и реквизиты обработки.
У меня исключений небыло, т.е. я не менял основной реквизит, но о нем помню. Теоретически можно написать обработку по редактированию документа и присвоить её тип ДокументОбъект и наслаждаться всеми прелестями "формы документа".

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • ЕГАИС
Предложения партнеров
Обучение пользователей продуктов 1С

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги