7.7 Передача параметров из документа в справочник и обратно

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Евгений1986, 8 дек 2017.

  1. TopicStarter Overlay
    Евгений1986
    Offline

    Евгений1986

    Регистрация:
    4 дек 2012
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Всем доброго дня!

    Подскажите пожалуйста , если кто знает как это сделать. Ситуация следующая: Есть Документ, который открывает справочник с передачей параметров, далее вызываются некоторые процедуры из справочника, после этого он должен записаться / или не записаться (в зависимости от ошибок при исполнении функций) и передать обратно параметр с результатом в документ. Проблема в том что , не могу передать параметр с результатом из справочника в документ. Сталкивался раньше с передачей параметров в обработку и обратно - все Ок. Но со справочником проблемы - получаемые параметры пустые.

    Делаю так:

    //Модуль документа

    процедура ПриНажатииКнопки()

    СписПараметров = создатьОбъект("СписокЗначений");

    СписПараметров.ДобавитьЗначение("Выполнить","Команда") ;

    СписПараметров.ДобавитьЗначение("","Результат") ;

    СписПараметров.ДобавитьЗначение("","ОписаниеРезультата") ;

    ОткрытьФорму(справочник.ТекущийЭлемент(),СписПараметров);

    Если ТипЗначенияСтр(СписПараметров) = "СписокЗначений" Тогда

    Сообщить(СписПараметров.Получить("Результат")); // Пусто??

    Сообщить(СписПараметров.Получить("ОписаниеРезультата"));// Пусто??

    КонецЕсли;

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



    //Модуль справочника



    Процедура ПриОткрытии()

    Параметр = Форма.Параметр;

    Если ПустоеЗначение(Параметр) = 0 Тогда

    Если ТипЗначенияСтр(Параметр) = "СписокЗначений" Тогда

    Если Параметр.Получить("Команда") = "Выполнить" Тогда

    фВнешняяФорма = 1;

    Выполнить(); // выполняются необходимые процедуры

    ПриЗаписи();

    СписПараметров=СоздатьОбъект("СписокЗначений");

    СписПараметров.ДобавитьЗначение("","Команда") ;

    СписПараметров.ДобавитьЗначение("123","Результат") ; //123 для примера чтобы посмотреть возвратит или нет

    СписПараметров.ДобавитьЗначение(ОписаниеОшибкиВФорму,"ОписаниеРезультата") ;

    Форма.Закрыть(0);

    КонецЕсли;

    КонецЕсли;

    КонецЕсли;

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



    Заранее всем огромное спасибо за любую помощь
  2. TopicStarter Overlay
    Евгений1986
    Offline

    Евгений1986

    Регистрация:
    4 дек 2012
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Проблема решена.
    Решение:
    Вместо ОткрытьФорму нужно ОткрытьФормуМодально. Все передается.
    Теперь не могу записать справочник после процедуры Выполнить()

    Форма.Параметр=СписПараметров;
    Записать();
    Форма.Закрыть(0);
    Ошибка: Записать();
    {Справочник.Спр.Форма.Модуль(2894)}: Данная команда не может выполняться в формуле элемента диалога!
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.628
    Симпатии:
    542
    Баллы:
    204
    Параметр передается и при не модальной форме. Контекст при этом имеет тип значения 100.
    Из процедуры, вызванной из диалога формы нельзя закрыть саму форму.

    Озвучьте суть задачи
  4. TopicStarter Overlay
    Евгений1986
    Offline

    Евгений1986

    Регистрация:
    4 дек 2012
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Есть документ по продажам в котором есть определенные задания (они создаются автоматом в определенное время), например отправление пользователем по кнопке - Напоминания клиенту о бронировании. Документ по продажам - это документ, Напоминание - это справочник. При нажатии кнопки из документа должно открыться существующее Напоминание , в нем должны выполниться процедуры по отправке писем клиенту, далее это Напоминание должно записаться / или не записаться( если письмо отправлено или не отправлено) возвратить Статус отправки (в зависимости от успешности выполнения отправки письма ) в сам документ. Соответственно если произошла ошибка при отправке письма, в форму Документа должна придти ошибка и уведомить пользователя почему произошла ошибка, в случае успешности возвратиться статус о выполнении задания.
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.628
    Симпатии:
    542
    Баллы:
    204
    1) Вызов модальной формы - оптимален в данном случае.
    2) Не нужно открывать элемент справочника. Открывайте ОБРАБОТКУ, которая в зависимости от результата может создать элемент справочника
  6. TopicStarter Overlay
    Евгений1986
    Offline

    Евгений1986

    Регистрация:
    4 дек 2012
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Да, сделал в итоге через обработку.
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.628
    Симпатии:
    542
    Баллы:
    204
    должно работать. впрочем.. можно было обмануть.... вызов закрытия в предопределенной процедуре записи элемента
  8. TopicStarter Overlay
    Евгений1986
    Offline

    Евгений1986

    Регистрация:
    4 дек 2012
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Много чего перепробовал, но этого не делал.. возьму на заметку. Спасибо.
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.628
    Симпатии:
    542
    Баллы:
    204
Похожие темы
  1. U3BPaLLjeHeLj
    Ответов:
    2
    Просмотров:
    1.724
  2. viktor676
    Ответов:
    5
    Просмотров:
    2.030
  3. Nyta
    Ответов:
    11
    Просмотров:
    1.687
  4. NewCoder
    Ответов:
    8
    Просмотров:
    797
  5. Arsenic
    Ответов:
    11
    Просмотров:
    1.277
Загрузка...