Имя: Пароль:
1C
1С v8
Передача экспортной переменной из модуля объекта в модуль менеджера документа
0 IT_PROGRAMMIST
 
16.12.11
13:36
Привет всем))УПП 1.3.12.6, пл. 8.2.13.219.
Такая ситуация: хочу передать экпортную переменную из модуля объекта документа в модуль менеджера документа(Налоговая накладная).  Как это сделать? Перепробывал много вариантов не получается ниче.Может конечно все дело в пятнице))),но все же.
Нужно это для следующего:

Данные код  не выполняется в модуле менеджера

       СписВыбора = Новый СписокЗначений;
   СписВыбора.Добавить("Русский", "Русской язык");
   СписВыбора.Добавить("Украинский", "Украинский язык");
   
   Выбор = СписВыбора.ВыбратьЭлемент("Выберите язык для заполнения...", СписВыбора[0].Значение);
   
   ЯзыкЗаполнения = Выбор.Значение;

Пишет ошибку Неудачная попытка создания окна.

Я решил выполнить данный код в модуле объекта в функции Печать(). Присвоить выбранное значение экспортной переменной и передать её в модуль менеджера.Как это лучше сделать?Может можно выполнить этот код в модуле менеджера?
1 Ненавижу 1С
 
гуру
16.12.11
13:37
модуль менеджера выполняется на стороне сервера, какие уж там окна?
2 Defender aka LINN
 
16.12.11
13:41
(0) Заведи 2 печатных формы и не парь никому мозги
3 MikleV
 
16.12.11
13:42
Ник красивый..но без мозгов
4 vovus
 
16.12.11
13:43
(0) воспроизвел у себя. Все в модуле менеджера выполняется, в чем проблема-то?
5 pumbaEO
 
16.12.11
13:44
И зачем тебе это? Написали же налоговая накладная только на укр. языке.
6 vovus
 
16.12.11
13:44
Модуль менеджера:
Процедура Пичать() экспорт
   СписВыбора = Новый СписокЗначений;
   СписВыбора.Добавить("Русский", "Русской язык");
   СписВыбора.Добавить("Украинский", "Украинский язык");
   
   Выбор = СписВыбора.ВыбратьЭлемент("Выберите язык для заполнения...", СписВыбора[0].Значение);
   
   ЯзыкЗаполнения = Выбор.Значение;    
КонецПроцедуры

модуль формы:

Процедура ДействияФормыПичать(Кнопка)
   документы.<ИмяДокумента>.Пичать();
КонецПроцедуры
7 Defender aka LINN
 
16.12.11
13:49
(6) Еще один...
8 IT_PROGRAMMIST
 
16.12.11
13:52
(1)
ВыбратьЭлемент (ChooseItem)
Синтаксис:

ВыбратьЭлемент(<Заголовок>, <Элемент>)
Параметры:
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Смотри Спр
(2) не верно.Нужно используя одну форму
(3) зато у тебя их много. Советами прямо закидал, умник.
(4) ошибка Неудачная попытка создания окна.
(5) У меня база полностью на русском языке. За исключением некоторых данных. Поэтому и надо вводить заполнение как на русском так и на укр + документы на экспорт должны быть на русском, внутри страны на укр
9 IT_PROGRAMMIST
 
16.12.11
13:55
(6) так делал.
код:
Функция ЯзыкЗаполненияПечатнойФормы()Экспорт
   СписВыбора = Новый СписокЗначений;
   СписВыбора.Добавить("Русский", "Русской язык");
   СписВыбора.Добавить("Украинский", "Украинский язык");
   
   
   Выбор = СписВыбора.ВыбратьЭлемент("Выберите язык для заполнения...", СписВыбора[0].Значение);
   
   ЯзыкЗаполнения = Выбор.Значение;
   
   Возврат ЯзыкЗаполнения;
КонецФункции


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

// Функция формирует табличный документ с регламентированной печатной формой
//
// Возвращаемое значение:
//  Табличный документ - печатная форма накладной
//
Функция ПечатьДокументаНалоговыйКодекс(НалоговаяНакладнаяСсылка, ТолькоФормироватьСтруктуруПоказателейПечатнойФормы = Ложь, ОбъектыПечати = Неопределено) Экспорт    
   Перем СтруктураШапкиДокумента;
   Перем ТаблицаНоменклатуры, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоОС, ТаблицаПоНМА;
   
   Язык = Документы.НалоговаяНакладная.ЯзыкЗаполненияПечатнойФормы();

..................................................................
Ошибка:
{Документ.НалоговаяНакладная(7)}: Ошибка при вызове метода контекста (ВыбратьЭлемент)
   Выбор = СписВыбора.ВыбратьЭлемент("Выберите язык для заполнения...", СписВыбора[0].Значение);
по причине:
Неудачная попытка создания окна
10 Ненавижу 1С
 
гуру
16.12.11
13:55
(8) про сервер не слова ))
11 IT_PROGRAMMIST
 
16.12.11
13:56
(9) в печать документа() вставлял тоже.
12 IT_PROGRAMMIST
 
16.12.11
13:58
(10) доступность на сервере есть.Может я ошибаюсь конечно.Ну если нельзя создать окно на сервере, как передать экспортную переменную в модуль менеджера, с нужным мне выбором ?
13 Ненавижу 1С
 
гуру
16.12.11
13:58
(12) насчет сервера это они прогнали
14 Ненавижу 1С
 
гуру
16.12.11
13:59
выбери заранее на клиенте
15 IT_PROGRAMMIST
 
16.12.11
14:01
Можно сделать реквизит и не парить мозг. Но нужно так. (14)Я на клиенте выберу. Так есть, но как мне выбор потом передать в модуль менеджера?
16 MikleV
 
16.12.11
15:05
(8) ну если ты вопросы задаешь на уровне: "как задать вопрос пользователю из обработки проведения документа", кто ж виноват
17 IT_PROGRAMMIST
 
20.12.11
11:30
(16) из модуля менеджера вообще-то функция вывода окна не доступна, хотя в СПР доступность: Сервер. Вопрос не в том, как задать вопрос пользователю, а в том как передать выбранное значение в модуль менеджера.
Закон Брукера: Даже маленькая практика стоит большой теории.