|
Как в ОбщемМодуле обратиться к документу? БП3.0 | ☑ | ||
---|---|---|---|---|
0
newerruser1c
06.09.19
✎
15:38
|
Надо сделать так, чтобы у документов СФ выданный префикс при печати убирался, а у остальных нет.
Насколько я знаю делается это в общем модуле ПрефиксацияОбъектовКлиентСервер (БП3.0). Думаю там сделать в Функции НомерНаПечать типа того: Если Документы.СчетФактураВыданный Тогда ... КонецЕсли; Но пишет не определена переменная Документы. Я так понимаю надо задать переменную Документ, но как не пойму. Только учусь. |
|||
1
ДенисЧ
06.09.19
✎
15:39
|
ТипЗнч
|
|||
2
mikecool
06.09.19
✎
15:39
|
в номер на печать () передается объект
|
|||
3
Масянька
06.09.19
✎
15:40
|
(0) Не плохо для начала ;)
Тебе нужно в модуле определять тип документа, но документ-то в модуль не передается. Есть мысли? |
|||
4
newerruser1c
06.09.19
✎
15:42
|
(3) Как уже подсказали ТипЗнч) Пойду гуглить как это)
|
|||
5
Масянька
06.09.19
✎
15:42
|
(4) Стоять!
Сам документ в модуль не передается... Думай! |
|||
6
newerruser1c
06.09.19
✎
15:44
|
(3) тут я, тут) не иду оке, согласен.
Ну мб примерно так?: если ТипЗнч (Документы.СчетФактураВыданный) тогда... Если нет, то... щас скажу |
|||
7
Масянька
06.09.19
✎
15:45
|
(6) Щас стукну! Больно!
У тебя нет вот этого в общем модуле. |
|||
8
newerruser1c
06.09.19
✎
15:46
|
(5) если сам документ в модуль не передается, то... Передается ссылка не него?) ну я правда хз. Щас ещё подумаю, т.к. я думаю ссылка это крайне дебильный ответ)
|
|||
9
newerruser1c
06.09.19
✎
15:47
|
(7) не стукай) сейчас скажу
|
|||
10
Масянька
06.09.19
✎
15:47
|
(8) Ну...
И что будешь везде, где вызывается общий модуль вставлять? |
|||
11
runoff_runoff
06.09.19
✎
15:49
|
(9) лучше сюда выписать весь заголовок процедуры вместе с параметрами..
|
|||
12
Масянька
06.09.19
✎
15:50
|
(8) (9) Где здесь
Функция НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт твой объект или ссылка на него? |
|||
13
sqr4
06.09.19
✎
15:50
|
(11) Функция НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт
Нихера там нет и не будет. Можно конечно сделать необязательный параметр, Типа Док = неопределено и доляпать дальше. Но я бы сделал другую печатку без префикса! |
|||
14
newerruser1c
06.09.19
✎
15:52
|
(10) я не понял вопроса) Так. Везде всм где-нибудь в других доках имеешь ввиду как я буду обращаться к общему модулю? Этого я ещё не делал просто, но логически я должен обращаться к экспортной функции
|
|||
15
newerruser1c
06.09.19
✎
15:53
|
(11) Функция НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт
//Документ = Ссылка.СчетФактураВыданный; //Документы = Документы.СчетФактураВыданный; Док = Ссылка.ПолучитьОбъект (); Если Док.СчетФактураВыданный Тогда // {Обработчик: ПриПолученииНомераНаПечать} Начало СтандартнаяОбработка = Истина; ПрефиксацияОбъектовКлиентСерверПереопределяемый.ПриПолученииНомераНаПечать(НомерОбъекта, СтандартнаяОбработка, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс); Если СтандартнаяОбработка = Ложь Тогда Возврат НомерОбъекта; КонецЕсли; // {Обработчик: ПриПолученииНомераНаПечать} Окончание НомерОбъекта = СокрЛП(НомерОбъекта); // Удаляем пользовательские префиксы из номера объекта. Если УдалитьПользовательскийПрефикс Тогда НомерОбъекта = УдалитьПользовательскиеПрефиксыИзНомераОбъекта(НомерОбъекта); КонецЕсли; // Удаляем лидирующие нули из номера объекта. НомерОбъекта = УдалитьЛидирующиеНулиИзНомераОбъекта(НомерОбъекта); // Удаляем префикс организации и префикс информационной базы из номера объекта. НомерОбъекта = УдалитьПрефиксыИзНомераОбъекта(НомерОбъекта, Истина, УдалитьПрефиксИнформационнойБазы); КонецЕсли; Возврат НомерОбъекта; КонецФункции |
|||
16
newerruser1c
06.09.19
✎
15:54
|
(12) согласен, нет. Я думал о том, чтобы сделать так:
Функция НомерНаПечать(Ссылка, Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт Но это же бред, да? |
|||
17
newerruser1c
06.09.19
✎
15:54
|
Так просто же это не решается.
|
|||
18
Масянька
06.09.19
✎
15:55
|
(16) Нет, не бред.
Только Функция НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь, Ссылка = НЕОПРЕДЕЛЕНО) Экспорт |
|||
19
Масянька
06.09.19
✎
15:55
|
(17) И там придется еще глубже нырнуть.
Думаю, ты справишься ;) |
|||
20
Масянька
06.09.19
✎
15:56
|
Судя по всему, налоговой попала шлея под хвост :(
|
|||
21
newerruser1c
06.09.19
✎
15:56
|
(18) Такс. Пойду пробовать и смотреть на ошибки которые вылезут) Загляните через 5 минут пожалуйста :D
|
|||
22
unbred
06.09.19
✎
15:57
|
(0) не трогай ты общий модуль. при печати перед заходом в этот модуль префикс меняй по условию. расширение воткни,или в модуле менеджера явно меняй префикс.
|
|||
23
Масянька
06.09.19
✎
15:58
|
(22) Правда? Расскажи-ка как?
|
|||
24
newerruser1c
06.09.19
✎
16:03
|
(23) ну-с, как ожидалось ошибки Значение не является значением объектного типа (ПолучитьОбъект). Следовательно нам необходимо задать значение. Как раз через ТипЗнч, нет?)
Сейчас выглядит так: Док = Ссылка.ПолучитьОбъект (); Если Док.СчетФактураВыданный Тогда |
|||
25
newerruser1c
06.09.19
✎
16:05
|
(23) не так случайно должно быть:
Док = Ссылка.ПолучитьОбъект (); Если ТипЗнч(Док.СчетФактураВыданный) Тогда |
|||
26
Масянька
06.09.19
✎
16:05
|
(24) 1. Используй мСсылка. Правило (сразу приучи): не использовать в качестве имен переменных служебные слова.
2. Как передаешь? Покажи код. |
|||
27
FIXXXL
06.09.19
✎
16:06
|
(26) эта конструкция рухнет при любом другом вызове, кроме сф :)
|
|||
28
newerruser1c
06.09.19
✎
16:06
|
(26) правило принял
|
|||
29
FIXXXL
06.09.19
✎
16:06
|
(27) ТипЗнч(Ссылка) = Тип("...") сразу используй. без получитьОбект
|
|||
30
newerruser1c
06.09.19
✎
16:06
|
(27) а добавить Иначе прокатит?
|
|||
31
FIXXXL
06.09.19
✎
16:07
|
(30) прокатит (29)
|
|||
32
Масянька
06.09.19
✎
16:07
|
(30) Не-а.
Нужно проверить на НЕОПРЕДЕЛЕНО. |
|||
33
Масянька
06.09.19
✎
16:09
|
+ (32) Ты же сделал ссылку не обязательным параметром.
|
|||
34
hhhh
06.09.19
✎
16:10
|
(30) что-то вы бредите походу. Потому что в БП 3.0 префикс у счета фактуры при печати убирается. Это факт, никуда от этого не деться. Никаких общих модулей править не нужно.
|
|||
35
newerruser1c
06.09.19
✎
16:10
|
Я запутался, но стал на 0,01% умнее :D пойду попробую из (29)
|
|||
36
newerruser1c
06.09.19
✎
16:10
|
(34) да, он убирается. Но мне надо добавить условие, чтобы он убирался ТОЛЬКО у сф, а остальные не трогал
|
|||
37
sqr4
06.09.19
✎
16:11
|
Почему не переопределить метод в самой СФ? А другие два параметра в истину поменять не пробовали?
|
|||
38
newerruser1c
06.09.19
✎
16:13
|
(37) не пробовал. Если так ничего не получится попробую. Но для меня это больше как урок, чем задание
|
|||
39
Масянька
06.09.19
✎
16:14
|
(38)
Функция НомерНаПечать(Знач НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь, Источник = Неопределено) Экспорт // {Обработчик: ПриПолученииНомераНаПечать} Начало СтандартнаяОбработка = Истина; ПрефиксацияОбъектовКлиентСерверПереопределяемый.ПриПолученииНомераНаПечать(НомерОбъекта, СтандартнаяОбработка, УдалитьПрефиксИнформационнойБазы, УдалитьПользовательскийПрефикс); Если СтандартнаяОбработка = Ложь Тогда Возврат НомерОбъекта; КонецЕсли; // {Обработчик: ПриПолученииНомераНаПечать} Окончание НомерОбъекта = СокрЛП(НомерОбъекта); // Удаляем пользовательские префиксы из номера объекта. Если УдалитьПользовательскийПрефикс Тогда НомерОбъекта = УдалитьПользовательскиеПрефиксыИзНомераОбъекта(НомерОбъекта); КонецЕсли; // Удаляем лидирующие нули из номера объекта. // вот тута префикс и убираем Если (Источник = Неопределено) Тогда НомерОбъекта = УдалитьЛидирующиеНулиИзНомераОбъекта(НомерОбъекта); КонецЕсли; // Удаляем префикс организации и префикс информационной базы из номера объекта. НомерОбъекта = УдалитьПрефиксыИзНомераОбъекта(НомерОбъекта, Истина, УдалитьПрефиксИнформационнойБазы); Возврат НомерОбъекта; КонецФункции |
|||
40
Масянька
06.09.19
✎
16:14
|
(38) Только ты не радуйся - я уже говорила, что придется глубже залезть.
|
|||
41
newerruser1c
06.09.19
✎
16:18
|
(40) в сам док сф? или ты не про это?
|
|||
42
Deon
06.09.19
✎
16:19
|
В итоге я так и не понял, зачем менять функцию, а не написать свою отдельную?
|
|||
43
sqr4
06.09.19
✎
16:20
|
(38) тогда делай нормально, а не по-китайски сразу по такой фигне правя конфу.
|
|||
44
Масянька
06.09.19
✎
16:21
|
(41) Нет. В СФ на аванс не сработает.
Ищущий да обрящет (С) Сам постарайся. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |