Вход | Регистрация
 

Отбор по Типу значений

Отбор по Типу значений
Я
   Nemirov
 
14.07.20 - 15:48
В общих модулях есть такая функция, ее логикой пользуются много документов, но для документа заказ ее переделать немного что бы другие данные передавать. Но так как у нас ссылка документа или хотя бы тип документа не передается, то  
вот теперь вопрос такой: как сделать условие в этой функции вроде такого ( Если ТипЗначений ДокументСсылка.Заказ тогда "переделаный код" Иначе "Тот код который ниже функции представлен")? Вроде ответ кажется легким, но чет пол дня не могу доехать до него.

Функция ПолучитьКолонкаАртикулКодЗначение(Колонки,НаДату = Неопределено,Номенклатура,ЕдиницаИзмерения = Неопределено,Контрагент = Неопределено,Договор = Неопределено,Характеристика = Неопределено,АртикулПоставщика="",ЗаменаДляОтчетов="") Экспорт
    
    Результат            = "";

    
    Если Колонки.Код Тогда
        Результат        = Результат+?(Результат="","","/")+Номенклатура.Код;
    КонецЕсли;
    Если Колонки.Артикул Тогда
        Результат        = Результат+?(Результат="","","/")+Номенклатура.Артикул;
    Иначе
        Результат ="";
    КонецЕсли;
    Если Колонки.ШтрихКод Тогда
        Если ЗначениеЗаполнено(Характеристика) И ОбщегоНазначения.ПолучитьЗначениеРеквизита(Номенклатура,"ВестиУчетПоХарактеристикам") Тогда
            ШтрихКод = ОмШтриховыеКоды.ПолучитьШтрихКод(Номенклатура,Характеристика,ЕдиницаИзмерения);
        Иначе
            ШтрихКод    = ОмРаботаСоСвойствамиОбъектов.ПолучитьЗначениеСвойстваОбъекта(Номенклатура,ПланыВидовХарактеристик.СвойстваОбъектов.ОсновнойШК);
        КонецЕсли;

        Результат        = Результат+?(Результат="","","/")+ШтрихКод;
    КонецЕсли;    
    АртикулНаименованиеПоставщика=ПолучитьАртикулНаименованиеПоставщика(НаДату,Номенклатура,ЕдиницаИзмерения,Контрагент,Договор,Характеристика,Колонки.АртикулПоставщика,Колонки.НаименованиеПоставщика);
    Если АртикулНаименованиеПоставщика<>"" Тогда
    Результат        = Результат+?(Результат="","","/")+АртикулНаименованиеПоставщика;

        
        Результат        = Результат+?(Результат="","","/")+АртикулНаименованиеПоставщика;
    КонецЕсли;
    
    Если Колонки.ИДВнешнейСистемы Тогда
        Результат        = Результат+?(Результат="","","/")+Номенклатура.ИДВнешнейСистемы;
    КонецЕсли;     
    
    Возврат ?(ЗаменаДляОтчетов<>"",ЗаменаДляОтчетов,Результат);        
    
КонецФункции
   Nemirov
 
1 - 14.07.20 - 15:49
1с предприятие 8.3. форма обычная.
   unbred
 
2 - 14.07.20 - 15:50
у тебя решение в вопросе есть ТипЗнч()
   Nemirov
 
3 - 14.07.20 - 15:52
(2) что мне передать в типзнач()?
   unbred
 
4 - 14.07.20 - 15:53
передай туда ctrl+f1
   Nemirov
 
5 - 14.07.20 - 15:53
(4) Очень смешно
   acht
 
6 - 14.07.20 - 15:56
(5) Он тебя обманывает, Alt+F4 попробуй
   unbred
 
7 - 14.07.20 - 15:56
   Nemirov
 
8 - 14.07.20 - 16:03
(7) Да блин вы хотя бы код посмотрите если хотите помочь, откуда я объект для сравнения возьму там только переменные номенклатура, характеристика и договор передаются в этой функции?! Что мне сравнивать? Номенклатуру или справочник.договор )))) Я видел это уже просмотрел. Везде передается переменная, а у меня ее нет! В это и вся сложность!
   hhhh
 
9 - 14.07.20 - 16:08
(8) ну передай тогда туда то, что нужно. А лучше создай отдельную функцию для этих целей, а эту функцию не трогай.
   acht
 
10 - 14.07.20 - 16:09
(8) Так если у тебя ее нет, откуды ты сам знаешь, что это заказ?
   Сияющий Асинхраль
 
11 - 14.07.20 - 16:09
Ну значит передавай в эту функцию еще и признак, чтобы внутри можно было определить какой код тебе нужен, типовой или переданный...
   Nemirov
 
12 - 14.07.20 - 16:15
(11) ТОгда в остальных документах код менять надо будет
   Fedor-1971
 
13 - 14.07.20 - 16:15
(0) Функция ПолучитьКолонкаАртикулКодЗначение(Колонки,НаДату = Неопределено,Номенклатура,ЕдиницаИзмерения = Неопределено,Контрагент = Неопределено,Договор = Неопределено,Характеристика = Неопределено,АртикулПоставщика="",ЗаменаДляОтчетов="", Я_Вызвал_Из_Заказа = Неопределено) Экспорт

Если НЕ Я_Вызвал_Из_Заказа = Неопределено тогда
   МойНовыйКод()
КонецЕсли;

Отладчиком остановись в функции и посмотри на параметры, может, где-то есть Ссылка или ещё что-нить, для определения типа документа
   Nemirov
 
14 - 14.07.20 - 16:16
(10) Вызывается печатная форма в документе заказ и из этой функции в параметр макета передается значение на выходе из этой функции.
   Nemirov
 
15 - 14.07.20 - 16:17
(13) Спасибо, но придется в каждом документе дописывать описание.
   Fedor-1971
 
16 - 14.07.20 - 16:17
(12) не надо, это необязательный параметр.
Только смотри, при обновлении не грохни
   Nemirov
 
17 - 14.07.20 - 16:17
(9) Спасибо как вариант.
   Nemirov
 
18 - 14.07.20 - 16:17
(16) Спасибо
   Сияющий Асинхраль
 
19 - 14.07.20 - 16:18
(12) Не надо. Вот твоя функция:

Функция ПолучитьКолонкаАртикулКодЗначение(Колонки,НаДату = Неопределено,Номенклатура,ЕдиницаИзмерения = Неопределено,Контрагент = Неопределено,Договор = Неопределено,Характеристика = Неопределено,АртикулПоставщика="",ЗаменаДляОтчетов="") Экспорт 

Обрати внимание, что ее реквизиты определенные по умолчанию:

АртикулПоставщика="",ЗаменаДляОтчетов=""

при вызове могут быть НЕОПРЕДЕЛЕНЫ. т.е. ты можешь добавить в функцию предопределенный реквизит и он никак не повлияет на уже имеющиеся вызовы...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.