Имя: Пароль:
1C
1С v8
Недоступен для записи, почему в УТ 11.0
,
0 Rizhij_Nikitos
 
13.09.11
10:52
Хочется сделать, чтобы валюта в распечатке была не как "RUB", а как "Рубль". Как это сделать? Нашел где все передается на печать, и добавил кусок своего кода, но почему то нельзя заменить "RUB" на "Рубль". Все у УТ 11.0

// Процедура - обработчик события "ОбработкаКоманды".
//
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   Если УправлениеПечатьюКлиент.ПроверитьДокументыПроведены(ПараметрКоманды, ПараметрыВыполненияКоманды.Источник) Тогда
       МассивКопия = Новый Массив;
       Для каждого Элемент из ПараметрКоманды Цикл
           Элемент.Валюта.Наименование = Элемент.Валюта.НаименованиеПолное;
            МассивКопия.Добавить(Элемент);
           КонецЦикла;
               УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(
           "Обработка.ПечатьОбщихФорм",
           "СчетФактура",
           ПараметрКоманды,
           ПараметрыВыполненияКоманды.Источник,
           Новый Структура("ПечатьВВалюте", Ложь) // ПараметрыПечати
       );
       
   КонецЕсли;
   
КонецПроцедуры // ОбработкаКоманды()
1 forforumandspam
 
13.09.11
10:54
Где твой код?
2 Maxus43
 
13.09.11
10:54
тупо условным оформлением в печ форме можно сделать имхо
3 Elf_80_lvl
 
13.09.11
10:54
А просто переименовать элемент справочника не выход?
4 Rizhij_Nikitos
 
13.09.11
12:18
А по подробней об условное оформление в печ форме, где это можно сделать, мне надо это именно для документа РеализацияТоваровУслуг.

МассивКопия = Новый Массив;
       Для каждого Элемент из ПараметрКоманды Цикл
           Элемент.Валюта.Наименование = Элемент.Валюта.НаименованиеПолное;
            МассивКопия.Добавить(Элемент);
           КонецЦикла;

Вот моя часть, я хотел скопировать входные параметры, обработать и отправить на печать, но че то ругается, не знаю почему...
5 forforumandspam
 
13.09.11
12:20
(4) И чО? Куда дальше уходит твой "МассивКопия"? НИКУДА!
6 Rizhij_Nikitos
 
13.09.11
12:23
Я же сказал, что в спотыкается на строчке (*)
МассивКопия = Новый Массив;
       Для каждого Элемент из ПараметрКоманды Цикл
           Элемент.Валюта.Наименование = Элемент.Валюта.НаименованиеПолное; (* тута ругается на запись)
            МассивКопия.Добавить(Элемент);
           КонецЦикла;
Извините, сразу не уточнил.
7 forforumandspam
 
13.09.11
12:28
(6) Так ты ссылке пытаешься изменить значение реквизита.
8 Rizhij_Nikitos
 
13.09.11
12:29
(3) нет элемент справочника переименовывать не выход ... сказано тока для этого документа так сделать.
9 Rizhij_Nikitos
 
13.09.11
12:42
Ну можно сказать и так, есть такая идея, скопировать массив, тока надо удалить элемент валюта, и добавить свой со значение Рубль. Как это можно сделать не подскажите? По сути примерно хочу такое, если не понятно

МассивКопия = Новый Массив;
       Для каждого Элемент из ПараметрКоманды Цикл
           Элемент.Удалить("Валюта");
Элемент.Добавить("Валюта","Рубль");
            МассивКопия.Добавить(Элемент);
           КонецЦикла;
10 forforumandspam
 
13.09.11
13:13
(9) Какого типа у тебя "Элемент".
11 Rizhij_Nikitos
 
13.09.11
13:24
Элемент - тип ДокументСсылка.РеализацияТоваровУслуг.
12 hhhh
 
13.09.11
13:28
(11) а должен быть? ДокументОбъект.
13 Rizhij_Nikitos
 
13.09.11
13:32
Нет документсссылка и должен быть. это обработка ПечатьСчетаФактуры в УТ 11.0 написанная разработчиками, и на печать передается массив как бы документов. Вот я беру элемент массива, и в нем хочу удалить одно поле и добавить другое, чтобы на выходе валюта была не "RUB", а "Рубль", не прибегая к изменениям справочников и тд и тп, чем меньше испорчу отлаженный механизм, тем надеждней он останется, я вот такого мнения придерживаюсь.
14 hhhh
 
13.09.11
13:38
(13) но у ссылки же нет таких странных команд: Удалить, Добавить.
15 Rizhij_Nikitos
 
13.09.11
13:42
Ааа я понял, надо по этой ссылке получить Объект = Элемент.ПолучитьОбъект(), а потом его отправить в массив МассивКопия.Добавить(Объект);
16 forforumandspam
 
13.09.11
13:44
(15) Что ты привязался к "МассивКопия"? Ты его нигде дальше не используешь.
17 Rizhij_Nikitos
 
13.09.11
13:47
Я его не использую, потому что не могу изменить поле валюта в нем, а так я хочу его использовать вот здесь

       УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(
           "Обработка.ПечатьОбщихФорм",
           "СчетФактура",
           МассивКопия,
           ПараметрыВыполненияКоманды.Источник,
           Новый Структура("ПечатьВВалюте", Ложь) // ПараметрыПечати

       );
18 Rizhij_Nikitos
 
13.09.11
13:55
ДокументСсылка.<Имя документа> (DocumentRef.<Имя документа>)
ПолучитьОбъект (GetObject)
Синтаксис:

ПолучитьОбъект()
Возвращаемое значение:

Тип: ДокументОбъект.

Описание:

Получает по ссылке объект для чтения, изменения, добавления и удаления документа.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Пример:

Объект = ВыбДокумент.ПолучитьОбъект();

Делаю также:
Объект = Элемент.ПолучитьОбъект(); (Элемент - ДокументСсылка);
Объект.Валюта.НАименование = "Рубль"; (тута пишет недоступно для записи, почему?)
19 forforumandspam
 
13.09.11
14:07
Объект.Валюта.НАименование = "Рубль"; - это типа ты пишешь уже в справочник "валюты". (как гланды через ..опу)
20 Rizhij_Nikitos
 
13.09.11
14:09
Да я понимаю все это, поэтому и спрашиваю, как мне обойти этот момент ...
21 forforumandspam
 
13.09.11
14:24
(8) Только для этого документа и только для "СчетФактура"? Я не вижу код процедуры "УправлениеПечатьюКлиент.ВыполнитьКомандуПечати", но может тебе создать макет "СчетФактура1" и там жёстко прописать валюту.
22 Rizhij_Nikitos
 
13.09.11
14:34
Всем пасибо проблему решил следующим образом взял Обработку ПечатьОбщихФорм, в модуле менджера ( не особо понимают что это), там нашел, в какую область это выводится и как: и сделал следующее:

   Если ТипЗнч(ДанныеПечати.Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг") и ДанныеПечати.Валюта.Наименование = "RUB" Тогда
               ЗаголовокТаблицы.Параметры.Валюта = ДанныеПечати.Валюта.НаименованиеПолное;
           Иначе
               ЗаголовокТаблицы.Параметры.Валюта = ?(ПечатьВВалюте, ДанныеПечати.Валюта, ВалютаРегламентированногоУчета);
           КонецЕсли;    
Если это кому то поможет, буду очень рад.
ВСЕМ БОЛЬШЕО ПАСИБО ЗА ПОМОЩЬ И КРИТИКУ!
23 Trucker
 
13.09.11
16:45
>ДанныеПечати.Валюта.Наименование = "RUB"
Застрелиться и не встать. :)
24 MORRoz
 
13.09.11
17:08
(22) хм. лучше сравнить в валютой регламентированного учета , а не по-наименованию
25 Rizhij_Nikitos
 
14.09.11
11:05
(24) оно 3 раза пробывал пустое поле, не понятно как они его получают...
Ошибка? Это не ошибка, это системная функция.