|   |   | 
| 
 | Как в ОбщемМодуле обратиться к документу? БП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) Нет. В СФ на аванс не сработает.
 Ищущий да обрящет (С) Сам постарайся. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |