Нужно ли в 1С ввести тип ПустойПараметр? #272876


#0 by Гений 1С
Который означает, что параметр не заполнен. Т.е. чтобы можно было вызвать функцию так: Ф(А, П, В); А не так: 1С не воспринимает неопределено, как незаполненный параметр в своих типовых функциях платформы. Вот наприер, вместо того, чтобы вызвать метод Добавить с параметрами неопределено, пришлось извращаться так:
#1 by Волшебник
Будем терпеть ветки Гения... ;)
#2 by Анатолий Вассерман
не будем. надо банить
#3 by zalexey
тебе в какие моменты такие вопросы в голову приходят?
#4 by zalexey
упс, в было обращение к
#5 by ASV
Null
#6 by Ненавижу 1С
NULL не то?
#7 by Гений 1С
#8 by Гений 1С
от тебя я не ждал. Ты понял, о чем речь?
#9 by Гений 1С
нет.
#10 by Гений 1С
Еще раз: Если бы можно было написать так: То ошибки бы не было. Или 1Сникам по барабану до хорошего функционального программирования?
#11 by Гений 1С
пролетаешь, NULL только для баз данных
#12 by GenV
А с пустым параметром Представление, Пометка, Картинка С.Добавить(Значение, Представление, Пометка, Картинка) должно сработать?
#13 by Колумбарий
4. Я - мясо! ЯЯЯЯЯЯ!
#14 by ЖыШы
не в первый раз
#15 by GenV
+ Раз ответа нет, то
#16 by AntonioS
да все проще нужно у функции оболочки обДобавитьУникальноВСписокЗначений у параметров Представление, Картинка, Пометка выставлять по умолчанию такие же значения как и у метода списка значений Добавить.
#17 by GenV
Я-то так и делаю, или на Неопределено проверяю :)
#18 by Гений 1С
да, это все равно, как если бы один из параметров был пропущен. Ну что, кто-то уже догнал, или будем развивать мозг 1Снеков дальше?
#19 by GenV
Будем развивать :) Получается Добавить должна анализировать на Пустой параметр и подставлять какое-то значение или это должен делать я в обДобавитьУникальноВСписокЗначений?
#20 by GenV
+ Проще тогда 1С сделать анализ на Неопределено и ничего не добавлять.
#21 by Гений 1С
Почитай внимательно
#22 by Гений 1С
Суть в том, что нельзя вызвать функцию, которая может пропускать параметры и указать, какой параметр не передаватаь. То бишь если есть функция Ф(А, Б=..., В=..., Г=...) То нельзя вызвать ее так Ф(А,Б,В,Г), если я например не знаю Б или В или Г. Придется так: Если Б=Неопределено И В=Неопределено И Г=Неопределено Тогда   Ф(А) ИначеЕсли Б=Неопределено И В=Неопределено Тогда   Ф(А,,В,Г) .... Чуствуете убогость?
#23 by GenV
Я почитал. Не тупой ... "Получается Добавить должна анализировать на ПустойПараметр и подставлять какое-то значение"?.
#24 by GenV
Что мешает указать Неопределено вместо параметра?
#25 by Гений 1С
если пользователь не проставил параметр Картинка, то ей бы присваивалось ПустойПараметр и можно было бы смело вызывать Добавить(..,..,..., Картинка), так бы оно переварило, а когда Картинка=Неопределено не переваривает, т.е. Неопределено (или NULL) - Это не то же, что не пустой параметр.
#26 by Гений 1С
кури в данной функции и во многих других Неопределено воспринимается не как пустой, а как заполненный параметр. Неопределено не заменяется на значение по умолчанию. Криво!
#27 by GenV
Я про это в и говорю. Мне Неопределено вполне бы подошло. Это уже кривая реализация функции!
#28 by Михей
ИМХО
#29 by Гений 1С
Имхо нужно. Или же тогда воспринимать во всех типовых функциях неопределено как пустой параметр.
#30 by Terv
еще одна глупость ...
#31 by Гений 1С
почему?
#32 by AeDen
обДобавитьУникальноВСписокЗначений(С, Значение, Неопределено, Неопределено, неопределено) не канает?
#33 by Гений 1С
обоснуй
#34 by Гений 1С
не канает, в параметр Картинка нельзя передавать Неопределено
#35 by Гений 1С
кури внимательно - это функциональный изъян 1С.
#36 by Terv
Синтаксис не проверял, но мысль я думая ясна .. не говоря уже о том что необходимости я в этом особой не вижу
#38 by Terv
+37 довести идею до универсальности... я думаю твоего гения хватит
#39 by AntonioS
ВидКартинки.Пустая P.S. мать вашу....
#40 by Terv
+39 кстати, да - Представление=""
#41 by Гений 1С
Терв, как обойти я знаю, но это на самом деле дыра в функционале. Все таки Выполнить - это не тот метод, который 1С рекомендует юзать.
#42 by Гений 1С
ксати со списком значений можно обойти, но вот в других случаях хз - уже пару раз нарывался.
#43 by Terv
Блин ну сделай так [1c] Функция обДобавитьУникальноВСписокЗначений(С, Значение, Представление="", Пометка=Ложь, Картинка=Неопределено) Экспорт Картинка = ?(Картинка = Неопределено,Новый Картинка,Картинка);    Если С.НайтиПоЗначению(Значение)=Неопределено Тогда        Эл=С.Добавить(Значение, Представление, Пометка, Картинка);    КонецЕсли;    Возврат ложь; КонецФункции [1c]
#44 by GenV
+ Мне так и не обяснил: неужели лучше вводить тип данных "ПустойПараметр" и переделовать все функции под него вместо того, чтобы просто переделать функции под например Неопределено или неуказание никакого параметра ... А ведь просто хотелось обсудить этот вариант ...
#45 by АП
это не убогость, так же работет на С++
#46 by vde69
думаю надо сделать возможным такую конструкцию
#47 by coder1cv8
что за чушь?!
#48 by Гений 1С
Значит нужно нормальное реагирование на Неопределено. у тебя мозгов не хватает осознать, 1Снек! гыгыгы.
#49 by АП
тьфу ты... въехал, о чем ты вещаешь )) проблема не в значениях по умолчанию, а в приведении типов... дык это как раз в 1С нормально... нету тут строгой типизации, как, например, в том же С++. Отслеживать такие вещи должен программист. Для 1С это нормально, ибо оно "аля язык программирования"...не жди от него большего. хочешь приведения, как в Smalltalk? дык оно именно "аля", а не полноценный язык :)
#50 by coder1cv8
у меня хватает мозгов не заводить тупые ветки
#51 by MAGician_
Невижу смысла.
#52 by Гений 1С
гыгыгы, дошло хоть до одного речь идет не о частном случае, я уже писал, что в списке можно выкрутиться, а вот в других случаях - нет. Только перебором или выполнить. ;-(
#53 by Гений 1С
ты кроме 1С на чем то писал?
#54 by АП
кстати, голос в моно не засчитывать (вопрос был не правильно истолкован) я бы выбрал "Нужно, но приходится терпеть" 1C больше заточено под конечного юзера (в прикладном смысле), а посему программерам приходится многое делать через то самое место. Навряд ли такими вещами в 1С будут заниматься, к сожалению...
#55 by Гений 1С
ага... причем именно к сожалению. Если бы кое-какие вещи для кодеров доточили, от этого бы выиграли и юзвери. ;-)
#56 by АП
это ты так думаешь ))) а они - нет... деньги платишь им не ты, как кодер :)
#57 by rom
Ни в одном ЯВУ не встречал такого! Можно обойтись, по моему.
#58 by Гений 1С
если так думать, то конкуренты съедят. ;-)
#59 by Гений 1С
выиграли ли бы пользователи, если бы можно было делать свои контролы с помощью вложенных форм? однозначно... так что не надо этих песен
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С